MySQL 5.7 Reference Manual Chapter 4 Tutorial 参考手册第四章教程内容总结
2016-11-07 15:30:18
连接 mysql -h host -u user -p
断开 QUIT
or \q
or Control+D
(unix)
打印 SELECT VERSION();
输入多行时,想放弃当前输入重新输入,请输入 \c
mysql> SELECT
-> USER()
-> \c
mysql>
提示符及含义
Prompt | Meaning |
---|---|
mysql> | Ready for new query |
'> | Waiting for next line, waiting for completion of a string that began with a single quote (') |
"> | Waiting for next line, waiting for completion of a string that began with a double quote (") |
`> | Waiting for next line, waiting for completion of an identifier that began with a backtick |
/*> | Waiting for next line, waiting for completion of a comment that began with /* |
该查询不会执行,提示符已经提醒你遗漏了右单引号,但是如何终止查询呢?请输入 '\c
(先补上右单引号)
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'>
显示当前所有数据库 SHOW DATABASES;
创建数据库 CREATE DATABASE menagerie;
使用数据库(必须写在一行)(USE 和 Quit 都不需要加分号结尾,建议统一分号结尾) USE menagerie
连接时指定数据库 mysql -h host -u user -p database
注:若想指定密码,密码与 -p
之间不能存在空格,例如: -pmypassword
,当然不建议你这样做,因为会暴露你的密码给能登陆这台电脑的用户
显示当前所有数据表 SHOW TABLES;
创建数据表
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
VARCHAR() 支持 1 - 65535 个字符
展示表设计 DESCRIBE pet;
省略 INSERT DELETE UPDATE SELECT 相关内容
排序字符型数据列,默认不关心大小写,可以强制关心大小写 ORDER BY BINARY column_name
与 NULL 判断相等或不相等
WHERE death IS NULL
WHERE death IS NOT NULL
不能使用 = < > <>
与 NULL 比较,因为与 NULL 比较的的结果仍是 NULL
0 和 NULL 代表 false,其它的数据均为 true
两个 NULL 值被 GROUP BY
认为相等,且被放入一组
NULL 值在用 ORDER BY
升序时排第一,降序排最后
模式匹配 LIKE or NOT LIKE
Pattern | Matching |
---|---|
_ 下划线 | 任一字符 |
% 百分号 | 任意数量字符(零字符) |
扩展模式匹配 REGEXP and NOT REGEXP or RLIKE and NOT RLIKE
Pattern | Matching |
---|---|
. | 任一字符 |
[…] | 匹配出现在中括号内的字符([abc] 匹配a,b或c; [a-z] 匹配小写字母; [0-9] 匹配数字) |
* | 匹配零次或多次出现在 * 前面的内容(x* 任意数量字符x;[0-9]* 任意数量数字;.* 任意数量任意字符) |
{n} | 重复 n 次(.{5} 任意字符重复 5 次) |
^ | 匹配开始处 |
$ | 匹配结尾处 |
注:LIKE 匹配整个被测试值,REGEXP 匹配任何部分被测试值(LIKE '%w%' 等价 REGEXP 'w')
注:匹配默认不关心大小写,可以强制关心大小写 REGEXP BINARY '^b'
以上两种模式匹配总结自 这里,请访问查看相关示例
计算行数 COUNT(*)
暂时省略内连接 INNER JOIN
,因为 这里 仅是为了演示多表查询
查看当前在哪个数据库(若未选择任何数据库显示 NULL) SELECT DATABASE();
批处理模式使用 MySQL
shell> mysql < batch-file
C:\> mysql -e "source batch-file"
shell> mysql -h host -u user -p < batch-file
增加 --force 选项忽略错误继续执行
mysql -t
Get the interactive output format in batch mode
mysql -v
To echo to the output the statements that are executed
MySQL 提示符下可这样使用脚本
mysql> source filename;
mysql> \. filename
省略普通查询 例子(提取知识点如下)
最大值 MAX(column_name)
用户定义变量
SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop;
SELECT * FROM shop WHERE price=@min_price OR price=@max_price;
外键限制仅在 InnoDB 类型中有效,MyISAM 类型中无效
若存储用户每次访问时间(年,月,日),可通过如下方式显示用户某年某月访问天数
SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1 GROUP BY year,month;
获取最后插入编号 LAST_INSERT_ID() SQL function or the mysql_insert_id() C API function