数据库编写
1.1. 数据库常用约束
l 主键约束:primary key
l 外键约束:foreign key (references)
l 唯一值约束:unique
l 默认值约束:default
l 检查约束:check
l 非空约束:not null
l 标识列:identity
1.2. 创建数据表注意事项
l 建表之前,一定不要忘记使用指定的数据库
l 建表顺序 -> 主、外键
l 主外键数据类型必须一致
l 列与列之间用','间隔,最后一列不加','
l 如果两张表确有关联,而题目没给出主外键,则可自行添加主外键
1.3. 插入数据注意事项
l values里的数据个数、类型、精度必须与表中对应列保持一致
l 表中不允许为空的列必须插入数据,有默认值的除外
l 不能为标识列添加数据,因为它是自增的、禁止修改
l 插入字符类型、日期类型等非数值数据时,需要用单引号包含
l 插入的数据必须满足表的约束条件,check、unique等
l 可以省略表名后面的列名,但是这需要保证values 里各项数据的顺序和数据表中列的顺序一致,初学者不建议省略
l 对具有默认值的列和允许为空的列,就需要用到 default 和 null 关键字
l 一般不推荐使用多行插入,尤其是在插入主键表时
l 日期时间插入格式'2020-04-14 09:51:00'或'2020/04/14 09:51:00',如果不需要显示时间,则直接插入年月日即可
1.4. 连接查询的补充
1) 内连接查询(两张表匹配的部分,比如这个学生即在学生表、又在成绩表)
主表 inner join 从表 on 主键=外键 => where 主键=外键
select * from info inner join mark on info.sid=mark.sid
select * from info,mark where info.sid=mark.sid
2) 外连接查询(一张表的全部和另一张表的部分或全部,比如这个学生没有成绩)
① 左外连接:左表 left [outer] join 右表 on 主键=外键 ->左表的全部
② 右外连接:左表 right [outer] join 右表 on 主键=外键 ->右表的全部
select * from info left outer join mark on info.sid=mark.sid->+全部学生,不管这个有没有成绩。如果有成绩,则输出成绩;如果没有,则输出null。
如何选择?一旦要求查询某张表内的全部数据,一定首先使用外连接!!!
1.5. 创建数据库基本步骤
1) 修改当前数据库为master,以解决无法删除数据库问题-> if exists()
2) 如果存在数据库,则进行删除 -> drop database数据库名字
3) 创建数据库 -> create database数据库名字
4) 使用数据库 -> use 数据库名字
5) 创建表 -> create table 表名(列名1 数据类型1 约束...,.....)
6) 插入测试数据 -> insert into 表名 values(值1,值2...default/null/getdate())
7) 执行查询,进行检验 -> select * from 表1,表2 where 主键=外键(可能外连接)