一, 数据定义语言:
1, 用于改变数据库结构, 包括创建, 更改和删除数据库对象;
2, 命令:
create table : 创建
alter table 修改
drop table 删除表
truncate table 删除表数据 (不可以回滚)
2, 创建表:
-- 创建表
- create table sclass(
- cid int primary key,
- cname varchar(10)
- )
- create table Java (
ssid int primary key, -- 主键约束
sname varchar2(20) unique, -- 唯一约束
ssex char(5) check(ssex in ('男','女')),-- 检查约束, 检查输入的是否是男或者女
sbirth date not null, -- 非空约束
saddress varchar2(50) default '淄博',-- 默认值约束
--score double check(score between 0 and 100), -- 检查约束的范围写法
cid int,
constraint fk_student_class foreign key(cid) references sclass(cid) -- 设置外键
)
3, 修改表结构:
alter 表名 add/modify/drop(增加 / 修改 / 删除) 列名 类型名 / 约束
4, 截断:
truncate table 表名;
-- 将表中的所有记录全部删除, 但保留表结构, 并且不写日志;
-- truncate 是 DDL 语言,
delete from 表名 是 DML 语言;
5, 删除表: drop
6, 数据完整性:
可靠性 + 准确性 = 数据完整性
根据数据完整性机制所作用的数据库对象和范围的不同, 数据完整性可分为以下四种类型:
1, 实体完整性: 唯一约束, 主键约束;
2, 域完整性: 限制数据类型, 检查约束, 默认值, 非空约束;
3, 参照完整性 (引用完整性): 外键约束;
4, 自定义完整性: 规则, 存储过程
约束实现数据完整性:
创建表: 保证数据的完整性 = 实施完整性约束
二, 数据操作语言:
数据操作语言:
检索, 插入和修改数据 (增 insert, 删 delete, 改 update, 查 select)
insert into java values(1,'张三','男',to_date('1997-02-22','yyyy-mm-dd'),'济南');
日期类型 使用
to_date
-- 复制表 (表不存在)-- 只复制表结构, 不复制表数据 (因为 1=2, 不成立)
- create table student as select * from java where 1=2;
- select * from student;
-- 复制表结构和表内容, 不复制约束
- create table student2 as select * from java;
- select * from student2;
-- 插入来自其他表中的数据 (select 前可以加 from)
- insert into student select * from java;
- select * from student;
三, 事务控制语言:
1, 事务是最小的工作单元, 作为一个整体进行工作
2, 保证事务的整体成功或失败, 称为事务控制;
3, 用于事务控制的语句有:
commit: 提交并结束事务处理;
rollback: 撤销事务中已完成的工作;
savepoint: 标记事务中可以回滚的点;
四, 数据控制语言:
1, 数据控制语言为用户提供权限控制语言;
2, 命令:
grant: 授予权限;
revoke: 撤销已授予的权限;
-- 创建用户
create user yym identified by 123456;
grant connect, resource to yym;-- 授予权限
-- 登录管理员的账户, 给用户 yym 设置能访问 scott.emp 表的权限 (只能查看)
- grant select on scott.emp to yym with grant option;
- select * from scott.emp;
-- 管理员撤销 yym 的访问刚才那个表的权限
revoke select on scott.emp from yym;
来源: http://www.linuxidc.com/Linux/2019-07/159666.htm