mysql数据库查询语句配例题(一)

目录

普通查询查询全部列数据语法:

查询指定列数据语法:

为列指定别名语法:

去掉重复的值语法:

分页查询语法:

        排序语法:

        条件查询语法:

        关系运算符

        like模糊查询语法:


普通查询
查询全部列数据
语法:

select * from 表名;
        select - 表示查询哪些字段
        from - 表示来自哪些表
        * - 表示所有列

例:查询emp表中全部列数据 :

select *from emp;

查询指定列数据
语法:

select 列名1,列名2,……from 表名;

例:查询student表中,学员编号(sid),姓名(sname),性别(sex),分数(score)

select sid,sname,sex,score from student;

查询emp表中,编号(empno),姓名(ename),职位(job),工资(sal),入职时间(hiredate)

select empno,ename,job,sal,hiredate from emp;

为列指定别名
语法:

select 列名1 as 别名1,列名2 as 别名2,…… from 表名;
说明: as关键字可以省略。

例:查询dept表,部门编号(deptno),部门名称(dname),部门地址(loc),并起别名显示

select deptno as '部门编号',dname as '部门名称',loc as '部门地址' from dept;

去掉重复的值
语法:

select distinct 列名 from 表名;

例:查询emp表中,员工的职位(job),并去重显示

select distinct job from emp;

分页查询
语法:

select */列名 from 表名 limit 初始位置,行数;
说明:初始位置是从哪行开始显示,一个可选值,默认值是0,
--行数是要查询的行数

例:查询student表中,前5条记录

select * from student limit 5;

查询student表中,从第3条记录开始到第10条记录

select * from student limit 2,8;

排序
语法:

SELECT /列名 FROM 表名 ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- ASC升序(默认)
-- DESC 降序
-- 如果对多列进行排序的时候,首先排序第一列,第一列必须有相同列值,才会进行第二列排序

例:查询emp表中,员工的编号、姓名、职位根据员工的编号进行升序排列

select empno,ename,job from emp order by empno asc;

查询emp表中,员工的编号,姓名,职位,工资、部门编号,首先根据部门编号升序排列,在根据员工编号降序排列

select empno,ename,job,sal,deptno from emp order by deptno asc,empno desc;

条件查询
语法:

SELECT */列名 FROM 表名
WHERE 条件
ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- 条件可以包含关系运算符、逻辑运算符、特殊情况等
-- 是
-- 在几个选项之中
-- between and 在一定范围内

关系运算符

=等于   >大于     >=大于等于     <小于    <=小于等于    <>不等于    !非
逻辑运算符
AND  逻辑与
OR 逻辑或
NOT 逻辑非

例:查询emp表中,30号部门下,所有员工的编号、姓名、工资、部门编号

select empno,ename,sal,deptno from emp where deptno=30;

查询emp表中,工资大于2000的,员工的编号、姓名、职位、工资

select empno,ename,job,sal from emp where sal>2000;

查询emp表中工资在1000~5000之间的,员工的编号,姓名,工资

select empno,ename,sal from emp where sal>=1000 and sal<=5000;

查询emp表中,职位(job)是SALESMAN并且工资大于1250的,员工的编号,姓名,职位,工资,根据员工编号降序排列

select empno,ename,job,sal from emp where job='SALESMAN' and sal>1250 order by empno desc;

查询emp表中,工资大于2000或者部门编号是20号部门的,员工的编号,姓名,职位,工资,部门编号(deptno)

select empno,ename,job,sal,deptno from emp where sal>2000 or deptno=20;

查询emp表中,员工编号是7521,7654,7782,7900的员工信息

select * from emp where empno=7521 or empno=7654 or empno=7782 or empno=7900;

is和in和between
is
例:查询emp表中,没有上级领导编号(mgr)的员工的信息

select* from emp where mgr is null;

查询emp表中,奖金不为空的(有奖金的),员工的编号,姓名,奖金

select empno,ename,comm from emp where comm is not null;

in
例:查询emp表中,员工编号是7499,7521,7782的员工信息。

select * from emp where empno in(7499,7521,7782);

between......and
例:查询emp表中工资在1000~3000之间,所有员工的编号、姓名、工资

select empno,ename,sal from emp where sal between 1000 and 3000;

like
模糊查询
语法:

SELECT 列名 FROM 表名
WHERE 列名 LIKE 模糊条件 
OEDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- % 表示0个或多个任意字符
-- _表示任意一个字符


例:查询emp表中,员工的姓名,第1个字母是S的,员工的姓名、职位、工资

select ename,job,sal from emp where ename like 'S%';

查询emp表中,姓名的最后1个字母是N,员工的姓名、职位、工资

select ename,job,sal from emp where ename like '%N';

你可能感兴趣的:(数据库,sql,mysql)