MySql数据库_01

数据库基础_笔记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、主键不能取空值

原文地址:https://www.cnblogs.com/cqnswp/p/12568889.html