数据库和表的管理
- 使用SQL语句创建数据库studentsdb。- CREATE DATABASE studentsdb;
 
- 使用SQL语句选择studentsdb为当前使用数据库。- USE studentsdb;
 
- 使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。
 表1 student_info表结构
| 列名 | 数据类型 | 允许NULL值 | 主键 | 
|---|---|---|---|
| 学号 | char(4) | 否 | 是 | 
| 姓名 | char(8) | 否 | 否 | 
| 性别 | char(2) | 是 | 否 | 
| 出生日期 | date | 是 | 否 | 
| 家庭住址 | varchar(50) | 是 | 否 | 
CREATE TABLE student_info(
学号 CHAR(4) NOT NULL PRIMARY KEY,
姓名 CHAR(8) NOT NULL,
性别 CHAR(2),
出生日期 DATE,
家庭住址 VARCHAR(50)
);
表2 curriculum表结构
| 列名 | 数据类型 | 允许NULL值 | 主键 | 
|---|---|---|---|
| 课程编号 | char(4) | 否 | 是 | 
| 课程名称 | varchar(50) | 否 | 否 | 
| 学分 | int | 是 | 否 | 
CREATE TABLE curriculum(
课程编号 CHAR(4) NOT NULL KEY PRIMARY KEY,
课程名称 VARCHAR(50) NOT NULL ,
学分 INT
);
表3 grade表结构
| 列名 | 数据类型 | 允许NULL值 | 主键 | 
|---|---|---|---|
| 学号 | char(4) | 否 | 是 | 
| 课程编号 | char(4) | 否 | 是 | 
| 分数 | int | 是 | 否 | 
联合主键通过以下方式,创建表时PRIMARY KEY(字段名1,字段名2,……)进行设定
CREATE TABLE grade(
学号 CHAR(4) NOT NULL,
课程编号 CHAR(4) NOT NULL,
分数 INT,
PRIMARY KEY(学号,课程编号)
);
- 使用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号 | 
插入字段需要单引号括起
INSERT INTO student_info(
学号,姓名,性别,出生日期,家庭住址)
VALUES
(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号');
表5 curriculum表的数据
| 课程编号 | 课程名称 | 学分 | 
|---|---|---|
| 0001 | 计算机应用基础 | 2 | 
| 0002 | C语言程序设计 | 2 | 
| 0003 | 数据库原理及应用 | 2 | 
| 0004 | 英语 | 4 | 
| 0005 | 高等数学 | 4 | 
INSERT INTO curriculum
(课程编号,课程名称,学分)
VALUES
(0001,'计算机应用基础',2),
(0002,'C语言程序设计',2),
(0003,'数据库原理与应用',2),
(0004,'英语',4),
(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 | 
INSERT INTO grade
(学号,课程编号,分数)
VALUES
(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);
- 使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为空。
 本来该表该列已经设定不允许为空,所以我们先MODIFY设定列允许为空之后,用UPDATE更新列的值- ALTER TABLE curriculum MODIFY 课程名称 VARCHAR(50) NULL;
- UPDATE curriculum SET 课程名称 = NULL;
 
- 使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。- ALTER TABLE grade
- MODIFY 分数 DECIMAL(5,2);
 
- 使用SQL语句ALTER TABLE为student_info表添加一个名为“备注”的数据列,其数据类型为varchar(50)。- ALTER TABLE student_info
- ADD 备注 VARCHAR(50);
 
- 使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。- CREATE DATABASE studb;
- USE studb;
- CREATE TABLE stu(
- 学号 CHAR(4) NOT NULL PRIMARY KEY,
- 姓名 CHAR(8) NOT NULL,
- 性别 CHAR(2),
- 出生日期 DATE,
- 家庭住址 VARCHAR(50)
- );
- INSERT INTO stu
- (学号,姓名,性别,出生日期,家庭住址)
- VALUES
- (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号');
- ALTER TABLE stu
- ADD 备注 VARCHAR(50);
 
- 使用SQL语句删除表stu中学号为0004的记录。
 10.使用SQL语句更新表stu中学号为0002的家庭住址为“滨江市新建路96号”。- DELETE FROM stu WHERE 学号 = 0004;
 
UPDATE stu SET 家庭住址 = '滨江市新建路96号' WHERE 学号 = 0002;
11.删除表stu的“备注”列。
ALTER TABLE stu DROP 备注;
12.删除表stu。
DROP TABLE stu;
13.删除数据库studb。
DROP DATABASE studb;
 
                         
                                

