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.
,