数据库SQL语句练习一

数据库SQL语句练习一

mysql约束条件

非空约束not null
唯一性约束unique
主键约束primary key
外键约束foreign key

日期字段说明

类型字节格式用途是否支持设置默认值
date3YYYY-MM-DD日期
time3HH:MM:SS时间值
year1YYYY年份
datetime8YYYY-MM-DD HH:MM:SS日期和时间
timestamp4YYYYMMDD HHMMSS日期和时间,可作时间戳

timestamp

current_timestampon update current_timestamp
插入当前系统的时间当执行update时,并且字段有 on update current_timestamp属性。则字段无论值有没有变化,它的值也会跟着更新为当前update操作时的时间。
  1. 创建一个 school 数据库,数据库的字符编码使用 utf8

        create database school default charset utf8;
    
  2. 在 school 数据库中,创建一个 student 表,表的存储类型为 innodb,表的结构如下:
    在这里插入图片描述

    create table student(
    sid int(10)UNSIGNED primary key  not null,
    name varchar(10) not null,
    gender varchar(1) not null,
    age int(3) not null,
    birthday date not null,
    phone char, 
    class int unsigned not null,
    grade int unsigned not null
    )
    
  3. 查看创建得student表状态

    desc student
    

    在这里插入图片描述

  4. 在 school 数据库中,创建一个 class 表,表的存储类型为 innodb,表的结构如下:在这里插入图片描述

    create table class(
    cid int unsigned primary key  not null auto_increment,
    name varchar(10) not null,
    tid int unsigned not null,
    size int UNSIGNED not null DEFAULT 0,
    location VARCHAR(30) not null
    )
    
  5. 查看创建得class表状态

    desc class
    

    在这里插入图片描述

  6. 在school 数据库中,创建一个 teacher 表,表的存储类型为 innodb,表的结构如下:在这里插入图片描述

    create table teacher(
    tid int unsigned primary key not null auto_increment,
    name varchar(10) not null,
    age int unsigned not null,
    education enum('本科','硕士','博士')not null,
    hiredate timestamp not null default current_timestamp
    )
    
  7. 使用 SQL 语句为以上三个表中的字段添加外键约束。

    ### student.class是外键(student关联class表);class.tid是外键(class表关联teacher表)
    alter table student add foreign key(class) references class (tid)
    alter table class add foreign key(tid) references teacher (tid)
    

    查看三表:

    desc student
    

    在这里插入图片描述

    desc class
    

    在这里插入图片描述

    desc teacher
    

    在这里插入图片描述

  8. 使用 SQL 语句为以上三个表中的字段添加 CHECK 约束

    (1) 学生姓名、班级姓名和教师姓名不得超过10个字符
    alter table student add check (name<11)
    alter table class add check (name<11) 
    alter table teacher add check (name<11)
    
    (2) 学生的年龄必须在 19-30 岁之间。
    alter table student add check(age in19 30))
    
    (3) 手机号码的长度必须达到 11 位
    alter table student add check(phone=11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值