MySQL 5.7 Reference Manual Chapter 4 Tutorial 参考手册第四章教程内容总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/panshiqu/article/details/53037373

连接 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

====本文内容已完,宣传我的项目====
欢迎关注《休闲益智游戏》微信服务号
谢谢

猜你喜欢

转载自blog.csdn.net/panshiqu/article/details/53037373