登录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"结束语句可以垂直显示结果,更直观。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