黑马程序员c语言教程:DML语言强化由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“黑马程序员c语言教程”。
sql语言的类型
数据语言实现数据的crud
DML语句(Data Manipulation Language)数据库操作语言
insert update delete select DDL语言 data definition Lanaguage
create table
create view index sequence synonym同义词
truncate table DCL语言 data control language数据语言
commit rollback savetpointe
OCA认证 OCP(dba)一起考, 参加oracle的培训 2w Oracle数据库管理员认证专员(OCA):Oracle Certified Aociate Oracle数据库管理员认证专家(OCP): Oracle Certified Profeional Oracle数据库管理员认证大师(OCM): Oracle Certified Master
语法: INSERT INTO table [(column [, column...])] VALUES(value [, value...]);
--1 向表中插入所有列
insert into emp values(1, 'tom_111', 'enginerr', 7839, sysdate, 5000, 100, 10)--2 向表中插入部分列
insert into emp(empno, ename, job, hiredate)values(2, 'tom_2222', 'enginerr', sysdate)
--3 隐式插入空值: 没有写出的列,默认为null值--4 显示插入空值:--5 sql插入语言的地址符 & 取地址符后面相当于一个变量
mysql语言: preparedStatement语言 SQL> insert into emp(empno, ename, job, hiredate)values(&empno, &ename, &job, &hiredate);输入 empno 的值: 3
输入 ename 的值: 'tom_ccc' 输入 job 的值: 'job' 输入 hiredate 的值: '22-2月-81' 原值 1: insert into emp(empno, ename, job, hiredate)values(&empno, &ename, &job, &hiredate)新值 1: insert into emp(empno, ename, job, hiredate)values(3, 'tom_ccc', 'job', '22-2月-81')
&地址符, 可以在任何sql语言中使用.在select 语言中也可以使用地址符
SQL> select ename, job, &tt from emp;输入 tt 的值: deptno 原值 1: select ename, job, &tt from emp 新值 1: select ename, job, deptno from emp
--7 批量插入数据--创建一张表
create table emp10 as
select * from emp where 1=2;--一次性的将emp中所有10号部门的员工插入到emp10中
--在insert语言中使用子查询 子查询 不光用在查询套查询, 也可用在DML语句套select语句
insert into emp10--列完全一样,可以不写
select * from emp where deptno=10;delete from emp10;
有关update更新语句
UPDATE table SET column = value [, column = value,...] [WHERE condition];--列子
SQL> update emp10 set sal=2300 where empno=7934;
有关删除数据
DELETE [FROM] table [WHERE condition];
delete和truncate表区别delete逐条删除 truncate先摧毁表再重建delete语言是DML语言 truncate是DDL
DML语言可以闪回 做错的并且提交了.可通过闪回,撤销操作
DDL语言不可以闪回 flashback delete是逐条删除,会产生碎片, truncate不会产生碎片
行移动功能: 要开启闪回功能,必须要开启行移动功能delete不会释放空间 truncate会delete可以回滚 truncate不可以oracle delete快 mysql truncate快.实验: 从文件中导入数据, 通过命名delete 和 truncate删除表数据 实验
从文件中导入数据
SQL> set timing off;SQL> set feedback off;SQL> drop table testdelete purge;SQL> @c:Sql.sql;SQL> SQL> set timing on;//最后删除数据表的时候,把时间打开,记录时间
SQL> delete from testdelete;已用时间: 00: 00: 00.03
从文件中导入数据
SQL> set timing off;@c:Sql.sql;
set timing off;
select count(*)from testdelete;set timing on;//最后删除数据表的时候,把时间打开,记录时间
truncate table testdelete;已用时间: 00: 00: 00.39
事务基本概念
概念
一个或者多个DML语言组成特点
要么都成功,要么都失败
特性
原子性 一致性 隔离性 持久性
事物的隔离性 多个客户端同时操作数据库的时, 要隔离他们的操作
否则:脏读 不可重复读 幻读
设置不同的搁置级别来解决oracle中的事务事务起始标志 DML语言(oracle默认事务似是打开的)2 事务的结束标志
提交: 显示提交commit
隐式提交
1)执行DDL语言
eg create table语言 还有I个隐式的功能
提交之前的没有提交的DML语言(insert update)
2)正常退出
回滚: 显示 rollback
隐式 掉电/宕机/非正常退出==系统出错了 oracle事务控制--保存点
create table testsavepoint(tid number, tname varchar2(20));set feedback on
insert into testsavepoint values(1, 'tom1');insert into testsavepoint values(2, 'tom2');savepoint a;//创建一个保存点
insert into testsavepoint values(3, 'tom3a);rollback to savepoint a;
注意: 回退到savepoint a 前面插入的两条sql语句还没有提交;仍然还在一个事务里面;让事务结束的方法 显示 隐式 SQL> rollback / commit oracle数据的隔离级别问题
read only ,数据库几乎不做串行化操作,增加了read only SQL99
sql语言的类型数据语言实现数据的crud DML语句 (Data Manipulation Language) 数据库操作语言insert update delete select DDL语言 data definition Lanaguagecreate table......
sql语言课堂强化 select a, b, c select .....(多个列) from .....一个表(多个表) where ....(条件) group by ...(分组) --难点 having ......(分组过滤) order by 1 (排序......
大小写控制函数 大小写控制函数 字符控制函数数字函数ROUND 函数TRUNC 函数MOD 函数......
1 笛卡尔积 部门表 笛卡尔积产生结果: 行数 两个表相乘列数: 行数相加 原因条件等值连接select ****from tab1, tab2where tab1.a = tab2.a1 select count(e.ename)2 from......
--sql structured query language --DML--Data Manipulation Language--数据操作语言 query information (SELECT), add new rows (INSERT), modify existing rows (UPDATE)......