mysql必知必会——学习笔记

msq理解

第三章

了解数据库和表

use gsf;  #切换数据库
SHOW DATABASES;   #返回可用数据库的一个列表 列表里是你所有的数据库
show TABLEs ;    #获得数据库内的表的列表
SHOW COLUMNS FROM customers;  #显示一个表里的所有列
SHOW STATUS;     #显示广泛服务器状态
SHOW CREATE DATABASE gsf;  #显示创建特定数据库的MySQL语句
SHOW CREATE TABLE customers;  #显示创建特定表的MySQL语句
SHOW GRANTS;   #用来显示授予用户
SHOW ERRORS和SHOW WARNINGS,  #用来显示服务器错误或警告消息

第四章

使用 SELECT语句从表中检索一个或多个数据列

use gsf;
SELECT prod_name FROM products;  #在products查询prod_name这个列
SHOW COLUMNS FROM products;      #显示products表中的所有列
SELECT prod_name,prod_id,vend_id FROM products;  #联合显示这些列
SELECT distinct vend_id FROM products;  #检索不同的行
SELECT prod_name FROM products LIMIT 5;  #检索这个列的前五行
SELECT prod_name FROM products LIMIT 5,5;  #从第五行开始检索这个列的后五行
SELECT prod_name FROM products LIMIT 2 OFFSET 5; #从第五行开始检索这个列的后两行
SELECT products.prod_id FROM products; #限定列名搜索
SELECT products.prod_name FROM gsf.products;  #限定表名搜索

第五章

使用SELECT语句的ORDER BY子句 , 根据需要排序检索出的数据

SELECT prod_name FROM products; #无顺序输出单个列
#使用子句对表进行顺序排序
SELECT prod_name FROM products ORDER BY prod_name; 
#按多个列排列 按照 ORDER BY后面的第一个表的顺序排序
SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_name,prod_price;
#加入desc就是反向排列对
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC;
#先根据prod_price数据进行方向排序再根据prod_name;对数据进行正向排序
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name;
#找出价值最高的LIMIT 1只输出第一行
SELECT prod_price FROM products ORDER BY prod_price DESC LIMIT 1;

第六章

使用SELECT语句的WHERE子句指定搜索条件

WHERE prod_price = 2.5 #对输出条件进行了过滤,只输出prod_price值为2.5的列表
SELECT prod_name, prod_price FROM products WHERE prod_price = 2.50;

#             =  等于
#			<>	不低于
#			!=	不低于
#			<		小于
#			<=	小于等于
#			>=	大于大于
#			>		大于
#			BETWEEN 指定在2值之间  语法BETWEEN xx AND xx

#prod_name= ‘fuses’;的所有prod_name ,prod_price,vend_id
SELECT * FROM products WHERE prod_name= ‘fuses’;

空值检测

SELECT * FROM products WHERE prod_price is NULL

第七章

组合WHERE子句以建立功能更强的更高级的搜索条件我们还将学习如何使用NOT和IN操作符。

#使用where 过滤vend_id = 1003 和 prod_price <= 10的列
SELECT prod_id, prod_price,prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;
##使用where 过滤vend_id = 1003 或者 prod_price <= 10的列 0R操作符告诉DBMS匹配任一条件而不是同时匹配两个条件。即有一个存在就输出这个列
SELECT prod_id, prod_price,prod_name FROM products WHERE vend_id = 1003 or prod_price <= 10;
#列出价格为10美元( 含) 以上且由1002或1003制造的所有产品。 
SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id =1003 AND prod_price >= 10;
#由于and的奇数次数优先级高于or因此or被忽略了所以加个括号提升or的优先级
SELECT prod_name, prod_price FROM products WHERE (vend_id = 1002 OR vend_id =1003) AND prod_price >= 10;
#在products查找 vend_id 在 (1002 , 1003)之间的prod_name, prod_price列 并且进行排序
SELECT prod_name, prod_price FROM products WHERE vend_id IN (1002 , 1003)ORDER BY prod_name ;
#在products查找 vend_id 不在 (1002 , 1003)之间的prod_name, prod_price列 并且进行排序
SELECT prod_name, prod_price FROM products WHERE vend_id NOT IN (1002,1003) ORDER BY prod_name;

第八章

使用通配符以及怎样使用 LIKE操作符进行通配搜索, 以便对数据进行复杂过滤

#在products表中查找prod_name 列中以jet开头的列,并打印出他的prod_id , prod_name列
SELECT prod_id , prod_name FROM products WHERE prod_name LIKE'jet%';
#在products表中查找prod_name 列中值含有anvil的列,并打印出他的prod_id , prod_name列
SELECT prod_id , prod_name FROM products WHERE prod_name LIKE '%anvil%';
#在products表中查找prod_name 列中值第一位含有s最后一位含有e的列,并打印出他的prod_id , prod_name列
SELECT prod_id , prod_name FROM products WHERE prod_name LIKE 's%e';
#在products表中查找prod_name 列中值除第一位后其他为ton anvil的表,并打印出他的prod_id , prod_name列
SELECT prod_id , prod_name FROM products WHERE prod_name LIKE '_ ton anvil';

第九章

MySQL WHERE子句内使用正则表达式来更好地控制数据过滤。

#在products表中查找prod_name 包中含文本1000的所有行,并打印出他的prod_name列并且进行排序
SELECT prod_name
FROM products
WHERE prod_name REGEXP '1000'
ORDER BY prod_name;
#在products表中查找prod_name 包中含文本000的所有行,并打印出他的prod_name列并且进行排序
SELECT prod_name
FROM products
WHERE prod_name REGEXP '.00'
ORDER BY prod_name;
#在products表中查找prod_name 包中含文本1000或者2000的所有行,并打印出他的prod_name列并且进行排序
SELECT prod_name
FROM products
WHERE prod_name REGEXP '1000|2000'
ORDER BY prod_name;
#在products表中查找prod_name 包中含有字符串1,2,3和ton的所有行,并打印出他的prod_name列并且进行
SELECT prod_name
FROM products
WHERE prod_name REGEXP '[123] ton'
ORDER BY prod_name;

你可能感兴趣的:(mysql必知必会——学习笔记)