数据库基础_笔记01
2019年11月12日
表的创建与管理
如何创建一个表
在clc模式下创建一个表语法如下
CREATE TABLE table_name
(
属性名 数据类型 【约束条件】【默认值】
属性名 数据类型 【约束条件】【默认值】
…
);
create table xs_qk(
学号 char(10) not null primary key,
姓名 varchar(10) not null,
课程 char(3),
成绩 tinyint);
表约束
一个数据库由多个表组成,表约束就是确定表之间的关联关系。
表约束包括 主键约束、外键约束、非空约束、唯一性约束和默认约束。
(主键约束)
主键可多列组成,主键用于唯一标识数据表中的一条记录(primary key constraint)
ps:主键不可取空值,主键应对应一个实体完整性,一个数据表中只能定义一个主键(是只能定义,不是只能是一条),主键与外键结合后,可以定义不同数据表之间的关系(这可以加快数据库查询的速度)
多字段联合主键(多联主键)
create table xs_qk(
学号 char(10) not null,
姓名 varchar(10) not null,
课程 char(3),
成绩 tinyint,
primary key (学号,姓名)); //定义了学号,和姓名两个主键
查询此表详情
show create table xs_qk;
DESC命令也可以查询表结构
desc xs_qk;
单字段主键
(外键约束)
外键指不是本表的主键,但是另一个表的主键。
ps:外键用于两个表建立链接,一个表可以有一个或多个外键,外键应对应完整性,定义外键后,外键可以为空值,如不为空,,则必须与另一个表中的某个主键值相同,对于两个表,主表是主键所在表,从表是外键所在表,当主表中数据更新后,从表中的数据也会自动更新。
外键语法:
【CONSTRAINT<外键名>FOREIGN KEY 字段名1【,字段名2,…】REFERENCES<主表名>主键列1【,主键列2…】
其中,“外键名"是定义的外键约束名,“字段名”是从表定义为外键的列名,“主表名”是被从表所依赖的表明,“主键列”是主表中的主键列名。
(非空约束)
指字段值不能为空,如为空属性,用null表示。
(默认约束)
顾名思义,默认,如果不输入就是默认值。
(唯一性约束)
用于保证列中不出现重复数据,唯一性约束实现了实体完整性规则。
在mysql中,唯一性约束可以为NULL,可以重复加入含有NULL,的记录,但主键字段不能为NULL;一个字段中只能有一个主键约束,但可以定义多个唯一性约束。
ps:
对于非空约束
1、非空约束指字段的值(数据)不能为空
2、对于指定了非空约束字段,如果在添加时未指定值,会报错
3、主键约束同时也隐含了非空约束,主键不能取空值
对于主键约束
1、主键只能定义一个主键(多个列的主键也是一个主键)
2、主键不能取空值