MySQL的命令总结(一)

数据库的命令行操作语句总结

数据库登入

常用集成建站环境:XAMPP WAMP LAMP

1
2
3
4
5
6
7
$ mysql -uroot -proot
-P 端口
-h 主机名
$ prompt \D 日期
\d 当前数据库
\u 用户名
\p 密码

数据库的变量

Integer :

(n)n的数字不管是多少,储存范围始终是每个类型规定的长度;TINYINT(1)和TINYINT(3)没区别,都占用1个字节。而使用ZEROFILL TINYINT(3)插入值9会显示 009 ;

1
2
3
4
5
6
7
8
9
10
TINYINT('-2^7'-128~'2^7-1'127/8bit)
无符号位数 0~255 1byte 默认TINYINT(4)
SMALLINT('-2^15'-32768~'2^15-1'32767/16bit)
无符号位数 0~65535 2byte 默认SMALLINT(6)
MEDIUMINT('-2^23'-8388608~'2^23-1'8388607/24bit)
无符号位数 0~16777215 3byte 默认MEDIUMINT(9)
INT('-2^31'2147483648~'2^31-1'2147483647/32bit)
无符号位数 0~4294967295 4byte 默认INT(11)
BIGINT('-2^63'9223372036854775808~'2^63-1'9223372036854775807/64bit)
无符号位数 0~18446744073709551616 8byte 默认BIGINT(20)

String :

(n)n的数字代表字符的长度,如VARCHAR(3)只能插入3个(中文、英文、数字),E.g. : ‘你好吗’ ‘HEL’ ‘123’ ‘你H1’

1
2
3
4
5
CHAR(n) 小于n则用空格补足
VARCHAR(size) 占用刚好的字节,以及加上一个记录长度的字节,最大长度65535,8bit,去除2位长度记录位,65533.如有为空约束则65532位,空位占用1字节
TEXT : 大文本
FLOAT : DECIMAL FLOAT
BLOB : BLOB 二进制字段类型

数据库的操作

  • 可选
  • NOT NULL :非空,不能为空
  • UNSIGNED :无符号位
  • ZEROFILL : 左边自动补0,并且强制无符号位,负数强制为0;
  • DATABASE or SCHEMA
  • ENGINE=InnoDB : 指定存储引擎 (mysql支持 : MyISAM InnoDB Memory CSV Archive BlackHole )
  • 索引 :普通索引、唯一索引、全文索引、btree索引、hash索引
  • DEFAULT : 默认
  • CHARSET=utf8 : 指定字符集
特点 MySIAM InnoDB Memory Archive
储存限制 256TB 64TB 有 无
事务安全 支持
支持索引 支持 支持 支持
锁颗粒 表锁 行锁 表锁 行锁
数据压缩 支持 支持
支持外键 支持

增

1
2
3
4
KEY:CREATE
E.g. : CREATE DATABASE dataname;//创建数据库
E.g. : CREATE DATABASE IF NOT EXISTS dataname [DEFAULT];创建数据库,忽略是否存在
E.g. : CREATE DATABASE IF NOT EXISTS dataname CHARACTER SET [=] utf-8/gbk;//创建时设定编码

删

1
2
3
KEY:DROP
E.g. : DROP DATABASE dataname;//删除数据库
E.g. : DROP DATABASE IF EXISTS dataname;//删除数据库,忽略是否存在

改

1
2
KEY:ALTER
E.g. : ALTER DATABASE dataname CHARACTER SET [=] utf8;//更改数据库编码

查

1
2
3
4
KEY:SHOW
E.g. : SHOW DATABASES;//显示数据库
E.g. : SHOW CREATE DATABASE dataname; //显示数据库结构
E.g. : SHOW WARNINGS;//显示错误信息

