• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    详解MySQL数据库、表与完整性约束的定义(Create)

    发布者: 天下网吧 | 发布时间: 2025-6-14 14:24| 查看数: 140| 评论数: 0|帖子模式

    第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. # 结束
    复制代码
    到此这篇关于MySQL数据库、表与完整性约束的定义(Create)的文章就介绍到这了,更多相关mysql表与完整性约束的定义内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/database/3399034lh.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

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

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表