一.表连接分类
1.内连接 【
inner join】
select
from A表 别名
inner join B表 别名
on 连接条件
where 其他判定条件
【注意】:只考虑连接条件成立的记录,对于连接条件出现
null的记录直接舍弃,不出现在结果中
2.外连接 【
left/right/full outer join】
1)左外连接
[left outer join]:以左表为主,右表为辅
select
from A表 别名
left outer join B表 别名
on 连接条件
;
2)右外连接
[right outer join]:右表为主,左表为辅
3)全外连接
[full outer join]
3.自连接:通过为一张表定义两个别名的方式
select
from A表 e1
left join A表 e2
on 连接条件
;
4.多表连接
select e
.last_name
,d
.department_name
,lo
.city
from employees e
left join departments d
on e
.department_id
= d
.department_id
left join locations lo
on d
.location_id
= lo
.location_id
;
二.建表
1.语法
create table 表名
(
字段名 数据类型
[default 值
] [约束
],
字段名 数据类型
[默认值
],
字段名 数据类型
);
2.数据类型
1)数字类型
2)字符串类型
3)日期类型
4)大数据类型
3.约束
1)主键约束(
primary key)特点:非空唯一
2)非空约束(
not null) 特点:必须有数据
3)唯一约束(
unique) 特点:有值时,值不重复
4)检查约束(
check(条件
))
5)外键约束(
references) 特点:值来自关联表的主键,可重复,可为空
4.特别约束
1)联合主键
create table stable
(
sid number
(3) references student
(id
),
cid number
(3) references course
(id
),
score number
(3),
primary key(sid
,cid
)
);
2)联合唯一键
create table test
(
last_name varchar2
(15),
first_name varchar2
(15),
unique(last_name
,first_name
)
);
三.增数据 insert
1.全表插入
语法:
insert into 表名
values (值
1,值
2,....)
要求:值的个数、类型、顺序必须与表里字段完全一致
2.选择插入
语法:
insert into 表名
(列
1,列
2,
...) values (值
1,值
2,...)
要求:
1)值的个数、类型、顺序必须与前面小括号里选择列一致
2)对于非空
,并且没有默认值的字段,必须入选选择列
四.删除数据 delete
语法:
delete from 表名
where 条件
;
【注
1】rop、
delete和
truncate区别
1)
drop删除表,数据和表结构,不留一点痕迹
语法:
drop table 表名
[cascade constraint]
2)
delete删除数据:直接清空表里的数据,保留数据所占空间
删除一条数据语法:
delete from 表名
where 条件
(主键
);
3)
truncate命令:截断表里的数据,数据被删除,同时数据所占空间被释放,只保留表头
语法:
truncate table 表名
;
【注
2】关于关联表的删除
1)有外键指向的两个表创建时:先父后子
2)删除动作:先子后父
Ⅰ)希望删除父表数据
Ⅱ)希望删除父表
【注
3】
cascade constraint:级联操作子表的外键约束,在删除父表的同时,将子表里的外键约束删除
五.修改数据 update
语法:
update 表名
set 字段名
= 新值
,字段名
= 新值
,.. where 条件
(主键
);
六.SQL命令的分类
1.DQL
( Data Query
Language )数据查询语言
完成数据的查询
2.DML
( Data Manipulation
Language)数据操纵语言
完成对数据的访问操作
3.DDL
( Data Definition
Language)数据定义语言
用来操作数据库里对象的命令
4.DCL
( Data Control Langeuage
)数据控制语言
权限管理的命令
5.TCL
( Transaction Control
Language )事务控制语言