MYSQL 查

●  简单数据记录查询

●  条件数据记录查询

●  排序数据记录查询

●  限制数据记录查询

●  统计函数和分组数据记录查询

一: 简单数据查询

mysql> select empno,ename,job,MGR,Hiredate,sal,comm,deptno

from t_employee;

等价于

select *

from t_employee;

select empno,ename,sal

from t_employee;

还可以调整select 关键字后的字段顺序,改变字段的显示顺序

select empno,sal,ename;

from t_employee;

避免重复数据查询------DISTINCT

select distinct job

from t_employee;

实现数学四则运算数据数据查询

MYSQL支持的关系运算符:+ - * / %

>>select ename,sal*12

>>        from t_employee;

>> select ename,sal*12 yearsalary

from t_employee;

使用函数CONCAT()来连接字符串,从而实现设置显示数据的格式

>>select concat(ename,‘雇员的年薪为: ‘,sal*12)  yearsalary

from t_employee;

条件数据记录查询

MYSQL支持的逻辑运算符:AND(&&) OR(||) XOR NOT(!)

MYSQL支持的关系运算符:>   <   =   !=(<>)   >=   <=

SELECT field1 field2 field3...fieldn

from table_name

where CONDITION

>>select ename

from t_employee

where job=‘CLERK‘;  //在MYSQL中不区分大小写

>>select ename

from t_employee

where job=‘clerk‘ and sal>800;    //and  可以  用&&替换

>> select ename

from t_employee

where sal between 1000 and 2000;

>>select ename

from t_employee

where sal not between 1000 and 2000;

>>select ename

from t_employee

where comm is not null;

等价于

>>select ename

from t_employe

where not comm is null;

>>select ename

from t_employee

where empno=7521 or empno=7782 or empno=7566 or empno=7788;

等价于

>>select ename

from t_employee

where empno in(7521,7782,7566,7788);

>>select ename

from t_employee

where empno not in (7521,7782,7566,7788);

等价于

>>select ename

from t_employee

where not empno in (7521,7782,7566,7788);

注意点:使用关键字 IN 时,查询的集合中如果存在NULL,则不会影响查询,如果使用关键字NOT IN, 查询的集合中如果存在NULL,则不会有任何的查询结果。

带LIKE关键字的模糊查询

带有“%”通配符的查询

>>select ename

from t_employee

where ename like ‘A%‘;

>>select ename

from t_employee

where not ename like ‘A%‘;

带有“_”通配符的查询

>>select ename

from t_employee

where ename like ‘_A%‘;

>>select ename

from t_employee

where not ename like ‘_A%‘;

等价于

>>select ename

from t_employee

where ename not like ‘_a%‘;

实现:查询字段ename中没有字母为A的数据记录

>>select ename

from t_employee

where ename not like ‘%A%‘;

等价于

where not ename like ‘%A%‘;

排序数据记录查询

MYSQL中关键字ORDER BY默认升序,所以

>>select *

from t_employee

order by sal asc;

等价于

>>select *

from t_employee

order by sal;

按照多字段排序:

>>select *

from t_employee

order by sal asc,

hiredate desc;

等价于

>>select *

from t_employee

order by sal,

hiredate desc;

限制数据记录查询数量

SELECT field1 field2 ... fieldn

FROM table_name

WHERE CONDITIN

LIMIT OFFSET_START,ROW_COUNT

如果不指定初始位置OFFSET_START,默认值是0,表示从第一条记录开始显示。

>>select *

from t_employee

where comm is null

limit 2;

>>select *

from t_employee

where comm is null

order by hiredate limit 0,5;

统计函数和分组数据记录查询

统计函数有:

COUNT()

AVG()

SUM()

MAX()

MIN()

注意:当数据值有重复才可以分组。

>>对雇员记录进行统计

>>select count(*) number

from t_employee;

>>select count(comm) number

from t_employee

where not comm=0;

时间: 2024-10-11 21:27:30

MYSQL 查的相关文章

mysql查select基本入门

查询要素: 查哪张表的数据? 查哪些列? select * from class    -----表示查询所有行和列的数据 *代表所有列,表名后不加where条件,则选所有行,因此取所有行和列 例: 实验一: 取部分列,所有行,取所有人的姓名和工资 mysql> select sname,salary from class; 查id>10的人的所有列 mysql> select * from class where id>10; 实验二: 取部分行部分列 取id<10的人,取

mysql 查漏补缺

用户管理 # 创建用户 create user '用户名'@'IP地址' identified by '密码'; create user 'steven'@localhost identified by '123456'; 删除用户 drop user '用户名'@'IP地址'; drop user 'test'@localhost; 修改用户 rename user '用户名'@'IP地址' to '新用户名'@'IP地址'; rename user 'steven'@localhost to

MYSQL 查(2)

比较一下两种区别: >>select count(comm) number FROM t_employee; 注意:4条数据记录依次是:300.00,500.00,1400.00,0.00.虽然COUNT(comm)在具体运行时,忽略了值为NULL的数据记录,但是却没有忽略值为0的数据记录,不符合实际需求. 关于统计函数的注意点: 如果所操作的表中没有任何数据记录,则COUNT()函数返回数据0,而其他函数则返回NULL. 分组数据查询--实现统计功能的分组查询 >>select

mysql 查表失败

我们数据库迁移,我进数据库的目录都需要拷贝什么到新的数据库才可以用,我直接拷贝的库报错了[]北京- 2016/1/26 16:07:33 mysql> use payment;Database changedmysql> show tables;ERROR 1018 (HY000): Can't read dir of './payment/' (errno: 13)[]北京- 2016/1/26 16:08:08 这个是老的数据库 mysql> show tables;ERROR 10

mysql查的用法

select   [all | distinct]   字段或表达式列表 [from子句]    [where子句]    [group by子句]    [having子句]    [order by子句]    [limit子句]: 解释说明: 查的字段可以自定义一个名字,比如select sno as s,这个s就代表了查到的sno字段 [all | distinct] 用于设定所select出来的数据是否允许出现重复行(完全相同的数据行) all:允许出现——默认不写就是All(允许的)

mysql 查两个表相同的值

比如一个数据库 表A和表B 都有一个username字段, 现查出与表A中username值相同的表B的username和password数据 select B.username,B.password from A,B where A.username = B.username

mysql 查排名

select count(1) as 排名 from 表名 where 分数字段 >= (select 分数字段 from 表名 where 姓名字段 = '用户名') 参考博客:http://everthinking.blog.51cto.com/4671757/1078590

mysql查一张表有哪些索引

可以用这个命令: show index from table_name; 得到输出: +------------------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_i

将MySQL去重操作优化到极致之三弹连发(一):巧用索引与变量

元旦假期收到阿里吴老师来电,被告知已将MySQL查重SQL优化到极致:100万原始数据,其中50万重复,把去重后的50万数据写入目标表只需要9秒钟.这是一个惊人的数字,要知道仅是insert 50万条记录也需要些时间的.于是来了兴趣,自己实验.思考.总结做了一遍. 一.问题提出        源表t_source结构如下:item_id int,created_time datetime,modified_time datetime,item_name varchar(20),other var