数据表操作

  • 可选 约束
  • tablename AS tableasname //别名约束
  • UNIQUE //唯一约束
  • UNSIGNED //无符号位约束 无负数
  • NOT NULL //非空约束
  • DEFAULT value //默认值设定
  • PRIMARY KEY | PRIMARY KEY(colname)//主键约束
  • FOREIGN KEY (foreign_colname) REFERENCES PROVINCES (primary_colname); //外键约束
  • AUTO_INCREMENT //自动排序约束
  • FURSR|AFTER colname //插入字段顺序设定
  • /G 非表格显示记录

增

1
2
3
4
5
6
7
KEY:CREATE
E.g. : CREATE TABLE tablename(colname colproperty,...); //创建数据表,并指定至少一个字段
E.g. : CREATE TABLE [IS NOT EXISTS] tablename(
colname colpeoperty constraints...,
colname colpeoperty constraints...,
)
SELECT colname FROM tablename Condition;

删

1
2
KEY:DROP
E.g. : DROP TABLE tablename; //删除数据表

改

1
2
3
4
5
6
7
8
9
10
11
KEY:ALTER & RENAME
E.g. : ALTER TABLE tablename ADD PRIMARY KEY(colname); //添加字段主键
E.g. : ALTER TABLE tablename ADD colname colpeoperty; //添加字段约束
E.g. : ALTER TABLE tablename ADD (colname colpeoperty,...); //添加多个字段的约束
E.g. : ALTER TABLE tablename DROP colname,DROP ...; //删除一个或多个字段
E.g. : ALTER TABLE tablename ALTER colname DROP DEFAULT; //删除字段默认值
E.g. : ALTER TABLE tablename ALTER colname SET DEFAULT key; //设定字段默认值
E.g. : RENAME TABLE old_tablename TO new_tablename; //更改表名
E.g. : ALTER TABLE tablename MODIFY colname colproperty; //更改字段属性
E.g. : ALTER TABLE tablename CHANGE old_colname new_colname colproperty; //更改字段名和属性,不更改属性写入一个原属性即可
E.g. : ALTER TABLE tablename ADD colname colpeoperty ^,DROP colname,MODIFY colname colproperty;; //集添加删除更改字段的命令

查

1
2
3
4
KEY:SHOW & DESC
E.g. : DESC tablename; //查询表字段结构
E.g. : SHOW COLUMNS FROM tablename; //查询表字段结构
E.g. : SHOW CREATE TABLE tablename; //查询创建表字段结构

数据字段操作

  • INTO
  • var _SELECT; //定义一个查询变量
  • JOIN /CROSS JOIN/INNER JOIN 内连接 三个是等价的
  • LEFT [OUTER] 左外连接 内连接中左表数据
  • RIGHT [OUTER] JOIN 右外连接 内连接中右表数据
  • ON 关键字是设定连接条件,也可以使用WHERE替代
  • WHERE 通常ON关键字用来设定连接条件,WHERE关键字用来进行结果集记录的过滤

增

1
2
3
4
5
KEY:INSERT
E.g. : INSERT [INTO] tablename(colname,...) VALUE(field_key,...|DEFAULT);插入一行或多行数据到该表指定的多个字段,插入数据字段数目需与指定字段数目相同
E.g. : INSERT tablename SET colname = field_key,...|DEFAULT; //插入一行或多行数据到该表指定字段,支持子查询;
E.g. : INSERT tablename VALUES(field_key,...|DEFAULT),(....); //插入一行或多行数据到该表,插入数据字段数目需与表字段数目相同
E.g. : INSERT tablename(colname,...) _SELECT ; //插入查询结果到该表

删

1
2
3
4
5
6
KEY:DELETE
E.g. : DELETE FROM tablename; //删除该表所有字段数据
E.g. : DELETE FROM tablename WHERE where_condition; //删除该表字段内达到表达式结果的数据
E.g. : DELETE FROM tablename WHERE colname=colkey; //删除该表字段内的某一行数据
E.g. : DELETE t1 FROM tablename AS t1 LEFT JOIN (SELECT colname,... FROM tablename GROUP BY colnametong HAVING COUNT(goods_name)>2) AS t2
ON t1.colname = t2.colname WHERE t1.colnameid >t2.colnameid;//多表删除,删除内表数据大于2重复的数据

