目录
DDL:
数据定义语言:是SQL语言集中负责数据结构定义与数据库对象定义的语言,create alter drop
DCL:
数据控制语言:用来设置或者更改数据库用户或角色权限的语句,grant,deny,revoke
DML:
用户通过它可以实现对数据库的基本操作,可以对数据库作插,删,改,排,检等五种操作。
今天详细介绍一下DML语言,因为在实际使用过程中是用的最多的
数据操作语言:
insert update delete
事务控制语言:
commit rollback savepoint
1. 直接插入基本语法:
insert into tb_name[(col_name,...)]
values(val1,....);
说明:
1.如果给每个列都插入数据,可以省略table后边的列,并且插入值的顺序和定义表的顺序一致
2.如果插入的顺序和表定义的顺序不同,或者只插入某几列的值table_name后边必须跟上列名
3.字符串和日期类型的值必须使用‘’引起来
4.insert语句一次只插入一条数据
5.插入的值可以使用系统函数,例如---user,sysdate
6.插入的值可以使用运行时参数。
例如:
create table test(
id number primary key,
name varchar2(10),
gender varchar2(2) check (gender in ('F','M')),
birthday date);
插入:
1.
insert into test(id,name) values (3,'zs');
2.
insert into test(id,name,birthday) values
(1,'lisi','09-9月-10');
3.
insert into test(id,name,birthday) values
(2,user,sysdate);
4.
insert into test(id,name,birthday) values
(&id,'ss',sysdate);
2.使用子查询插入
insert into table_name[(col_name,....)]
select .......
说明:
1.不出现values关键字
2.插入的列的名字和子查询返回结果的列相匹配。
例如:
1.
insert into test2
select * from test;
2.
insert into test2(id,gender,name,birthday)
select id,gender,name,birthday from test;
语法:delete [from] tbl_name [where option...]
说明:
在加外键约束的时候,如果想在删除主表的记录的同时对外键表中已经存在的关联关系记录进行操作可以使用下面两个关键词:
on delete cascade:级联删除,删除主表记录,外键表的关联记录一块儿删除
on delete set null:删除主表记录,外键表的关联记录该列的值变成null
例如:
1.从test2表中删除id = 1
delete from test2 where id = 1;
2.级联删除
create table test3(
id number references test2(id) on delete cascade);
create table test3(
id number references test2(id) on delete set null);
语法:update table_name set column=value,[column=value]
[where condition...];
说明:
1.如果不加条件,默认修改表中所有的行。
例如:
1. update test set name = 'wangwu',gender='M' where id = 3; --只更改id=3的行。
2.update test set gender = 'F'; --所有行都改。