当前位置: 首页 > news >正文

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_idfrom departmentswhere 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'
http://www.lryc.cn/news/8959.html

相关文章:

  • 前端入门~
  • 工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明
  • uni-app前端H5页面底部内容被tabbar遮挡
  • 昇腾CANN算子开发揭秘
  • 华为OD机试注意事项,备考思路,刷题要点,答疑,od Base 提供
  • Python 自己简单地造一个轮子.whl文件
  • NVIDIA Tesla V100部署与使用
  • 网络知识点梳理与总结
  • 我工作5年测试才8K,应届生刚毕业就拿16K?凭什么
  • 【QT】UDP通信QUdpSocket(单播、广播、组播)
  • 【Java】properties 和 yml 的区别
  • percona软件介绍 、 innobackupex备份与恢复
  • Towards Adversarial Attack on Vision-Language Pre-training Models
  • 2022年最新数据库调查报告:超八成DBA月薪过万,你拖后腿了吗?
  • ESP-C3入门10. 创建TCP Client
  • 【Vue】浅谈vue2、vue3响应式原理,vue中数组的响应式,响应式常见问题分析
  • 股航顶峰先锋一号
  • MYSQL安装部署--Linux 仓库安装
  • NFS服务器搭建
  • 【数据挖掘实战】——航空公司客户价值分析(K-Means聚类案例)
  • AnlogicFPGA-IO引脚约束设置
  • Java SSM 笔记(一)重置版
  • centos安装java,目录授权
  • 【大数据】HADOOP-YARN容量调度器多队列配置详解实战
  • 加密技术在android系统安全中的应用
  • KNN&K-means从入门到实战
  • SpringBoot整合RabbitMQ
  • Hive---安装教程
  • MySQL作业四
  • 云原生安全检测器 Narrows(CNSI)的部署和使用