【MySQL】笔记:数据库、表、字段、数据类型、约束
·
登录MySQL后,就可以定义数据库、定义表、字段等。字段中涉及到数据类型和约束相关的知识。
数据库
注:[ ] 为可选。
| 查看所有数据库 | SHOW DATABASES; |
| 查询当前数据库 | SELECT DATABASE(); |
| 切换数据库 | USE 数据库名; |
| 创建数据库 | CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集][COLLATE 排序规则]; |
| 删除数据库 | DROP DATABASE [IF EXISTS] 数据库名; |
表
| 查看当前数据库所有表 | SHOW TABLES; |
| 查看表结构 | DESC 表名; |
| 查询建表语句 | SHOW CREATE TABLE 表名; |
| 创建表 | CREATE TABLE [IF NOT EXISTS] 表名 (字段名1 字段类型1 [COMMENT 注释],字段名2 字段类型2 [COMMENT 注释]) [COMMENT 表注释]; |
| 删除表 | DROP TABLE [IF EXISTS] 表名; |
| 删除表并重新创建表 | TRUNCATE TABLE 表名; |
| 修改表名称 | ALTER TABLE 表名 RENAME TO 新表名; |
字段
| 添加表字段(最后) | ALTER TABLE 表名 ADD 字段名 字段类型 [COMMENT 注释] [约束]; |
| 添加表字段(开头) | ALTER TABLE 表名 ADD 字段名 字段类型 [COMMENT 注释] [约束] FIRST; |
| 添加表字段(指定位置) | ALTER TABLE 表名 ADD 字段名 字段类型 [COMMENT 注释] [约束] AFTER 字段名; |
| 修改表字段名 | ALTER TABLE 表名 CHANGE 字段名 新字段名 字段类型 [COMMENT 注释][约束]; |
| 修改表字段类型 | ALTER TABLE 表名 MODIFY 字段名 新字段类型; |
| 删除表字段 | ALTER TABLE 表名 DROP 字段名; |
注意:如果表中已有数据,添加字段时,注意原数据行的该字段值如何处理。删除字段时,是否涉及外键。
补充:
1、数据类型




2、约束
作用于表中字段,限制表中数据。保证数据正确、有效、完整。
| 约束 | 关键字 | 说明 |
| 主键 | PRIMARY KEY | 数据行唯一标识,唯一且不为空。可与自增配合使用 |
| 唯一键 | UNIQUE | 数据唯一,不重复 |
| 外键 | FOREIGN KEY |
建立两张表之间联系,保证一致性和完整性。 (子表或从表)的外键对应的必须是(父表或主表)的主键 |
| 检查 | CHECK | 保证数据满足指定条件 |
| 非空 | NOT NULL | 数据不为空 |
| 默认 | DEFAULT | 没有指定值时,自动使用默认值 |
| 自增 | AUTO_INCREMENT | 只用于整数类型,默认初始值为1。一般配合主键使用 |

(1-1)创建表时添加约束:
CREATE TABLE 表名 (
字段名 字段类型 AUTO_INCREMENT PRIMARY KEY [COMMENT "字段注释"],
字段名 字段类型 UNIQUE [COMMENT "字段注释"],
字段名 字段类型 CHECK (条件) [COMMENT "字段注释"],
字段名 字段类型 NOT NULL [COMMENT "字段注释"],
字段名 字段类型 DEFAULT "默认值" [COMMENT "字段注释"],
[CONSTRAINT [外键名]] FOREIGN KEY (字段名) REFERENCES 主表(主键)
[ON DELETE reference_option] [ON UPDATE reference_option]
);
主键约束、唯一约束、检查约束,也可以用CONSTRAINT。
CREATE TABLE 表名 (
字段名1 字段类型 AUTO_INCREMENT [COMMENT "字段注释"],
字段名2 字段类型 [COMMENT "字段注释"],
字段名3 字段类型 [COMMENT "字段注释"],
[CONSTRAINT [约束名]] PRIMARY KEY (字段名1),
[CONSTRAINT [约束名]] UNIQUE (字段名2),
[CONSTRAINT [约束名]] CHECK (条件)
);
(1-2)修改表时添加约束:
(2)删除约束:

(3)查看表中的约束:
SHOW CREATE TABLE 表名 \G
SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_NAME='表名' \G
DESC 表名;
注:MySQL一般以";"结束语句。若使用"\G"结束语句可以垂直显示结果,更直观。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)