任务内容

  1. 创建一个数据库
  2. 创建对应的数据库对象
  3. 以学生、课程、选课关系构成的数据库为例
    1. 运用SQL语言创建数据库S-C
    2. 运用SQL语言创建S-C中的关系
    3. 运用SQL语言完成关系各属性定义,及主码、外码的定义
1
2
3
Student(Sno,Sname,Ssex,Sage,Sdept)
Course(Cno,Cname,Ccredit,Cpno)
SC(Sno,Cno,Grade)

创建一个数据库

显示数据库列表

1
show databases;

使用这个语句可以看已有的数据库列表。

创建数据库

1
create database databasename;

使用这个语句创建一个新的数据库。

然后用show databases;可以看到这个新创建的数据库。

指定数据库

1
use databasename;

创建基本表

1
2
3
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ]);

根据要求:

1
2
3
Student(Sno,Sname,Ssex,Sage,Sdept)
Course(Cno,Cname,Ccredit,Cpno)
SC(Sno,Cno,Grade)

设计的SQL语句为:

1
2
3
4
5
6
7
8
9
create table student
(
Sno varchar(20) not null UNIQUE,
Sname varchar(20),
Ssex varchar(10),
Sage int,
Sdept varchar(100),
PRIMARY KEY(Sno)
);
1
2
3
4
5
6
7
8
create table course
(
Cno varchar(20) not null UNIQUE,
Cname varchar(20),
Ccredit int,
Cpno varchar(10),
PRIMARY KEY(Cno)
);
1
2
3
4
5
6
7
8
create table sc
(
Sno varchar(20),
Cno varchar(20),
Grade int,
FOREIGN KEY(`Sno`) references student(`Sno`),
FOREIGN KEY(`Cno`) references course(`Cno`)
);

查看基本表结构

1
desc databasename;

使用这个语句可以查看基本表的结构。


一点吐槽

在建立外键的那个部分磨蹭了我半个小时多,查阅各种资料无果。
最后才发现Linux下的MySQL是区分表名的大小写的!