《MySQL必知必会》第3-6章学习笔记
旨在简洁记录需要记忆的内容。
第三章 使用MySQL
使用USE 打开数据库
USE (database name)
使用SHOW 命令查看可用的数据库列表,可能包含MySQL内部使用的数据库
SHOW DATABASES;
要获得数据库内的列表,返回当前数据库内可用表的列表
SHOW TABLES;
要显示表列:
SHOW COLUMNS FROM (表名);
也可以用DESCRIBE 语句:
DESCRIBE (表名);
其他:
SHOW STATUS; SHOW CREATE DATABASE; SHOW CREATE TABLE; SHOW GRANTS # 显示授予用户的安全权限 SHOW ERRORS SHOW WORNINGS HELP SHOW # 显示允许的SHOW语句
第四章 检索数据
SELECT 语句
1 SELECT (列名) FROM (表名) 2 3 # 如果想检索不同值列表 4 SELECT DISTINCT (列名) FROM (表名)
1 # 显示 products表中prod_name列的前5行 2 SELECT prod_name FROM products LIMIT 5; 3 4 5 # 显示从第5行开始的5行 (注意是从行0开始) 6 SELECT prod_name FROM products LIMIT 5,5;
完全限定的表名
# 完全限定的表名 SELECT products.prod_name FROM products; SELECT products.prod_name FROM crashcourse.products;
第五章 排序检索数据
子句:SQL语句通常由子句构成。如SELECT语句的FROM子句,ORDER BY子句。
SELECT prod_name FROM products ORDER BY prod_name;
给多个列排序(先根据price再根据name排序):
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name;
在列名后使用DESC关键字实现降序,prod_name后没加DESC,默认是升序:
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name;
可以看到按price降序,但相同price对应的name依旧升序。
找出最值(示例找出最贵物品价格及其名称),注意ORDER BY在FROM后、LIMIT在ORDER BY 之后。
SELECT prod_price,prod_name FROM products ORDER BY prod_price DESC LIMIT 1;
第六章 过滤数据
使用SELECT和WHERE子句,WHERE子句过滤返回的数据。
相等测试:检查一个列是否具有指定值,据此进行过滤。
检索price = 2.50的物品名:
SELECT prod_name,prod_price FROM products WHERE prod_price = 2.50;
检索到两个price为2.50的物品。只显示符合条件的prod_name.
注意:
①ORDER BY若和WHERE同时出现,ORDER BY在WHERE之后。
②先后顺序:FROM > WHERE > ORDER BY > LIMIT
③使用单引号限定字符串。比如这样的WHERE子句:WHERE prod_name = 'fuses'; 即查找prod_name为fuses的行。
④BETWEEN的用法:WHERE prod_price BETWEEN 5 AND 10; 检索出的值包含5和10.
⑤检查空值:WHERE prod_name IS NULL;