数据库查询语句配例题(一)
  bzUvzvVq9oY1 2023年11月02日 59 0

普通查询

查询全部列数据
语法:

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';

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  1qNLNtOraFmC   2023年11月02日   40   0   0 表名mysql字段名
  Ko0VGOmBbaqG   2023年11月02日   56   0   0 表名字段最小值
  M6W6MDdHSmGU   2023年11月02日   28   0   0 表名
bzUvzvVq9oY1
最新推荐 更多