头歌实行MySQL-数据库、表与完整性束缚的界说(Create)

打印 上一主题 下一主题

主题 1881|帖子 1881|积分 5643

目录
第1关:创建数据库
第2关:创建表及表的主码束缚
第3关:创建外码束缚(foreign key)
第4关:CHECK束缚
第5关:DEFAULT束缚
第6关:UNIQUE束缚

第1关:创建数据库

编程要求
创建用于2022年北京冬奥会信息系统的数据库:beijing2022。
  1. create database beijing2022;
复制代码
第2关:创建表及表的主码束缚

编程要求
在右侧“命令行”窗口中操作,或在“代码文件”窗口中填写语句,创建数据库TestDb,在TestDb下创建表t_emp,表结构如下:

注意:
必须为表建主码,但不消思量主码束缚的命名;
备注栏仅用于说明列的含义及具体要求,并不要求用COMMENT短语给列作备注。
  1. # 请在以下适当的空白处填写SQL语句,完成任务书的要求。空白行可通过回车换行添加。
  2. CREATE DATABASE TestDb;
  3. USE TestDb;
  4. CREATE TABLE t_emp (
  5.     id INT PRIMARY KEY,
  6.     name VARCHAR(32),
  7.     deptId INT,
  8.     salary FLOAT
  9. );
  10. /* *********** 结束 ************* */
复制代码

第3关:创建外码束缚(foreign key)

编程要求
设有以下两张表:

请创建上述两个表,为表界说主键,并给表staff创建外键,这个外键束缚的名称为FK_staff_deptNo。在创建表之前你可能必要先创建数据库:MyDb,并且将两张表创建在MyDb数据库中。不需思量关于性别的束缚。(注意:如果你在实行1之后接着作本实行,数据库MyDb可能已经存在)
  1. # 请在以下空白处填写完成任务的语句,空白行可通过回车换行添加。
  2. # 你也可以在命令行窗口完成任务,不过,在命令行键入的语句不会被保存。
  3. CREATE DATABASE IF NOT EXISTS MyDb;
  4. USE MyDb;
  5. DROP TABLE IF EXISTS staff;
  6. DROP TABLE IF EXISTS dept;
  7. CREATE TABLE dept (
  8.     deptNo INT PRIMARY KEY,
  9.     deptName VARCHAR(32)
  10. );
  11. CREATE TABLE staff (
  12.     staffNo INT PRIMARY KEY,
  13.     staffName VARCHAR(32),
  14.     gender CHAR(1),
  15.     dob DATE,
  16.     salary NUMERIC(8,2),
  17.     deptNo INT,
  18.     CONSTRAINT FK_staff_deptNo FOREIGN KEY (deptNo) REFERENCES dept(deptNo)
  19. );
  20. #结束
复制代码
第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不存在,请首先创建它,并将它作为工作数据库。)
  1. # 请在以下空白处填写完成任务的语句,空白行可通过回车换行添加。
  2. # 你也可以在命令行窗口完成任务,不过,在命令行键入的语句不会被保存。
  3. CREATE DATABASE IF NOT EXISTS MyDb;
  4. USE MyDb;
  5. DROP TABLE IF EXISTS products;
  6. CREATE TABLE products (
  7.     pid CHAR(10) PRIMARY KEY,         
  8.     name VARCHAR(32),
  9.     brand CHAR(10),
  10.     price INT,
  11.     CONSTRAINT CK_products_brand CHECK (brand IN ('A', 'B')),
  12.     CONSTRAINT CK_products_price CHECK (price > 0)
  13. );
  14. # 结束
复制代码
第5关:DEFAULT束缚

编程要求
表hr的结构如下:
字段名称    数据范例    备注
id    char(10)    工号,主码
name    varchar(32)    姓名,不允许为空值
mz    char(16)    民族, 缺省值为“汉族”
请在数据库MyDb中创建表hr,并实现name列的NOT NULL束缚和mz列的Default束缚(别忘了主码束缚)。
  1. # 请在以下空白处填写完成任务的语句,空白行可通过回车换行添加。
  2. # 你也可以在命令行窗口完成任务,不过,在命令行键入的语句不会被保存。
  3. CREATE DATABASE IF NOT EXISTS MyDb;
  4. USE MyDb;
  5. CREATE TABLE hr (
  6.     id CHAR(10) PRIMARY KEY,
  7.     name VARCHAR(32) NOT NULL,
  8.     mz CHAR(16) DEFAULT '汉族'
  9. );
  10. # 结束
复制代码
第6关:UNIQUE束缚

编程要求
表s的结构如下:
字段名称    数据范例    备注
sno    char(10)    学号,主码
name    varchar(32)    姓名,不允许为空值
ID    char(18)    身份证号, 不允许有两个雷同的身份证号
请在数据库MyDb中创建表s,并实现相关束缚(主码,NOT NULL和Unique束缚)。
注意表名s是小写的,列名ID是全大写的。如果没有数据库MyDb,你必要创建它,并使其成为当前工作数据库。
  1. # 请在以下空白处填写完成任务的语句,空白行可通过回车换行添加。
  2. # 你也可以在命令行窗口完成任务,不过,在命令行键入的语句不会被保存。
  3. CREATE DATABASE IF NOT EXISTS MyDb;
  4. USE MyDb;
  5. CREATE TABLE s (
  6.     sno CHAR(10) PRIMARY KEY,
  7.     name VARCHAR(32) NOT NULL,
  8.     ID CHAR(18) UNIQUE
  9. );
  10. # 结束
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

兜兜零元

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表