mysql 学习一

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;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值