SQL练习代码(第一篇)

📚 SQL练习代码(第一篇)

  • 🔁 文章原始同步:微信搜索公众号:sky wide 技术
  • 📖 QQ技术群:308191819
  • 欢迎各位加入
    该篇文章主要是将博主在学习sql时候的代码进行讲解,提供给小白入门使用。
-- 创建 workcollages 数据库
CREATE DATABASE IF NOT EXISTS workcollages;
-- 使用该数据库
USE workcollages;

-- --------------- 表区域 ---------------
-- 创建 student 表
CREATE TABLE student (
    sno INT(5) NOT NULL PRIMARY KEY,  -- 学生编号,主键
    name VARCHAR(8) NOT NULL,          -- 姓名
    sex CHAR(2) NOT NULL,              -- 性别
    age INT DEFAULT '20' NOT NULL,     -- 年龄,默认值 20
    dept VARCHAR(20) NOT NULL,         -- 系别
    UNIQUE (name)                      -- 姓名唯一约束
) DEFAULT CHARSET=gbk;

-- 创建 course 表
CREATE TABLE course (
    cno INT AUTO_INCREMENT NOT NULL,    -- 课程编号,自增
    cname VARCHAR(30) NOT NULL,         -- 课程名称
    ccredit INT NOT NULL,               -- 学分
    PRIMARY KEY(cno)                    -- 主键
) DEFAULT CHARSET=gbk;

-- 创建 sc 表
CREATE TABLE sc (
    sno INT NOT NULL,                   -- 学生编号
    cno INT NOT NULL,                   -- 课程编号
    grade DECIMAL(4,1) NOT NULL,       -- 成绩
    PRIMARY KEY(sno, cno),              -- 主键(学生编号,课程编号)
    CONSTRAINT fk_sno FOREIGN KEY(sno) REFERENCES student(sno)
    -- CONSTRAINT fk_cno FOREIGN KEY(cno) REFERENCES course(cno)  -- 外键约束(未启用)
) DEFAULT CHARSET=gbk;

-- --------------- 修改表区域 ---------------
-- 给 student 表的 sno 字段添加主键
ALTER TABLE student
ADD PRIMARY KEY (sno);

-- 给 student 表的 name 字段添加唯一约束
ALTER TABLE student
ADD UNIQUE (name);

-- 修改 student 表的 age 默认值为 20
ALTER TABLE student
ALTER age SET DEFAULT '20';

-- 修改 student 表的 sex 字段为非空
ALTER TABLE student MODIFY sex CHAR(2) NOT NULL;

-- 查看 student 表结构
DESC student;

-- 从 student 表中删除主键
ALTER TABLE student
DROP PRIMARY KEY;

-- 从 student 表中删除唯一索引 name
ALTER TABLE student
DROP INDEX name;

-- 删除 student 表的年龄默认值
ALTER TABLE student
ALTER age DROP DEFAULT;

-- 将 student 表的 sex 字段修改为可空
ALTER TABLE student MODIFY sex CHAR(2) NULL;

-- 如果需要删除 student 表,可取消注释
-- DROP TABLE student;

-- 再次查看 student 表结构
DESC student;

-- 修改 course 表的 ccredit 列
ALTER TABLE course
CHANGE COLUMN ccredit ccredit INT NOT NULL;

-- 查看 course 表结构
DESC course;

-- 向 sc 表添加外键约束
ALTER TABLE sc  
ADD FOREIGN KEY (sno)  
REFERENCES student(sno);

-- 查看 sc 表结构
DESC sc;

-- 修改 sc 表的 grade 列
ALTER TABLE sc
CHANGE COLUMN grade grade DECIMAL(4,1) NOT NULL;

-- 删除 sc 表的 fk_sno 外键约束
ALTER TABLE sc  
DROP FOREIGN KEY fk_sno;

-- 查看 sc 表结构
DESC sc;

-- 创建课程和成绩表的代码(未启用)
-- CREATE TABLE course;
-- CREATE TABLE sc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sky wide

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值