创建
创建数据库
create database 库名
创建表
create table 表名(
[字段] [类型],
[字段] [类型]
)
查询
单表查询
单表查询顾名思义,就是查询的所有内容都在一张表里,构成形式相对简单,select from语句结合where,查询需要的元组
select 属性名
from 表名
where 条件
单独的select from语句用来查询列,加入固定的条件后查询元组,其实就是英语里的定语从句,从后往前翻译,非常简单
连接查询
连接查询就是多个表进行查询,比如我想查询满足某条件的学生姓名,但是学生姓名在表1里,而需要满足的条件需要在表2里进行查询,这样就用到了连接查询,归根到底还是英语里的定语从句,从后往前翻译就行了,思路清晰🙃连接查询里还有一些聚合函数,感觉不是很复杂,这里就不多介绍了,但是要区分一些count和sum的用法,sum是求和,count是求行的个数(也就是元组)
select 属性名
from 表1,表2
where 条件
嵌套查询
嵌套查询听起来很难,但仔细分析理解后很容易发现,就是在普通查询的基础上进行for循环,他的执行方式与for循环完全一致(嵌套的层数取决于你的问题),只要思路清晰也很好理解,感觉很多嵌套查询也可以用连接查询完成,还是推荐连接,因为嵌套耗时较多(就像for循环一样,循环层数越多,时间复杂度越高),注意一些谓词的用法就好,比如in,exists等,exists有些难理解,多做做题会感觉好很多
select 属性名
from 表名
where 条件(
...
...
where 条件(
...
...
...
)
)
创建约束
添加字段
(1)通过alter建立
alter table 表名 add column 字段 类型
(2)建表时建立
create table 表名(
字段名 数据类型
)
添加主键(PK)约束
(1)通过alter建立
alter table 表名 add constraint 主键名称 primary key(主键字段)
(2)建表时建立
create table 表名(
constraint 主键名称 primary key(主键字段)
)
如果同时存在多个主键,要通过
primary key(主键1,主键2,...)
这种方式建立
create table 表名(
字段名 数据类型 primary key
)
添加外键(FK)约束
(1)通过alter建立
alter table 表名 add constraint 外键名称 foreign key(外键字段) references 表名(主键字段)
(2)建表时建立
create table 表名(
constraint 外键名称 foregin key(外键字段) references 父表(主键字段)
)
create table 表名(
字段名 数据类型 foregin key reference 父表名(主键)
)
添加唯一性约束
(1) 通过alter建立
alter table 表名 constraint 唯一性约束名称 add unique(唯一性字段)
(2)建表时建立
create table 表名(
constraint 唯一性约束名称 unique(字段名)
)
create table 表名(
字段名 数据类型 unique
)
Check检查约束
check(语句)
比如一个表中有一个字段(sex)表示性别,那么肯定要保证sex为男或女,利用check可以这样写
check(sex = '男' or sex = '女')
Tip:constraint如果不加,系统会自动生成一个约束名称,这样不方便删除(但是也不影响用),加上constraint就是为了给自己添加的约束命名
- 本文链接:http://yoursite.com/2020/04/16/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9F%A5%E8%AF%A2/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions