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

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

  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’前面的%是通配符,后面的是实际的字符。

时间: 2024-11-06 14:48:35

精通SQL结构化查询---学习笔记3的相关文章

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

1.数据库体系结构的三级模式为:外模式.概念模式.内模式. 内模式又称存储模式,是对数据的物理结构和存储方式的描述.内模式是由数据库系统提供的数据定义语言定义的. 概念模式又称数据库模式,是数据库中全部数据的逻辑结构的描述.概念模式以某种数据模型为基础,并用模式定义语言定义这些内容.概念模式可以看作是现实世界中的实体在具体数据库系统中的实现. 外模式又称用户模式或子模式,通常由概念模式导出,是概念模式的子集.其主要功能是定义了允许用户操作的数据.可以将外模式理解为用户看到的数据视图. 2.一个完

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

1. SQL中表的规定: * 每张表的表名必须以字母开头,最大长度为30个字符. * 一张表可以由若干列组成.同一张表中,列名惟一,列名也称为属性名或字段. * 同一列的数据必须有相同的数据类型. * 表中的每一列值必须是不可分割的基本数据项. * 表中的一行称为一个元组,相当于一条记录.2. SQL数据类型2.1.字符类型:包括固定长度和可变长字符变量,固定长度字符变量少于定义的长度时,数据库会自动在字符右边以空格填补到20个字符:可变长字符串可以存储任意长度的字符(其最大存储长度取决于采用的

SQL结构化查询语句

SQL结构化查询语句 SQL定义了查询所有关系型数据库的规则. 1.通用语法 SQL语句可以单行或者多行书写,以分号结尾 可以使用空格和缩进增强可读性 不区分大小写,但是关键字建议大写 3种注释 注释内容:多行注释/*;-- 注释内容 2.SQL分类 DDL(Date Definition Language)数据定义语言 用来定义数据库对象:数据库.表.列等,包括关键字:create,drop.alte DML(Data Manipulation Language)数据操作语言,增删改 用来对数

SQL结构化查询语——之DDL语言

一.SQL结构化查询语言概述SQL是关系型数据库所使用的标准语言,最初是基于IBM的实现在1986年被批准的.1987年,"国际标准化组织(ISO)"把ANSI(美国国家标准化组织) SQL作为国际标准.1. SQL语言规范 在数据库系统中,SQL语句关键词不区分大小写(建议用大写) 数据库的资源对象是区分大小写的,如表.数据库这类资源在操作系统中以独立文件形来存储,如果文件系统对文件命名区分大小写则SQL语言内引用资源对象 资源内的元素不区分大小写,如:表的字段名称不区分大小写,因为

Mysql数据库理论基础之三 --- 数据类型及SQL结构化查询语句使用

一.简介 由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点: 1.是一种数据库管理系统 2.是一种关联数据库管理系统 3.是一种开放源码软件,且有大量可用的共享MySQL软件 4.MySQL数据库服务器具有快速.可靠和易于使用的特点 5.MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中 InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建.这样,表的大小就能超过单独文件的最大容量.表空间可包括原始磁盘分区,从而使得很大的表成为可能

SQL(结构化查询语句)

SQL概述 SQL会话 用户利用SQL命令与关系型数据库进行交互时发生的事情,当用户与数据库建立会话时,会话就被创建了.用Connect user@database 命令可以申请连接数据库,用Disconnect命令可以断开连接 SQL命令的类型 数据定义语言(DDL) 用于创建和重构数据库对象,比如创建(create table/Index/view).修改(alter table/index/view)和删除(drop table/index/view)表 数据操作语言(DML) 用于操作关

Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用

MySQL 存储引擎,也被称为表类型:    MyISAM表:无事务处理功能,支持表锁 .frm:表结构定义文件 .MYD:表数据文件 .MYI:表索引文件 InnoDB表:支持事务处理功能,支持行锁 .frm:表结构定义文件 .ibd:表空间(包含数据和索引文件) MySQL常用的查询命令: SHOW ENGINES;  #查看数据库支持的引擎及状态. SHOW TABLE STATUS LIKE 'user' \G  #查看表user的属性信息,\G竖排显示 mysqld --help --

SQL结构化查询语——之DQL语言

记忆思路:SQL的DQL语言select查询命令.from从哪个表中where以什么条件select查询哪些列,order by是否基于某字段排序,limit # 输出多少行.一.单表查询1. 常用查询语法: SELECT 输出显示字段 FROM 表名 无条件查询语法:SELECT 指定输出的列 FROM 表名 ; 限制输出语法:SELECT 指定输出的列 FROM 表名 LIMIT 显示记录数 ; 条件查询语法:SELECT 指定输出的列 FROM 表名 WHRER 查询条件 : 条件查询再排

SQL结构化查询语——之DML语言

DML:Data Manipulation Language 数据操纵语言,主要用于实现对表的insert增,delete删,update改操作一.insert添加记录1. 添加记录,即添加行. 表内字段修饰符NO NULL被指定后则在添加记录时该字段必须指定值.没有默认值的字段必须指定值.语法:INSERT tbl_name [(col1,...)] VALUES (val1,...), (val21,...)中文:INSERT 表名 [列名-]VALUES(记录1),(记录2),-指定要赋值