1.select 查询学习
去除重复值的查询
mysql> select distinct vend_id from products; ---------------------DISTINCT关键字必须放在列名前面,去除重复的行
限制查询
select prod_name from products limit 5; ----------------------LIMIT关键字 限制显示几行
select prod_name from products limit 5,5; ----------------------返回从行5开始显示5行
完全限定表面,列名查询
select products.prod_name from test.products; ----------------------限定表名查询
select products.prod_name from products; ----------------------限定列名查询
排序检索数据
order by 子句 默认升序排序 -----------------------可以排序一个列或多个列
desc 子句 降序排序 -----------------------desc关键字只应用到位于前面的列名
limit 子句 排序后限制显示
例如:
mysql> select prod_price from products order by prod_price desc limit 1; --------------------只显示最贵的查询
子句使用顺序
order by 子句位于from 和where 子句之后 limit 子句位于order by 子句之后
where 子句操作符
例如:
select prod_name,prod_price from products where prod_price between 5 and 10; --------------------------------BETWEEN关键字检索5到10之间的数
判断列值是否为null
select cust_id from customers where cust_email is null; ---------------------------------判断是否又null 值
操作符
and -------------------------------检索满足所有给定的条件的行
例如:select prod_id,vend_id,prod_price,prod_name from products where vend_id = 1003 and prod_price <10;
or -------------------------------- 检索匹配任一条件的行
例如:select prod_name,prod_price from products where wend_id = 1002 or vend_id = 1003;
在where 子句中使用and和or操作符必须加()圆括号
IN 操作符
在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
IN 操作符一般比OR操作符清单执行更快。
IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。
IN WHERE子句中用来指定要匹配的值的清单的关键字,功能与OR相当。
NOT 操作符
找出不与条件匹配的行
例如:select prod_name,prod_price from products where vend_id not in (1002,1003); ------------------------------显示除了vend_id=1002和1003的值
通配符
% 百分号 _下划线
例如:
select prod_id,prod_name from products where prod_name like 'jet%' ; -------------------------------匹配以jet开头的行
select prod_id,prod_name from products where prod_name like '_ ton anvil'; -------------------------------- 匹配空格前的一个字符
使用通配符注意事项
1.不要过度使用通配符,如果其操作符可以达到相同目的,就使用其他操作符
2.不要把通配符放在搜索模式的开始处,置于开始处搜索起来最慢。
3.仔细注意通配符的位置,如果放错地方,可能不会返回想要的数据。
mysql正则表达式
A.基本字符匹配
例如:select prod_name from products where prod_name regexp '1000';
B.进行OR的匹配
例如:select prod_name from products where prod_name regexp '100|200'; ------------------------注意|符号
C.匹配几个字符串之一
例如:select prod_name from products where prod_name regexp '[123]';
D.匹配范围和特殊字符
例如: select prod_name from products where prod_name regexp '[0-9] Ton';
select prod_name from products where prod_name regexp '\\.' order by; ------------------------------必须两个\\符号
F.匹配字符类和匹配多个实例
例如: select prod_name from products where prod_name regexp '[[:digit:]]{4}';
select prod_name from products where prod_name regexp '\\([0-9] sticks?\\)';
G.定位符
^ $ -------------------------开头结尾
拼接字段
例如:select concat(vend_name, ' (',vend_country, ')') from vendors; --------------------------------concat()函数 把多个串链接起来形成一个长串
别名 AS
例如:select concat(vend_name,' (',vend_country, ')') as title from vendors;ors;