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、单子段主键
字段名 数据类型 PRIMARY KEY;
2、多字段主键
PRIMARY KEY (字段名1,字段名2....*);
非空约束
字段名 数据类型 NOT NULL;
唯一约束
字段名 字段类型 UNIQUE;
#被约束的字段不可重复
默认约束
字段名 字段类型 DEFAULT 默认值;
表字段值自动增加
字段名 字段类型 AUTO_INCREMENT;
索引
#创建表时可以创建索引
CREATE TABLE 表名(字段名 数据类型 [约束条件],
........
字段名 数据类型
[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY
[别名] (字段名1 [(长度)] [ASC|DESC])
);
#UNIQUE:唯一索引
#FULLTEXT:全文索引
#SPATIAL:空间索引
INDEX和KEY:表示字段的索引
#别名:创建的索引名称
字段名1:指定索引对应字段的名称
#长度:表示索引的长度
#ASC和DESC:ASC表示升序排列,DESC表示降序排列。
----------------------------------------------------------
带有#的为可选参数
查看索引是否被使用
EXPLAIN SELECT * FROM 表名 WHERE 字段=筛选条件 \G
1、普通索引
CREATE TABLE TEST ( ID INT,
*
INDEX (ID)
);
#在ID上建立普通索引
2、唯一索引
CREATE TABLE TEST (ID INT,
*
UNIQUE INDEX TEST_ID(ID ASC)
);
#在表中ID字段建立索引,名为TEST_ID的唯一索引,安装升序排列
剩余索引皆与上方方法一致。
3、全文索引(目录前只有MyISAM存储引擎支持全文索引) 4、单列索引 5、多列索引 6、空间索引(创建索引时,所在字段的值不能为空值,并且表存储引擎为MyISAM)
使用 CREATE INDEX 在已经存在的表上创建索引
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 在已经存在的表上创建索引
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (字段名 [(长度)] [ASC|DESC]); #此方法与CREATE INDEX的格式类似
浙公网安备 33010602011771号