mysql查询5000到8000_MySQL基础查询查询语句
select语句的语法格式如下:
select 字段列表
from 数据源
[ where条件表达式 ]
[ group by 分组字段
[ having条件表达式 ]
[ order by 排序字段 [ asc | desc ] ]
查询表达式
每⼀个表达式表⽰想要的⼀列,必须⾄少有⼀列,多个列之间以逗号分隔
*表⽰所有列,tbl_name.*可以表⽰命名表的所有列
查询表达式可以使⽤[as] alias_name为其赋予别名
单表简单查询
查询表中全部数据
SELECT * FROM stu;
查询表中特定字段
SELECT id,newname FROM stu;
为字段取别名
SELECT username AS ‘姓名’, sex ‘性别’ FROM usertbl;
为表取别名
SELECT * FROM stu;
为字段指定表名
SELECT usertbl.username,usertbl.sex FROM usertbl;
为表名指定库名
SELECT username,sex,age FROM cms.usertbl;
使⽤常量进⾏查询
SELECT 1,2,3,username FROM usertbl;
简单的mysql语句Order By 排序
ORDER BY 语句⽤于根据指定的列对结果集进⾏排序。
ORDER BY 语句默认按照升序对记录进⾏排序。
影响排序的关键字:ASC,DESC。
按出⽣⽇期排序显⽰⽤户信息
SELECT * FROM users ORDER BY birth;
按⼯资排序降序显⽰⽤户信息,如果⼯资相同则按姓名字母顺序显⽰
SELECT * FROM users WHERE salary IS NOT NULL ORDER BY salary DESC, cname ASC;
Limit关键字
在我们使⽤查询语句的时候,经常要返回前⼏条或者中间某⼏⾏数据
SELECT * FROM table LIMIT [offset,] rows | rows
LIMIT ⼦句可以被⽤于强制 SELECT 语句返回指定的记录数。
LIMIT 接受⼀个或两个数字参数。参数必须是⼀个整数常量。
如果给定两个参数,第⼀个参数指定第⼀个返回记录⾏的偏移量,第⼆个参数指定返回记录⾏的最⼤数⽬。初始记录⾏的偏移量是 0(⽽不是 1)
检查记录⾏,第0⾏开始,共返回10⾏记录
SELECT * FROM table LIMIT 0,10;
检查记录⾏,第100⾏开始到最后1⾏(⼀个很⼤的值)
SELECT * FROM table LIMIT 99,18446744073709551615
返回前5⾏记录
SELECT * FROM table LIMIT 5
distinct关键字
使⽤distinct过滤结果集中的重复记录
Select distinct 字段名 from 表名;
例如:查询出stu表中所有的姓名,去掉重复的姓名
SELECT distinct newname FROM stu;
带条件的查询
带条件查询的基本语法
SELECT *|字段名 FROM 表
WHERE 条件表达式;
查询条件
符号
⽐较
=、、>=、!=、<>、<=>
制定范围
BETWEEN AND 、 NOT BETWEEN AND
匹配字符
LIKE 、 NOT LIKE、IN、NOT IN
是否为空
IS NULL 、 IS NOT NULL
多个查询条件
AND 、 OR
条件⽐较
查询姓名是zhangsan的员⼯信息
SELECT * FROM users WHERE cname='zhangsan';
查询id⼩于5的员⼯信息
SELECT * FROM users WHERE id<5;
查询⼯资不为5000的员⼯信息
SELECT * FROM users WHERE salary<>5000;
指定范围查询-between-and
查询⼯资在5000~8000之间的员⼯信息
SELECT * FROM users
WHERE salary BETWEEN 5000 AND 8000;
查询⼯资不在5000~8000之间的员⼯信息
SELECT * FROM users
WHERE salary NOT BETWEEN 5000 AND 8000;
注意:
1.BETWEEN…AND…语句要求值⼩的在前⾯,值⼤的在后⾯
2.BETWEEN…AND…语句查询范围包含起始终⽌值
3.NOT BETWEEN…AND…语句查询范围不包含起始终⽌值
指定范围查询-in
查询⼯资为5000, 6500 ,8000的员⼯信息
SELECT * FROM users WHERE salary IN (5000,6500,8000);查询姓名为:qianli,Lily的员⼯信息
SELECT * FROM users WHERE cname IN (QianLI,Lily);
查询⼯资不为5000,8000的员⼯信息
SELECT * FROM users WHERE salary NOT IN (5000,8000);匹配字符查询-like
通配符
‘’ 号 表⽰⼀个字符 A Like 'C’
‘%’号 表⽰0个或多个字符 B Like 'CO_%’
扩展的字符
“.”匹配任何单个的字符。⼀个字符类
“[]”匹配在⽅括号内的任意单个字符
“ * ”匹配零个或多个在它前⾯的东西
“^” 表⽰以什么开头的字符
“$” 表⽰以什么结尾的字符
使⽤扩展字符时,必须使⽤REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE)。
1、匹配单个字符,查询出stu表中所有的id
select * from stu where id rlike ‘.’;
2、查询出stu表中,以n开头的姓名
Select * from stu where newname rlike ‘^n’;
3、查询出stu表中,查询出以a-z开头的姓名
Select * from stu where newname rlike ‘^[a-z]’;
4、查询出stu表中,以n结尾的姓名
Select * from stu where newname rlike ‘n$’;
查询姓zhang的员⼯信息
SELECT * FROM users WHERE cname LIKE 'zhang%';
使⽤%通配任意多个字符,使⽤ _ 通配1个字符
SELECT * FROM users WHERE cname LIKE 'zhangsa_'
使⽤NOT LIKE表⽰不满⾜条件的结果
SELECT * FROM users WHERE cname NOT LIKE 'zhang%'
是否为空----IS NULL
查询⼯资为空的员⼯信息
SELECT * FROM users WHERE salary IS NULL;
查询⼯资不为空的员⼯信息
SELECT * FROM users WHERE salary IS NOT NULL;
备注:查询⼯资为空,可以使⽤<=>表达式
SELECT * FROM users WHERE salary <=> NULL;
多个查询条件-逻辑表达式
查询姓zhang的员⼯信息且性别为男的员⼯信息
SELECT * FROM users WHERE cname LIKE 'zhang%'
AND sex ='男'
查询1990年以前出⽣的或者⼯资⼤于8000的员⼯信息
SELECT * FROM users WHERE birth
salary > 8000
查询编号⼤于等于3年龄不为NULL的⽤户
SELECT * FROM users WHERE id >=3 AND age is NOT NULL
查询编号在5~10之间且⽤户名为单名(2位)的⽤户
SELECT * FROM users WHERE id BETWEEN 5 AND 10 AND cname LIKE ‘__‘; (两个下划线)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论