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;

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 ‘__‘; (两个下划线)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值