黑马程序员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
dba linux cocos2d-x 入行 4000 8500 10000 3年 8000 1.5
1.7 10 年
...语法: INSERT INTO table [(column [, column...])] VALUES(value [, value...]);
--1 向表中插入所有列 insert into emp values(1, 'tom_111', 'clerk', 7839, sysdate, 8500, 10000, 10)
--2 向表中插入部分列
insert into emp(empno, ename, sal, comm, deptno)values(2, 'tom_222', 8502, null, 10)
--3 隐式插入空值: 没有写出的列,默认为null值
--4 显示插入空值:
--5 sql插入语言的地址符 & 取地址符后面相当于一个变量
mysql语言: preparedStatement语言
insert into emp(empno, ename, sal, comm, deptno)values(&empno, &ename, 8502, null, 10)====>输入字符串是,需要 加''
1* insert into emp(empno, ename, sal, comm, deptno)values(&empno, &ename, 8502, null, 10)
SQL> /
输入 empno 的值: 4
输入 ename 的值: 'tom_444'
原值 1: insert into emp(empno, ename, sal, comm, deptno)values(&empno, &ename, 8502, null, 10)
新值 1: insert into emp(empno, ename, sal, comm, deptno)values(4, 'tom_444', 8502, null, 10)
已创建 1 行。
SQL> /
输入 empno 的值: 5
输入 ename 的值: tom_555
原值 1: insert into emp(empno, ename, sal, comm, deptno)values(&empno, &ename, 8502, null, 10)
新值 1: insert into emp(empno, ename, sal, comm, deptno)values(5, tom_555, 8502, null, 10)
insert into emp(empno, ename, sal, comm, deptno)values(5, tom_555, 8502, null, 10)
*
=====>事物抛砖....4条数据全部都回退了..这4条数据全部都在1个事物里面
&地址符, 可以在任何sql语言中使用.在select 语言中也可以使用地址符
select * from emp
where sal >&sal
--7 批量插入数据
--一次性的将emp中所有10号部门的员工插入到emp10中
--在insert语言中使用子查询 子查询 不光用在查询套查询, 也可用在DML语句套select语句
create table emp20
as select * from emp where 1=2
insert into emp20
select * from emp where deptno = 20
有关update更新语句
UPDATE table SET column = value [, column = value,...] [WHERE condition];--列子
SQL> update emp20 set sal = 1800 , deptno = 22 where ename='SMITH'
有关删除数据
DELETE [FROM] table [WHERE condition];
eg
delete from emp20 where empno = 7369
delete emp20;
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.45
事务 基本概念(db2 infomix mysql sqlserver ===>)概念
一个或者多个DML语言组成特点
要么都成功,要么都失败
特性
原子性 一致性 隔离性 持久性
事物的隔离性 多个客户端同时操作数据库的时, 要隔离他们的操作
否则:脏读 不可重复读 幻读
设置不同的搁置级别来解决oracle中的事务事务起始标志 DML语言(oracle默认事务似是打开的, 但是不自动提交)2 事务的结束标志
提交: 显示提交commit
隐式提交
1)执行DDL语言
eg create table语言 还有I个隐式的功能
提交之前的没有提交的DML语言(insert update)
2)正常退出
回滚: 显示 rollback
隐式 掉电/宕机/非正常退出==系统出错了
事物隔离实验
create table t1(tid number, tname varchar2(20));
insert into t1(tid, tname)values(1, '111');
insert into t1 values(2, '2222');
事物隐式提交实验 ===执行DDL语言
结论====>
oracle:(oracle默认事务似是打开的, 但是不自动提交)
mysql: mysql自动提交
insertoracle事务控制--保存点
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......
--为什么要用子查询1 先求scott的工资select sal from empwhere ename='SCOTT'select *from empwhere sal > 3000//===>select *from empwhere sal > (select sal from em......
9.通过子查询建表 通过子查询建表的例子SQL>CREATE TABLE emp_41 AS SELECT id, last_name, userid, start_date FROM s_emp WHERE dept_id = 41; SQL> CREATE TABLE A as s......
大小写控制函数 大小写控制函数 字符控制函数数字函数ROUND 函数TRUNC 函数MOD 函数......
1 笛卡尔积 部门表 笛卡尔积产生结果: 行数 两个表相乘列数: 行数相加 原因条件等值连接select ****from tab1, tab2where tab1.a = tab2.a1 select count(e.ename)2 from......