改

1
2
3
4
5
KEY:UPDATE\INNER JOIN
E.g. : UPDATE tablename SET colname = field_key,[colname = field_key,...];//更改所有的字段值
E.g. : UPDATE tablename SET colname = field_key,[colname = field_key,...] WHERE where_condition; //更改指定条件判断记录的字段值
E.g. : UPDATE tablename INNER JOIN othertablename ON colname = othercolname// 外键优化,真实外键多表连接 查询到两表中相同的值,如遇到相同字段名则用别名解决,ON后方是连接条件
SET colname = othercolname_id; //把相同的值替换成外键中的id号,达到索引,多表连接

查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
KEY:SELECT
E.g. : SELECT USER(); //查询当前用户
E.g. : SELECT VERSION(); //查询MYSQL版本
E.g. : SELECT NOW(); //查询当前时间
E.g. : SELECT condition; //查询表达式结果
E.g. : SELECT username AS name FROM user;//给username起别名name
E.g. : SELECT a.colname AS ascolname,u.colname,u.colname AS ascolname FROM tablename AS astablename, tablename2 AS astablename2 where a.colname = u.colname;//多表别名查询
E.g. : SELECT tablename.colname,... FROM tablename; //带表名的字段查找记录
E.g. : SELECT tablename.colname,... FROM tablename WHERE where_condition ><=! ANY (_SELECT) ; //子查询 ANY SOME最小值 ALL最大值
E.g. : SELECT colname [AS] temp_colname,... FROM tablename; //查找字段并且赋予字段别名后显示记录
E.g. : SELECT colname,...|* FROM tablename; //普通查找字段或者所有字段的记录
E.g. : SELECT t.colname,...,this.colname,... FROM tablename AS t //单表连接查询 左or右连接
LEFT JOIN this.tablename AS this ON t.colname = this.colname
E.g. : SELECT colname,...,othercolname,... FROM tablename AS astablename //多表连接查询
INNER JOIN othertablename AS asothertablename ON astablename.colname = asothertablename.colname
INNER JOIN othertablename2 AS asothertablename2 ON astablename.colname2 = asothertablename.colname2
...;
E.g. : _SELECT = SELECT colname,...|* FROM tablename WHERE where_condition //对查询结果进行表达式条件判断后输出结果;
GROUP BY colname [("Default"ASC)|DESC] //对查询结果记录进行唯一分组
HAVING where_condition //基于GROUP BY分组进行分组后的查询结果记录再进行一次表达式条件设定,输出达到条件后的记录
ORDER BY colname [("Default"ASC)|DESC],colname [("Default"ASC)|DESC] //对查询结果进行排序,如果有两个表达式,则在第一个表达式基础上再进行第二表达式的排序
LIMIT index_num|index_num,index_num2; //限制返回的记录数量,单参数以数值为索引,而双参数第一个参数是索引为0算起开始到数值处开始显示结果,第二个参数是显示数目的意思,跟ID号不冲突,以结果索引为主。
E.g. :LIMIT (2);//此时是从第一条记录到第二条记录
E.g. :LIMIT (5,7);//此时是从第六条记录开始显示到十二条记录,也就是共显示7条记录
文章目录
  1. 1. 数据库登入
  2. 2. 数据库的变量
    1. 2.1. Integer :
    2. 2.2. String :
  3. 3. 数据库的操作
    1. 3.1. 增
    2. 3.2. 删
    3. 3.3. 改
    4. 3.4. 查
  4. 4. 数据表操作
    1. 4.1. 增
    2. 4.2. 删
    3. 4.3. 改
    4. 4.4. 查
  5. 5. 数据字段操作
    1. 5.1. 增
    2. 5.2. 删
    3. 5.3. 改
    4. 5.4. 查
,