📚 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;