MySQL数据库——数据定义(一)

目录

一、定义数据库

1.创建数据库

2.选择数据库

3.查看数据库

4.修改数据库

5.删除数据库

二、定义表

1.创建表

2.查看表

2.1.查看表的名称

2.2.查看数据表的基本结构

2.3.查看数据表的详细结构

3.修改表

3.1.添加字段

3.2.修改字段

3.3.删除字段

4.重命名表

5.删除表

三、数据的完整性约束

1.实体完整性

1.1.主键约束

1.2.完整性约束的命名

1.3.候选键约束

2.参照完整性

3.用户自定义完整性

3.1.设置非空约束

3.2.CHECK约束

4.更新完整性约束

4.1.添加约束

4.2.删除约束


一、定义数据库

1.创建数据库

格式:

 CREATE DATABASE 数据库名字;
 CREATE DATABASE IF NOT EXISTS 数据库名字;

Example:

 

2.选择数据库

格式:

 USE 数据库名字;

Example:

3.查看数据库

格式:

 SHOW DATABASES;

Example:

MySQL数据库——数据定义(一)_第1张图片

4.修改数据库

格式:

ALTER DATABASE 数据库名字 [完整性约束];

Example:

MySQL数据库——数据定义(一)_第2张图片

5.删除数据库

格式:

DROP DATABASE 数据库名字;

Example:

二、定义表

1.创建表

格式:

CREATE TABLE 表名(
字段名1 数据类型1 【完整性约束条件】,
字段名2 数据类型2 【完整性约束条件】,
字段名3 数据类型3 【完整性约束条件】,
字段名4 数据类型4 【完整性约束条件】,
字段名5 数据类型5 ,
字段名6 数据类型6 【完整性约束条件】,
);

Example:

MySQL数据库——数据定义(一)_第3张图片

2.查看表

2.1.查看表的名称

格式:

SHOW TABLES;

Example:

MySQL数据库——数据定义(一)_第4张图片

2.2.查看数据表的基本结构

格式:

SHOW COLUMNS FROM 表名;
  • 还有另外一种方式,因为我不喜欢用,所以就不测试了 

Example:

MySQL数据库——数据定义(一)_第5张图片

2.3.查看数据表的详细结构

格式:

 SHOW CREATE TABLE 表名;

Example:

MySQL数据库——数据定义(一)_第6张图片

3.修改表

3.1.添加字段

格式:

 ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 【完整性约束】 FIRST;
  • FIRST:表示将新添加的字段设置为表的第一个字段
ALTER TABLE 表名 ADD COLUMN 新增字段名 数据类型 【完整性约束条件】 AFTER 原有字段名;
  • AFTER:表示将新添加的字段加到指定的“已有字段名”后面

Example:

3.2.修改字段

格式:

 ALTER TABLE 表名 CHANGE COLUMN 原字段名 新字段名 数据类型 【完整性约束条件】;
  •  可同时修改表中指定列的名称和数据类型。
ALTER TABLE 表名 ALTER COLUMN 字段名 SET/DROP  DEFAULT 【完整性约束条件】;
  •  可修改或删除表中指定列的默认值。
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 【完整性约束条件】 AFTER 已有字段名;
  • 只会修改指定列的数据类型,而不会干涉它的列名。
  • 通过FIRST或AFTER关键字修改指定列在表中的位置

Example:

3.3.删除字段

格式:

ALTER TABLE 表名 DROP COLUMN 字段名;

Example:

4.重命名表

格式:

ALTER TABLE 原表名 RENAME TO 新表名;
RENAME TABLE 原表名 TO 新表名;

Example:

5.删除表

格式:

DROP TABLE IF EXISTS 表名;
  • 可以同时删除多个表,表与表之间用逗号分隔
  • IF EXISTS 用于在删除表之前判断要删除的表是否存在,如果不加这玩意,它会提示一条错误信息,加上之后,如果要删除的表不存在,sql语句顺利执行,但会有一个warning

Example:

  •  我也不知道为啥不加那东西竟然不会报错......

三、数据的完整性约束

1.实体完整性

实体完整性规则是指关系的主属性不能取空值,即主键和候选键在关系中对应的属性都不能取空值。

1.1.主键约束

  • 列级完整性约束:只需在表中某个字段定义后加上关键字PRIMARY KEY
  • 适用于主键由一列构成

 MySQL数据库——数据定义(一)_第7张图片


  • 表级完整性约束:需要在所有字段定义后添加一条PRIMARY KEY
  • 适用于主键由多列构成

 MySQL数据库——数据定义(一)_第8张图片

1.2.完整性约束的命名

  • 完整性约束的命名:便于删除和修改完整性约束

 MySQL数据库——数据定义(一)_第9张图片

  •  小道消息:当前MySql版本只能给表级的完整性约束指定名字

1.3.候选键约束

  • 列级完整性约束:只需在表中某个字段定义后加上关键字UNIQUE
  • 适用于候选键由一列构成
  • 候选键的值必须唯一,且不能为NULL

MySQL数据库——数据定义(一)_第10张图片


  • 表级完整性约束:需要在所有字段定义后添加一条UNIQUE
  • 适用于候选键由多列构成
  • 此处对完整性约束进行了命名

MySQL数据库——数据定义(一)_第11张图片

2.参照完整性

参照完整性规则是外键与主键之间的引用规则,即外键的取值或者为空,或者等于被参照关系中某个主键的值。

  • 被参照表必须是已创建的表
  • 被参照表必须定义主键或候选键
  • 必须在被参照表的表名后面指定被参照表的主键或候选键
  • 外键允许出现空值
  • 外键对应列的数目、列的数据类要与被参照表的主键、候选键对应的相同

2.1.列级完整性约束:

  • 创建父表并指定主键或候选键
  • 创建从表,添加外键

MySQL数据库——数据定义(一)_第12张图片MySQL数据库——数据定义(一)_第13张图片

2.2.表级完整性约束:

  • 创建父表并指定主键或候选键
  • 创建从表,添加外键

 MySQL数据库——数据定义(一)_第14张图片

MySQL数据库——数据定义(一)_第15张图片

3.用户自定义完整性

3.1.设置非空约束

  • 指定字段的值不能为空(NOT NULL)

3.2.CHECK约束

  • 需要指定限定条件 
  • 列级完整性约束:
    • 字段名的数据类型后面加上CHECK的限定条件

MySQL数据库——数据定义(一)_第16张图片


  • 表级完整性约束:
    • 在所有列的后面给CHECK约束重命名并加上CHECK的约束条件

MySQL数据库——数据定义(一)_第17张图片

  •  CHECK约束CK_student定义了字段studentGrades应满足的关系

4.更新完整性约束

4.1.添加约束

4.1.1.添加主键约束

 格式:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(字段名);

Example:MySQL数据库——数据定义(一)_第18张图片

4.1.2.添加外键约束

 格式:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY(字段名)
REFERENCES 父表(主键字段名);

Example:

MySQL数据库——数据定义(一)_第19张图片

4.1.3.添加候选键约束

 格式:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE KEY(字段名);

Example:

4.2.删除约束

4.1.1.删除主键约束

 格式:

ALTER TABLE 表名 DROP PRIMARY KEY;

Example:

4.1.2.删除外键约束

 格式:

ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;

Example:

4.1.3.删除候选键约束

 格式:

ALTER TABLE 表名 DROP INDEX 约束名;
(ALTER TABLE 表名 DROP INDEX 候选键字段名);

Example:

你可能感兴趣的:(MySQL数据库,数据库,mysql,database)