精通SQL结构化查询---学习笔记3

  1. 对于汉字的排序,是按首字母的顺序来排序的。使用DISTINCT是要要付出代价的;因为要去掉重复值,必须对结果关系进行排序,相同的元组排列在一起,只有按这种方法对元组进行分组才能去掉重复值,而这一工作甚至比查询本身还费时间。

    田家庵网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联公司公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

  2. 使用‘*’通配符时要慎重,在不需要查询所有列时,尽量采用前面介绍的单列查询或多列查询,以免占用过多的资源。

  3. ORDERBY子句一定要放在所有子句的最后,默认是ASC(递增排序);ORDER BY后面可

    以采用1、2、3……进行排序,1、2、3……代表了SELECT后面列的次序。

    例如:

    SELECT column1,column2,column3 FROM dual ORDER BY 1,2;则相当于

    SELECT column1,column2,column3 FROM dual ORDER BY column1,column2;

    3.1、当ORDERBY所需要的列不在SELECT语句所选的范围内时,采用列的序号显然是行不通的。这时可以将列别与序号混合起来解决这个问题。

    3.2、对大小写字符的排序,一般的数据库管理系统认为二者是等同的。

  4. WHERE子句获取FROM子句返回的结果集,并应用WHERE子句中定义的搜索条件对结果集进行筛选。对FROM子句返回结果的每一行都要根据搜索条件进行校验,符合条件的返回,不符合的从结果中去除。

  5. NULL值参与任何比较运算,结果都将视为FALSE,即,无论是“NULL <> 1200”还是

“NULL= 1200”,其结果都为FALSE;对NULL值得操作只能是:“IS NULL”或

“IS NOT NULL”;NULL值参与的任何算数运算后,算数表达式的值都为NULL;如果NULL参与聚集运算,则除COUNT(*)之外其他聚集函数都忽略NULL;NULL参与AND逻辑运算时,如下图:

精通SQL结构化查询---学习笔记3

精通SQL结构化查询---学习笔记3精通SQL结构化查询---学习笔记3

  1. 逻辑运算符“AND”的优先级高于“OR”,为了实现同时运算,应用括号。

    例如:下面SQL执行结果是计算机和生物类的薪资大于1000的所有老师的信息。

    SELECT TNAME, DNAME, SAL

    FROM TEACHER

    WHERE (DNAME = ‘计算机’OR DNAME = ‘生物’)

    AND SAL > 1000

    ORDER BY SAL;

    如果没有括号,则查询出来的是计算机类的薪资大于1000的所有老师的信息

  2. IN与OR相比,IN的优点如下:

  3. 当选择的条件很多时,采用IN运算符就显的很简便,只需在括号内用逗号间隔依次罗列即可。

  4. 使用IN运算符,其后面所列的条件可以是另一条SELECT语句,即子查询。

  5. LIKE运算符

    在SQL语言中是通过通配符来实现的。SQL语言提供的通配符有“%”,“_”,“*”和“[]”;只有CHAR、VARCHAR和TEXT类型的数据才能使用LIKE运算符和通配符。

    当查询条件中没有通配符时可以用”<>”代替LIKE。例如:

    SELECT * FROM teacher t WHERE t.dname NOT LIKE ‘计算机’;等价于

    SELECT * FROM teacher t WHERE t.dname <> ‘计算机’;

    “%”表示任意多个字符;“_”代表一个字符;“[]”多个字符匹配;

    使用ESCAPE定义转义符,告诉DBMS后面的字符是实际值;例如:

    LIKE ‘%M%’ ESCAPE ‘M’;’M’前面的%是通配符,后面的是实际的字符。


分享题目:精通SQL结构化查询---学习笔记3
文章起源:http://scyanting.com/article/pgdjgg.html