数据库和表的管理

  1. 使用SQL语句创建数据库studentsdb。
    1. CREATE DATABASE studentsdb;
  2. 使用SQL语句选择studentsdb为当前使用数据库。
    1. USE studentsdb;
  3. 使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。
    表1 student_info表结构
列名 数据类型 允许NULL值 主键
学号 char(4)
姓名 char(8)
性别 char(2)
出生日期 date
家庭住址 varchar(50)
  1. CREATE TABLE student_info(
  2. 学号 CHAR(4) NOT NULL PRIMARY KEY,
  3. 姓名 CHAR(8) NOT NULL,
  4. 性别 CHAR(2),
  5. 出生日期 DATE,
  6. 家庭住址 VARCHAR(50)
  7. );

表2 curriculum表结构

列名 数据类型 允许NULL值 主键
课程编号 char(4)
课程名称 varchar(50)
学分 int
  1. CREATE TABLE curriculum(
  2. 课程编号 CHAR(4) NOT NULL KEY PRIMARY KEY,
  3. 课程名称 VARCHAR(50) NOT NULL ,
  4. 学分 INT
  5. );

表3 grade表结构

列名 数据类型 允许NULL值 主键
学号 char(4)
课程编号 char(4)
分数 int

联合主键通过以下方式,创建表时PRIMARY KEY(字段名1,字段名2,……)进行设定

  1. CREATE TABLE grade(
  2. 学号 CHAR(4) NOT NULL,
  3. 课程编号 CHAR(4) NOT NULL,
  4. 分数 INT,
  5. PRIMARY KEY(学号,课程编号)
  6. );
  1. 使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade表插入数据,各表数据如表4-表6所示。
    表4 student_info表的数据
学号 姓名 性别 出生日期 家族住址
0001 张青平 2000-10-01 衡阳市东风路77号
0002 刘东阳 1998-12-09 东阳市八一北路33号
0003 马晓夏 1995-05-12 长岭市五一路763号
0004 钱忠理 1994-09-23 滨海市洞庭大道279号
0005 孙海洋 1995-04-03 长岛市解放路27号
0006 郭小斌 1997-11-10 南山市红旗路113号
0007 肖月玲 1996-12-07 东方市南京路11号
0008 张玲珑 1997-12-24 滨江市新建路97号

插入字段需要单引号括起

  1. INSERT INTO student_info(
  2. 学号,姓名,性别,出生日期,家庭住址)
  3. VALUES
  4. (0001,'张青平','男','2000-10-01','衡阳市东风路77号'),
  5. (0002,'刘东阳','男','1998-12-09','东阳市八一北路33号'),
  6. (0003,'马晓夏','女','1995-05-12','长岭市五一路763号'),
  7. (0004,'钱忠理','男','1994-09-23','滨海市洞庭大道279号'),
  8. (0005,'孙海洋','男','1995-04-03','长岛市解放路27号'),
  9. (0006,'郭小斌','男','1997-11-10','南山市红旗路113号'),
  10. (0007,'肖月玲','女','1996-12-07','东方市南京路11号'),
  11. (0008,'张玲珑','女','1997-12-24','滨江市新建路97号');

表5 curriculum表的数据

课程编号 课程名称 学分
0001 计算机应用基础 2
0002 C语言程序设计 2
0003 数据库原理及应用 2
0004 英语 4
0005 高等数学 4
  1. INSERT INTO curriculum
  2. (课程编号,课程名称,学分)
  3. VALUES
  4. (0001,'计算机应用基础',2),
  5. (0002,'C语言程序设计',2),
  6. (0003,'数据库原理与应用',2),
  7. (0004,'英语',4),
  8. (0005,'高等数学',4);

表6 grade表的数据

学号 课程编号 分数
0001 0001 80
0001 0002 91
0001 0003 88
0001 0004 85
0001 0005 77
0002 0001 73
0002 0002 68
0002 0003 80
0002 0004 79
0002 0005 73
0003 0001 84
0003 0002 92
0003 0003 81
0003 0004 82
0003 0005 75
  1. INSERT INTO grade
  2. (学号,课程编号,分数)
  3. VALUES
  4. (0001,0001,80),
  5. (0001,0002,91),
  6. (0001,0003,88),
  7. (0001,0004,85),
  8. (0001,0005,77),
  9. (0002,0001,73),
  10. (0002,0002,68),
  11. (0002,0003,80),
  12. (0002,0004,79),
  13. (0002,0005,73),
  14. (0003,0001,84),
  15. (0003,0002,92),
  16. (0003,0003,81),
  17. (0003,0004,82),
  18. (0003,0005,75);
  1. 使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为空。
    本来该表该列已经设定不允许为空,所以我们先MODIFY设定列允许为空之后,用UPDATE更新列的值
    1. ALTER TABLE curriculum MODIFY 课程名称 VARCHAR(50) NULL;
    2. UPDATE curriculum SET 课程名称 = NULL;
  2. 使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。
    1. ALTER TABLE grade
    2. MODIFY 分数 DECIMAL(5,2);
  3. 使用SQL语句ALTER TABLE为student_info表添加一个名为“备注”的数据列,其数据类型为varchar(50)。
    1. ALTER TABLE student_info
    2. ADD 备注 VARCHAR(50);
  4. 使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。
    1. CREATE DATABASE studb;
    2. USE studb;
    3. CREATE TABLE stu(
    4. 学号 CHAR(4) NOT NULL PRIMARY KEY,
    5. 姓名 CHAR(8) NOT NULL,
    6. 性别 CHAR(2),
    7. 出生日期 DATE,
    8. 家庭住址 VARCHAR(50)
    9. );
    10. INSERT INTO stu
    11. (学号,姓名,性别,出生日期,家庭住址)
    12. VALUES
    13. (0001,'张青平','男','2000-10-01','衡阳市东风路77号'),
    14. (0002,'刘东阳','男','1998-12-09','东阳市八一北路33号'),
    15. (0003,'马晓夏','女','1995-05-12','长岭市五一路763号'),
    16. (0004,'钱忠理','男','1994-09-23','滨海市洞庭大道279号'),
    17. (0005,'孙海洋','男','1995-04-03','长岛市解放路27号'),
    18. (0006,'郭小斌','男','1997-11-10','南山市红旗路113号'),
    19. (0007,'肖月玲','女','1996-12-07','东方市南京路11号'),
    20. (0008,'张玲珑','女','1997-12-24','滨江市新建路97号');
    21. ALTER TABLE stu
    22. ADD 备注 VARCHAR(50);
  5. 使用SQL语句删除表stu中学号为0004的记录。
    1. DELETE FROM stu WHERE 学号 = 0004;
    10.使用SQL语句更新表stu中学号为0002的家庭住址为“滨江市新建路96号”。
  1. UPDATE stu SET 家庭住址 = '滨江市新建路96号' WHERE 学号 = 0002;

11.删除表stu的“备注”列。

  1. ALTER TABLE stu DROP 备注;

12.删除表stu。

  1. DROP TABLE stu;

13.删除数据库studb。

  1. DROP DATABASE studb;