详解MySQL数据库、表与完整性约束的定义(Create)
目录
- 第1关:创建数据库
- 第2关:创建表及表的主码约束
- 第3关:创建外码约束(foreign key)
- 第4关:CHECK约束
- 第5关:DEFAULT约束
- 第6关:UNIQUE约束
第1关:创建数据库
编程要求
创建用于2022年北京冬奥会信息系统的数据库:beijing2022。create database beijing2022;
第2关:创建表及表的主码约束
编程要求
在右侧“命令行”窗口中操作,或在“代码文件”窗口中填写语句,创建数据库TestDb,在TestDb下创建表t_emp,表结构如下:注意:
必须为表建主码,但不用考虑主码约束的命名;
备注栏仅用于说明列的含义及具体要求,并不要求用COMMENT短语给列作备注。# 请在以下适当的空白处填写SQL语句,完成任务书的要求。空白行可通过回车换行添加。 CREATE DATABASE TestDb; USE TestDb; CREATE TABLE t_emp ( id INT PRIMARY KEY, name VARCHAR(32), deptId INT, salary FLOAT ); /* *********** 结束 ************* */
第3关:创建外码约束(foreign key)
编程要求
设有以下两张表:请创建上述两个表,为表定义主键,并给表staff创建外键,这个外键约束的名称为FK_staff_deptNo。在创建表之前你可能需要先创建数据库:MyDb,并且将两张表创建在MyDb数据库中。不需考虑关于性别的约束。(注意:如果你在实验1之后接着作本实验,数据库MyDb可能已经存在)
# 请在以下空白处填写完成任务的语句,空白行可通过回车换行添加。 # 你也可以在命令行窗口完成任务,不过,在命令行键入的语句不会被保存。 CREATE DATABAS编程客栈E IF NOT EXISTS MyDb; USE MyDbjavascript; DROP TABLE IF EXISTS staff; DROP TABLE IF EXISTS dept; CREATE TABLE dept ( js deptNo INT PRIMARY KEY, deptName VARCHAR(32) ); CREATE TABLE staff ( staffNo INT PRIMARY KEY, staffName VARCHAR(32), gender CHAR(1), dob DATE, salary NUMERIC(8,2), deptNo INT, CONSTRAINT FK_staff_deptNo FOREIGN KEY (deptNo) REFERENCES dept(deptNo) ); #结束
第4关:CHECK约束
编程要求
表products的结构如下:字段名称 数据类型 备注
pid char(10) 产品户ID,主码name varchar(32) 产品名称brand char(10) 品牌,只能是('A','B')中的某一个price int 价格,必须>0请在数据库MyDb中创建表products,并分别实现对品牌和价格的约束,两个CHECK约束的名称分别为CK_products_brand和CK_products_price,主码约束不要显示命名。(提示:如果数据库MyDb不存在,请首先创建它,并将它作为工作数据库。)
# 请在以下空白处填写完成任务的语句,空白行可通过回车换行添加。 # 你也可以在命令行窗口完成任务,不过,在命令行键入的语句不会被保存。 CREATE DATABASE IF NOT EXISTS MyDb; USE MyDb; DROP TABLE IF EXISTS products; CREATE TABLE products ( pid CHAR(10) PRIMARY KEY, name VARCHAR(32), brand CHAR(10), price INT, CONSTRAINT CK_products_brand CH编程ECK (brand IN ('A', 'B')), CONSTRAINT CK_products_price CHECK (price > 0) ); # 结束
第5关:DEFAULT约束
编程要求
表hr的结构如下:字段名称 数据类型 备注
id char(10) 工号,主码name varchar(32) 姓名,不允许为空值mz char(16) 民族, 缺省值为“汉族”请在数据库MyDb中创建表hr,并实现name列的NOT NULL约束和mz列的Default约束(别忘了主码约束)。# 请在以下空白处填写完成任务的语句,空白行可通过回车换行添加。 # 你也可以在命令行窗口完成任务,不过,在命令行键入的语句不会被保存。 CREATE DATABASE IF NOT EXISTS MyDb; USE MyDb; CREATE TABLE hr ( id CHAR(10) PRIMARY KEY, name VARCHAR(32) NOT NULL, mz CHAR(16) DEFAULT '汉族' ); # 结束
第6关:UNIQUE约束
编程要求
表s的结构如下:字段名称 数据类型 备注
sno char(10) 学号,主码name varchar(32) 姓名,不允许为空值ID char(18) 身份证号, 不允许有两个相同的身份证号请在数据库MyDb中创建表s,并实现相关约束(主码,NOT NULL和Unique约束)。注意表名s是小写的,列名ID是全大写的。如果没有数据库MyDb,你需要创建它,并使其成为当前工作数据库。# 请在以下空白处填写完成任www.devze.com务的语句,空白行可通过回车换行添加。 # 你也可以在命令行窗口完成任务,不过,在命令行键入的语句不会被保存。 CREATE DATABASE IF NOT EXISTS MyDb; USE MyDb; CREATE TABLE s ( sno CHAR(10) PRIMARY KEY, name VARCHAR(32) NOT NULL, ID CHAR(18) UNIQUE ); # 结束
到此这篇关于mysql数据库、表与完整性约束的定义(Create)的文章就介绍到这了,更多相关mysql表与完整性约束的定义内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论