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

目录

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

二、模式的定义与删除

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的模式(数据库)。

MySql数据库之数据定义(模式、表、数据类型、索引)_第1张图片

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

语法:drop database 数据库名;

例:drop database test;

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

MySql数据库之数据定义(模式、表、数据类型、索引)_第2张图片

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

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)

);

创建后查看属性:

MySql数据库之数据定义(模式、表、数据类型、索引)_第3张图片

例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*/

);

创建后查看属性:

MySql数据库之数据定义(模式、表、数据类型、索引)_第4张图片

例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)

);

创建后查看属性:

MySql数据库之数据定义(模式、表、数据类型、索引)_第5张图片

三个表添加后查看:

MySql数据库之数据定义(模式、表、数据类型、索引)_第6张图片

附加:常用的列表约束

 auto_increment:递增

1.2表的删除

  • 语法:drop table 表名;

   MySql数据库之数据定义(模式、表、数据类型、索引)_第7张图片

1.3表的修改

    创建例子:

    MySql数据库之数据定义(模式、表、数据类型、索引)_第8张图片

  • 增加列

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

       样例

       例子1:alter table myname add age smallint;

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

       MySql数据库之数据定义(模式、表、数据类型、索引)_第9张图片

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

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

       MySql数据库之数据定义(模式、表、数据类型、索引)_第10张图片

  • 删除列

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

       样例

       例子1:alter table myname drop age;

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

       MySql数据库之数据定义(模式、表、数据类型、索引)_第11张图片

  • 添加表级完整性约束条件

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

       样例

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

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

       MySql数据库之数据定义(模式、表、数据类型、索引)_第12张图片

  • 修改列的属性

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

       样例

       例子1:alter table myname modify Id int;

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

       MySql数据库之数据定义(模式、表、数据类型、索引)_第13张图片

  • 删除主键

      语法: alter table myname drop primary key;

       MySql数据库之数据定义(模式、表、数据类型、索引)_第14张图片

2、数据类型

参考菜鸟教程:http://www.runoob.com/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 索引名;

MySql数据库之数据定义(模式、表、数据类型、索引)_第15张图片

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

 

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

 

你可能感兴趣的:(数据库)