Mysql相关命令
? | (\?) | 显示帮助信息 |
clear | (\c) | 清楚当前输入语句 |
connect | (\r) | 连接到服务器,可选参数为数据库和主机 |
delimiter | (\d) | 设置语句分隔符 |
ego | (\G) | 发送命令到MySQL服务器,并显示结果 |
exit\quit | (\q) | 退出MySQL |
go | (\g) | 发送命令到MySQL服务器 |
help | (\h) | 显示帮助信息 |
notee | (\t) | 不写输出文件 |
(\p) | 打印当前命令 | |
prompt | (\R) | 改变MySQL提示信息 |
rehash | (\#) | 重建完成散列 |
source | (\.) | 执行一个SQL脚本文件,以一个文件名作为参数 |
status | (\s) | 从服务器获取MySQL的状态信息 |
tee | (\T) | 设置输出文件,并将信息添加到所有给定的输出文件夹 |
use | (\u) | 用另一个数据库,数据库名称作为参数 |
charset | (\C) | 切换到另一个字符集 |
warnings | (\W) | 每一个语句之后显示警告 |
nowarning | (\w) | 每一个语句之后不显示警告 |
查看你数据库的创建信息
SHOW CREATE DATABASE 库名;
修改数据库编码
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin;
数据类型
整数型: TINYINT SMALLINT MEDIUMINT INT BIGINT 浮点型和定数型 FLOAT DOUBLE DECIMAL(M,D) 时间与日期类型 YEAR YYY DATE YYYY-MM-DD TIME HH:MM:SS DATETIME YYYY-MM-DD HH:MM:SS TIMESTAMP YYYY-MM-DD HH:MM:SS 字符串和二进制类型 CHAR 表示固定长度的字符串 VARCHAR 表示可变长度的字符串 BINARY 表示固定长度的二进制数据 VARBINARY 表示可变长度的二进制数据 BLOB 表示二进制大数据 TEXT 表示大文本数据 ENUM 表示枚举类型,只能存储一个枚举字符串值 SET 表示字符串对象,可以有零或多个值 BIT 表示位字段类型
创建表
CREATE TABLE 表名 ( 字段名 1,数据类型[完整约束条件], ..... 字段名 n,数据类型[完整约束条件], );
查看创建的表
SHOW CREATE TABLE 表名;
查看表字段信息
DESCRIBE 表名; #(DESC)缩写
修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
修改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
修改字段的数据类型
ALTER TABLE 表名 MODIFY 字段名 数据类型;
添加字段
ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件][FIRST|AFTER 已存在的字段名]
#FIRST,将新添加的字段设置为表的第一个字段
#AFTER,将新添加的字段添加到指定的‘已存在表字段’后边
删除字段
ALTER TABLE 表名 SROP 字段名;
修改字段排列位置
ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名2
#字段1是要修改位置的字段,FIRST是把字段1改为表的第一个字段;AFTER是把字段1放在字段2后边
删除表
DROP TABLE 表名;
表约束
约束条件 | |
PRIMARY KEY | 主键约束,用于唯一标识对应的记录 |
POREIGN KEY | 外键约束 |
NOT NULL | 非空约束 |
UNIQUE | 唯一性约束 |
DEFAULT | 默认值约束,设置字段默认值 |
主键约束
1、单子段主键
1 | 字段名 数据类型 PRIMARY KEY; |
2、多字段主键
1 | PRIMARY KEY (字段名1,字段名2....*); |
非空约束
字段名 数据类型 NOT NULL;
唯一约束
字段名 字段类型 UNIQUE;
#被约束的字段不可重复
默认约束
字段名 字段类型 DEFAULT 默认值;
表字段值自动增加
字段名 字段类型 AUTO_INCREMENT;
索引
#创建表时可以创建索引
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | CREATE TABLE 表名(字段名 数据类型 [约束条件], ........ 字段名 数据类型 [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [别名] (字段名1 [(长度)] [ASC|DESC]) ); #UNIQUE:唯一索引 #FULLTEXT:全文索引 #SPATIAL:空间索引 INDEX和KEY:表示字段的索引 #别名:创建的索引名称 字段名1:指定索引对应字段的名称 #长度:表示索引的长度 #ASC和DESC:ASC表示升序排列,DESC表示降序排列。 ---------------------------------------------------------- 带有#的为可选参数 |
查看索引是否被使用
1 | EXPLAIN SELECT * FROM 表名 WHERE 字段=筛选条件 \G |
1、普通索引
1 2 3 4 5 | CREATE TABLE TEST ( ID INT, * INDEX (ID) ); #在ID上建立普通索引 |
2、唯一索引
1 2 3 4 5 | CREATE TABLE TEST (ID INT, * UNIQUE INDEX TEST_ID(ID ASC) ); #在表中ID字段建立索引,名为TEST_ID的唯一索引,安装升序排列 |
剩余索引皆与上方方法一致。
3、全文索引(目录前只有MyISAM存储引擎支持全文索引) 4、单列索引 5、多列索引 6、空间索引(创建索引时,所在字段的值不能为空值,并且表存储引擎为MyISAM)
使用 CREATE INDEX 在已经存在的表上创建索引
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 ON 表名 (字段名 [(长度)] [ASC|DESC]); #唯一索引:UNIQUE #全文索引:FULLTEXT #空间索引:SPATIAL 普通索引示例: 在TEST表的ID字段建立名为TEST_ID的普通索引 CREATE INDEX TEST_ID ON TEST(ID); 多列索引示例: 在TEST表中ID和NAME字段建立一个名为MYTEST的多列索引 CREATE INDEX MYTEST ON TEST(ID,NAME); 空间索引示例: 在TEST表的ID字段建立名为TEST_ID的普通索引 CREATE INDEX TEST_ID ON TEST(ID); #剩下的索引均与上面方法类似 |
使用 ALTER TABLE 在已经存在的表上创建索引
1 2 | ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (字段名 [(长度)] [ASC|DESC]); #此方法与CREATE INDEX的格式类似 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步