数据库 查询语句

条件查询
select *|字段1,字段2… from 表名 where 行过滤条件;
求20部门所有员工信息
select * from emp where deptno = 20;
执行顺序 from—where—select

– = 、 >、 <、 >=、 <=、 !=、 <>、
所有员工中薪资>800

  • select * from emp where sal>800;

SMITH查询斯密斯的信息

  • select * from emp where ename=‘SMITH’;

求除了SMITH以外的所有员工信息

  • select * from emp where ename != ‘SMITH’;
  • select * from emp where ename <> ‘SMITH’;
  • select * from emp where not ename = ‘SMITH’;

and 、or、 not , between and
求薪资在1500~2500之间的员工信息

  • select * from emp where sal >=1500 and sal<=2500;

  • select * from emp where sal between 1500 and 2500;

求薪资>1500并且是30部门的员工名称,部门标号,薪资

  • select ename,deptno,sal from emp where sal>=1500 and deptno=30;

求薪资>1500或者30部门的员工名称,部门标号,薪资

  • select ename,deptno,sal from emp where sal>=1500 or deptno=30;

求除了薪资>1500和30部门的员工名称,部门标号,薪资

  • select ename,deptno,sal from emp where not sal>=1500 and not
    deptno=30;
  • select ename,deptno,sal from emp where not(sal>=1500 and deptno=30);
  • select ename,deptno,sal from emp where not(sal>=1500 or deptno=30);

查询 岗位 为 CLERK 且部门编号为 20的员工名称 部门编号,工资

  • select ename,deptno,sal from emp where job=‘CLERK’ and deptno=20;

求奖金为null的人

  • select * from emp where comm is null;

求有奖金的人

  • select * from emp where comm is not null;
  • select * from emp where not comm is null;

–集合操作

  • 求薪资>1500或者30部门的员工名称,部门标号,薪资
    select * from emp where sal>=1500
    Union
    select * from emp where deptno=30;

  • Union All,全集(不去重)
    select * from emp where sal>=1500
    Union All
    select * from emp where deptno=30;

  • 求没有员工在的部门标号
    select deptno from dept
    Minus
    select distinct deptno from emp;

like 模糊查询 %任意个任意字符 _任意一个字符
姓名以A开头的所有员工信息

  • select * from emp where ename like ‘A%’;

使用模糊匹配做精确匹配

  • select * from emp where ename like ‘JONES’;

姓名中第二个字符为A的所有员工姓名

  • select ename from emp where ename like ‘_A%’;

姓名以H结尾的所有员工信息

  • select ename from emp where ename like ‘%H’;

查找名字中带有%的用户

  • select * from emp where ename like ‘%A%’;
  • select * from emp where ename like ‘%C%%’ escape(‘C’);
    任意指定转义字符,需要使用escape() 中说明

in 匹配后面结果集中的任意一个数据,无法做区间判断
查询薪资为 1500 2000 2500 5000的员工信息

  • select * from emp where sal=1500 or sal = 2000 or sal=2500 or
    sal=5000;
  • select * from emp where sal in (1500,2000,2500,5000);

查找 KING 和 SMITH 两个员工的信息

  • select * from emp where ename = ‘KING’ or ename = ‘SMITH’;
  • select * from emp where ename in (‘KING’,‘SMITH’);

exists 存在即保留 存在即合法

  • select * from emp where exists (select * from dept where
    dname=‘SALES’); select * from emp where exists (select deptno,
    dname from dept where dname in (‘SALES’, ‘ACCOUNTING’));

获取所有行记录

  • select * from emp;
  • select * from emp where 1=1;

排序 order by desc 降序 asc升序
select * from 表名 where 行过滤条件 order by 排序字段; --默认升序
from–where–select–order by
select * from emp order by sal asc;

根据薪资进行升序排序,薪资相同的根据员工编号进行降序排序

  • select * from emp order by sal asc,empno desc;

根据员工的奖金进行降序排序 nulls first nulls last

  • select * from emp where deptno=30 order by comm desc nulls first;
SQL数据库查询语句可以根据具体的需求使用不同的语句来实现。以下是一些常用的SQL查询语句: 1. SELECT语句:用于从数据库中选取数据。使用SELECT语句时,可以选择列名、表名和条件来筛选所需数据。例如,使用SELECT语句查询学生表中的所有学生姓名和年龄: SELECT 姓名, 年龄 FROM 学生表; 2. WHERE子句:用于在查询中添加条件。使用WHERE子句可以根据指定的条件过滤数据。例如,使用WHERE子句查询学生表中年龄大于18岁的学生: SELECT * FROM 学生表 WHERE 年龄 > 18; 3. INSERT INTO语句:用于向数据库表中插入新的数据。使用INSERT INTO语句需要指定表名和要插入的数据。例如,使用INSERT INTO语句将一条新的学生记录插入到学生表中: INSERT INTO 学生表 (姓名, 年龄, 成绩) VALUES ('张三', 20, 90); 4. UPDATE语句:用于更新数据库表中的数据。使用UPDATE语句需要指定表名、要更新的列和更新后的值,还可以使用WHERE子句来限制更新的范围。例如,使用UPDATE语句将学生表中姓为李的学生年龄更新为21岁: UPDATE 学生表 SET 年龄 = 21 WHERE 姓 = '李'; 5. DELETE语句:用于从数据库表中删除数据。使用DELETE语句需要指定表名和要删除的数据的条件。例如,使用DELETE语句删除学生表中年龄小于18岁的学生: DELETE FROM 学生表 WHERE 年龄 < 18; 请根据具体情况选择合适的SQL查询语句,并根据需要使用以上提到的语句的不同部分来构建完整的SQL查询语句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值