sql复习(数据处理、约束)

一、DML(数据操纵语言)

DML(Data Manipulation Language – 数据操纵语言) 可以在下列条件下执行:
–向表中插入数据
–修改现存数据
–删除现存数据
事务是由完成若干项工作的DML语句组成的

1.insert语句

使用 INSERT 语句向表中插入数据

<1>方式一:一次插入一条数据

--建立一张空表
create table emp1
as
select employee_id,last_name,hire_date,salary
from employees
where 1 = 2

--插入数据
insert into emp1
values(1001,'AA',sysdate,10000)

insert into emp1
values(1002,'BB',to_date('1998-12-21','yyyy-mm-dd'),20000)

<2>方式二:从其它表中拷贝数据

insert into emp1(employee_id,hire_date,last_name,salary)
select employee_id,hire_date,last_name,salary
from employees
where department_id = 80

2.update语句

使用 UPDATE 语句更新(修改)数据

update emp1
set salary = 12000
where employee_id = 179

如果省略 WHERE 子句,则表中的所有数据都将被更新

3.delete语句

使用 DELETE 语句从表中删除数据

--从employees1表中删除部门名称中含Public字符的部门id
delete from employees1
where department_id = (
                      select department_id
                      from departments
                      where department_name like '%Public%'
                      )

使用 WHERE 子句删除指定的记录
如果省略 WHERE 子句,则表中的全部数据将被删除

4.数据库事务

事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。
以第一个 DML 语句的执行作为开始
以下面的其中之一作为结束:
–COMMIT 或 ROLLBACK 语句
–DDL 语句(自动提交)
–用户会话正常结束
–系统异常终止

使用 SAVEPOINT 语句在当前事务中创建保存点。
使用 ROLLBACK TO SAVEPOINT 语句回滚到创建的保存点

5.总结


insert…into…
values…

insert…into…
select…from…where…

delete from…
where…

update…
set…
where…

二、约束constraint

约束是表级的强制规定

1.约束分类

有以下五种约束:
非空约束 NOT NULL
唯一约束 UNIQUE
主键 PRIMARY KEY
外键 FOREIGN KEY
定义每一行必须满足的条件 CHECK

create table emp3(
--列级约束
id number(10) constraint emp3_id_uk unique,
name varchar2(20) constraint emp3_name_nn not null,
email varchar2(20),
salary number(10,2),
--表级约束
constraint emp3_email_uk unique(email)
)

非空约束只能定义在列上
唯一约束允许出现多个空值
主键约束:唯一确定一行记录。表明此属性:非空,唯一

--定义外键约束
create table emp3(
		       emp_id number(6), 
		       name varchar2(25), 
		       dept_id number(4) constraint emp_dept_fk references departments(department_id)))

级联删除 ON DELETE CASCADE:当父表中的列被删除时,子表中相对应的列也被删除
级联置空 ON DELETE SET NULL:子表中相应的列置空

外键(foreign key)引用的列起码要有一个唯一约束

2.ALTER TABLE 语句

使用 ALTER TABLE 语句:
–添加或删除约束,但是不能修改约束
–有效化或无效化约束
–添加 NOT NULL 约束要使用 MODIFY 语句

--向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk)
alter table emp2
add constraint my_emp_id_pk primary key(id)
--向表emp2中添加列dept_id,并在其中定义FOREIGN KEY约束,与之相关联的列是dept2表中的id列。
alter table emp2
add(dept_id number(6) constraint emp2_dept_id_fk references dept2(id))

添加约束 add constraint
删除约束 drop constraint
无效化约束 disable constraint
激活约束 enable constraint

3.查询约束

--查询数据字典视图 USER_CONSTRAINTS
SELECT constraint_name,constraint_type,search_condition
FROM user_constraints
WHERE table_name = 'EMPLOYEES'

4.查询定义约束的列

--查询约束名以及约束定义的列名
SELECT	constraint_name, column_name
FROM	user_cons_columns
WHERE	table_name = 'EMPLOYEES'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值