美文网首页
第四章 简单查询

第四章 简单查询

作者: C_cole | 来源:发表于2018-10-16 18:29 被阅读0次

    基本SELECT语句语法

    SELECT子句 表示所需检索的数据列。

    FROM子句 表示检索的数据来自哪个表。

    语句(statement):一条完整的SQL命令如:

    select * from emp;

    –子句(clause):部分的SQL语句,通常是由关键字加上其它语法元素构成,例如,SELECT

    • 是一个子句,FROM table也是一个子句。

    SQL语句的书写规则

    –不区分大小写,也就是说SELECT,select,Select,执行时效果是一样的。

    –可以单行来书写,也可以书写多行,建议分多行书写,增强代码可读性,通常以子句为单位进行分行。

    –关键字不可以缩写、分开以及跨行书写,如SELECT不可以写成SEL或SELE

    CT等形式。

    –关键字最好使用大写,其它语法元素(如列名、表名等)小写。

    –Tab和缩进的使用可以提高程序的可读性。

    •选择所有列的两种方式

    select * from 表名;

    select deptno,dname,loc from dept;

    练习:

    用两种方式查询salgrade表数据

    选择指定列

    select 语句后列出要选择的列的列表

    如:select deptno,dname from dept;

    算术运算符(+-*/)

    算术运算符优先级

    –乘除优先于加减

    –相同优先权的表达式按照从左至右的顺序依次计算

    –括弧可以提高优先权,并使表达式的描述更为清晰

    例:SELECT ename, sal, 12*sal+100 FROM emp;

    SELECT ename, sal, 12*(sal+100);

    空值NULL

    •空值NULL

    –空值是指一种无效的、未赋值、未知的或不可用的值。

    –空值不同于零或者空格。

    注意:任何包含空值的算术表达式运算后的结果都为空值NULL。

    1 select ename, 12*sal+comm

    2 from emp

    3 WHERE ename='KING';

    解决空值的方法

    IFNULL函数

    ifnull(expr1,expr2) ifnull函数如果第一个参数为空,则返回expr2,否则返回expr1

    上面语句改写:

    select ename,12*sal+ifnull(comm,0)

    from emp

    where ename='KING';

    列别名

    两种写法:

    列名 as 列别名

    列名 列别名

    例:SELECT ename AS 姓名, sal 月薪

    FROM emp;

    消除重复行

    distinct关键字,在select 子句中使用

    select distinct job from emp;

    显示表结构两种方式

    desc 表名:

    describe 表名:

    *where子句

    作用:指定查询条件,限制显示的数据行

    语法:

    SELECT [DISTINCT] {*| column | expression [alias], ...}

    FROM table

    [WHERE condition(s)];

    •WHERE子句紧跟在FROM子句之后

    •condition(s)表示条件表达式,

    –通常格式为:列名 比较操作符 要比较的值

    •比较操作符(> = < > = <= != <>)

    比较数字相等

    SELECT ename, job, deptno

    FROM emp

    WHERE deptno=20;

    比较字符或日期相等

    值需要加单引号

    SELECT ename, job, deptno

    FROM emp

    WHERE job='CLERK';

    SELECT ename, hiredate, deptno

    FROM emp

    WHERE hiredate > 1985-01-01';

    特殊比较运算符

    •BETWEEN..AND..

    值介于两者之章,包括临界值

    如:查询工资在1000到1500之间的员工信息

    SELECT *

    FROM emp

    WHERE sal BETWEEN 1000 AND 1500;

    查询1981年入职的员工信息

    select *

    from emp

    where hiredate BETWEEN ‘1981-01-01’ AND ‘1981-12-31’

    •IN运算符

    满足条件的值比较多,圈定一个范围,用in

    如:查询经理编号为7902,7566,7788的员工信息

    SELECT empno, ename, sal, mgr

    FROM emp

    WHERE mgr IN (7902, 7566, 7788);

    查询在10,20,30号部门工作的员工信息

    select *

    from emp

    where deptno in(10,20,30);

    特殊比较运算符

    LIKE运算符*

    重要,用于模糊查询

    –模糊查询中两个通配符:

    –%代表零或任意更多的字符

    –_代表一个字符

    %与_可混用

    可以使用ESCAPE标识符实现对“%”和“_”的查找。

    –例:查询JOB 以“MAN_”开头的雇员信息。

    1 )查询指定字符开头的用‘s%’

    2)查询指定字符结尾的用'%s'

    3)查询包含指定字符的用'%S%'

    SELECT ename,job

    FROM emp

    WHERE jobLIKE 'MAN@_%' ESCAPE '@';

    •IS NULL 运算符

    判断要比较的值是否为空值NULL

    如:查询没有经理的员工

    SELECT ename, mgr

    FROM emp

    WHERE mgr IS NULL;

    逻辑运算符

    用于连接多个查询条件

    逻辑运算符包括AND、OR、NOT

    and (和,多个条件需要同时满足)

    or(或者 多个条件满足其中一个)

    not(不是 反选 )

    查询工资大于1000并且工作岗位为CLERK的员工信息

    SELECT empno, ename, job, sal

    FROM emp

    WHERE sal>=1100

    AND job='CLERK';

    查询工资大于1000或者工作岗位为CLERK的员工信息

    SELECT empno, ename, job, sal

    FROM emp

    WHERE sal>=1100

    OR job='CLERK';

    查询工资大于1000或者工作岗位不为CLERK,MANAGER的员工信息

    SELECT ename, job

    FROM emp

    WHERE sal>=1100 and

    job NOT IN ('CLERK','MANAGER','ANALYST');

    –NOT运算符可以和BETWEEN…AND、LIKE、IS NULL一起使用

    •...WHERE deptno NOT IN (10, 20)

    •...WHERE sal NOT BETWEEN 3000 AND 5000

    •...WHERE ename NOT LIKE 'D%’

    •...WHERE mgr IS NOT NULL

    •运算符的优先级*

    小括号优先,实在记不住,用小括号括起

    ORDER BY子句

    对查询结果进行排序,写在所有子句后

    •其中:

    –可以按照列名、表达式、列别名、结果集的列序号排序

    –ASC: 升序,默认值 DESC: 降序

    –ORDER BY 子句必须写在SELECT语句的最后

    如:SELECT ename, job, deptno, hiredate

    FROM emp

    ORDER BY sal asc,hiredate DESC;

    其结果先按薪水升序排序,薪水相同的按出生日期降序

    分页:

    •使用select语句时,经常要返回前几条或者中间某几行记录,可以使用关键字limit。语法格式如下:

    select 字段列表

    from 数据源

    limit [start,]length;

    相关文章

      网友评论

          本文标题:第四章 简单查询

          本文链接:https://www.haomeiwen.com/subject/uhtkzftx.html