SQL的组成:
——DCL(Date Control Language):数据控制语言
grant ,revoke
——DDL(Date Definiation Language):数据定义语言
create , drop ,truncate
——DML(Date Manipulation Language):数据操作语言
insert,delete,update,select
——TCL(Transcation Control Language):事务控制语句
rollback,commit,savepoint
——复制表的方式
create table test1 as select * from test;
——复制表的时候,只需要表的结构,不需要表记录
create table test2 as select * from test where 1=0;
——构建表的时候修改一下参照表的列名
create table test3 as select id,sex as tsex from test
同时插入向表中插入多条记录
insert into test
select 1,'女','小鸿' from daul union
select 2,'女','小宏' from daul union
select 3,'女','小红' from daul ;
——数据更新
update test set name='小洪' where id=1;
——删除
delete from test where tsex='女';
——daul:是orcl中的一个时间存在的表,任何用户均可读取,常用在没有目标的select语句块中
——查询dual表
什么是事务:
事务是最小的工作单位,作为一个整体进行工作保证事务成功或失败,称为事务控制。
commit 事务的提交
rollback:撤销回滚本次事务
——如果一个事务中包含多个执行语句,想要部分回滚,则就要用到savepoint
savepoint p1:将当前数据库中的数据状态设置为一个保存点
rollback to savepoint p1: 回滚到保存点p1
——序列
————在设计表的时候需要一个不需要明确意义的列来作为主键,这个时候我们需要序列
——序列就可以生成唯一,连续的序号
create sequence seq_id;
——每执行一次,序列就生成一个
select seq_id.nextval from dual;
——获取当前序列的值
select seq_id.currval from dual;
——删除序列
drop sequence seq_id;
create sequence seq_id start with 1000 increment by2;
——用序列叠加主键,插入数据
insert into test values(seq_id.nextval,'wangba');
delete或truncate:
delete直接删除数据
truncate:先将表摧毁,然后再重新创建表