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李勇20CS
201215122刘晨19

CS

201215123王敏18MA
201215125张立19IS

                                                                                         Course

课程号(Cno)课程名(Cname)先行课(Cpno)学分(Ccredit)
1数据库54
2数学2
3信息系统14
4操作系统63
5数据结构74
6数据处理2
7PASCAL语言64

                                                                                               SC

学号(Sno)课程号(Cno)成绩(Grade)
201215121192
201215121285
201215121388
201215122290
201215122380

二、模式的定义与删除

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)

);

创建后查看属性:

三个表添加后查看:

附加:常用的列表约束

 auto_increment:递增

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、数据类型

参考菜鸟教程:MySQL 数据类型 | 菜鸟教程

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中索引的 创建,查看,删除,修改 - leayrainy - 博客园

注:有关MySql数据库的更多其他操作请参见MySql目录进行查找。(建议收藏)

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值