Kay 2019-07-29
一、数据定义语言:
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、数据完整性:
可靠性 + 准确性 = 数据完整性
根据数据完整性机制所作用的数据库对象和范围的不同,数据完整性可分为以下四种类型:
①、实体完整性:唯一约束、主键约束;
②、域完整性:限制数据类型、检查约束、默认值、非空约束;
③、参照完整性(引用完整性):外键约束;
④、自定义完整性:规则、存储过程
约束实现数据完整性:
创建表:保证数据的完整性 = 实施完整性约束
二、数据操作语言:
数据操作语言:
检索、插入和修改数据(增 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;