目录

一、本篇作为例子的三个表

二、模式的定义与删除

1、模式的定义(SQL)or 数据库的创建(mysql语言)

2、模式的删除(SQL)or 数据库的删除(mysql语言)

三、表的定义、删除与修改

1、表

1.1表的定义

1.2表的删除

1.3表的修改

2、数据类型

3、索引

一、本篇作为例子的三个表

Student

学号(Sno)

姓名(Sname)

性别(Ssex)

年龄(Sage)

所在系(Sdept)

201215121

李勇

20

CS

201215122

刘晨

19

CS

201215123

王敏

18

MA

201215125

张立

19

IS

Course

课程号(Cno)

课程名(Cname)

先行课(Cpno)

学分(Ccredit)

1

数据库

5

4

2

数学

2

3

信息系统

1

4

4

操作系统

6

3

5

数据结构

7

4

6

数据处理

2

7

PASCAL语言

6

4

SC

学号(Sno)

课程号(Cno)

成绩(Grade)

201215121

1

92

201215121

2

85

201215121

3

88

201215122

2

90

201215122

3

80

二、模式的定义与删除

1、模式的定义(SQL)or 数据库的创建(mysql语言)

语法:create database 数据库名;

例:create database test;

解释:该例创建了一个名为test的模式(数据库)。

2、模式的删除(SQL)or 数据库的删除(mysql语言)

语法:drop database 数据库名;

例:drop database test;

解释:该例删除了一个名为test的模式(数据库)。

三、表的定义、删除与修改

1、表

1.1表的定义

语法:

create table ( [列级完整性约束] ,

...

[列级完整性约束] ,

[表级完整性约束]

);

例1:

create table Student

(Sno char(9) primary key,       /*列级完整性约束条件,Sno是主码*/

Sname char(20) unique,        /*Sname取唯一值*/

Ssex char(2),

Sage smallint,

Sdept char(20)

);

创建后查看属性:

例2:

create table Course

(Cno char(4) primary key,          /*列级完整性约束条件,Cname不能取空值*/

Cname char(40) not null,           /*Cpno的含义是先修课*/

Cpno char(4),

Ccredit smallint,

foreign key (Cpno) references Course(Cno)

/*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/

);

创建后查看属性:

例3:

create table SC

(Sno char(9),

Cno char(4),

Grade smallint,

primary key(Sno, Cno),

foreign key(Sno) references Student(Sno),

foreign key(Cno) references Course(Cno)

);

创建后查看属性:

三个表添加后查看:

1.2表的删除

语法:drop table 表名;

1.3表的修改

创建例子:

增加列

语法:alter table 表名 add 属性名 数据类型 【列级完整性约束】;

样例:

例子1:alter table myname add age smallint;

解释:在表myname中新添加一列age,数据类型为smallint。

例子2:  alter table myname add Id char(10) primary key;

解释:在表myname中新添加一列Id,数据类型为10个长度的字符串,并设为主键。

删除列

语法:alter table 表名 drop 属性名;

样例:

例子1:alter table myname drop age;

解释:在表myname中删除列age。

添加表级完整性约束条件

语法:alter table 表名 add 表级完整性约束;

样例:

例子1:alter table myname add unique(name);

解释:在表myname中添加了约束条件:name属性取唯一值。

修改列的属性

语法:alter table 表名 modify 列名 新的数据类型 【列级完整性约束条件】;

样例:

例子1:alter table myname modify Id int;

解释:修改表myname的列Id的数据类型为int。

删除主键

语法: alter table myname drop primary key;

2、数据类型

参考菜鸟教程:http://www.runoob/mysql/mysql-data-types.html

3、索引

1) 创建索引语法

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name

[USING index_type]

ON table_name (index_col_name,...)

2) 创建样例

例:CREATE INDEX idx_sno ON Student(Sno);

3) 查看索引

语法:SHOW INDEX FROM 表名;

4) 修改索引

在MySQL中并没有提供修改索引的直接指令,一般情况下,我们需要先删除掉原索引,再根据需要创建一个同名的索引,从而变相地实现修改索引操作。

5) 删除索引

语法:ALTER TABLE 表名 DROP INDEX 索引名;

参考博文:https://www./yeyublog/p/5898588.html

注:有关MySql数据库的其他操作请参见MySql目录进行查找。

更多推荐

mysql 定义模式_MySql数据库之数据定义(模式、表、数据类型、索引)