首页 > 代码库 > sql查询

sql查询

select * from table_name where condition

DISTINCT用于去除重复的行。

select distinct ename from emp;

select * from table_name where condition

设置表头为自己习惯看的形式
col username heading 用户名;

col column_name format dataformat(字符类型只能设置长度)
col username format a10;(a表示字符类型,后面跟位数)
col salary format 9999.9;(数值类型用一个9来表示数字)
col salary format $9999.9;(数据前方就多了一个美元符号)

column column_name clear;清除之前设置的格式
col username clear;
col salary clear;

查询表中的所有字段以及制定字段
查询表中所有字段:
select * from emp;

查询制定的字段
select username,salary from users;

给字段设置别名(这里和上面col的区别是这里查出来的时候显示这样的标题头文字)
select column_name as new_name from table_name
select id as 编号,username as 用户名,salary 工资 from users
去重:
select distinct username as 用户名 from users;

运算符和表达式
算术运算符(+-*/)
比较运算符用在where语句中(>,>=,<,<=,=,<>)
逻辑运算符(and,or,not)

在select中使用运算符
算术运算符:
只在查询结果中体现(),要真的修改表的数据需要使用update字段
select id,salary+200 from emp;
使用比较运算符(在where中使用)
select ename from emp where sal>2000;(找到工资大于2000的员工的姓名)
使用逻辑运算符
select ename from emp where sal>2000 and sal<>5000; 让这条表达式同时为真的数据才过滤数来

带条件的查询,在查询语句中加上where
单一条件查询:select sal from emp where ename=‘KING‘;
              select ename,sal from emp where empno=‘7782‘;
多条件查询:select * from emp where ename=‘KING‘ or sal<‘2000‘

运算符优先级:not>and>or
比较运算符优先级高于逻辑运算符

可以使用not 运算符
select * from emp where not(ename=‘KING‘);

模糊查询
(只知道部分内容是什么,不知道全部)
通配符的使用(_:只能代表一个字符,%:代表0到多个字符)

select * from emp where username like ‘K%‘(开头字符为K)
select * from emp where username like ‘_K%‘(第二个字符为K)
select * from emp where username like ‘%K%‘(含有K的字符)

范围查询
between……and
select * from emp where sal between 100 and 1000;
是一个闭合区间,两边取等于号
IN/NOT IN
select * from users where username in(‘aaa‘,‘bbb‘);  或运算符

排序:
order by
select * from users order by id  desc(降序)/asc(升序)
select * from users order by id desc ,sal asc;
当前面的字段相等的时候,排在后面的字段才起作用,前面字段相等了,sal才升序排列

case...when...then...else.. 语句
select ename,case ename when ‘KING‘ then ‘老板‘
      when ‘ALLEN‘ then ‘经理‘ else ‘普通员工‘
可以多个when...then...结合
加个标题end as 职位
要记得from 表一定要写,不会写入表里,而是显示出来

case when 另一种形式,更灵活
case when column_name = value1 then result1,...else[resule]end

















sql查询