SQL必知必会摘要

数据检索 2.2 检索单个列 SELECT prod_name FROM Products; SQL语句不区分大小写
  2.3 检索多个列 SELECT prod_name,prod_id,prod_price FROM Products;  
  2.4 检索所有列 SELECT * FROM Products;  
  2.5 检索不同的值 SELECT DISTINCT vend_id FROM Products;  
  2.6 限制结果 SELECT TOP 5 prod_name FROM Products;(SQL server、Access)
SELECT prod_name FROM Products FETCH FIRST 5 ROWS ONLY;(DB2)
SELECT prod_name FROM Products WHERE ROWNUM <=5;(Oracle)
SELECT prod_name FROM Products LIMIT 5;(MySQL、SQLite等)
SELECT prod_name FROM Products LIMIT 4 OFFSET 3;(LIMIT 3,4)
从第3行起的4行数据
  2.7 使用注释 SELECT prod_name --这是一条注释(--之后的是注释)
FROM Products;
# 这是一条注释                  (单行注释)
/*这是一条注释,很长            (跨行注释,通常用于代码注释)
很长的注释*/
 
排序检索数据 3.1 排序数据 SELECT prod_name FROM Products ORDER BY prod_name; 字母升序拍;可以通过非检索列进行排序
  3.2 按多个列排序 SELECT prod_name,prod_id,prod_price FROM Products
ORDER BY prod_price,prod_name;
prod_price相同时才按照prod_name
  3.3 按列位置排序 SELECT prod_name,prod_id,prod_price FROM Products
ORDER BY 2,3;
表示先按prod_id,再按prod_price排序
  3.4 指定排序方向 SELECT prod_name,prod_id,prod_price FROM Products
ORDER BY prod_price DESC;
降序排列,大小写字母在排序时是否区分取决于数据库的配置
    SELECT prod_name,prod_id,prod_price FROM Products
ORDER BY prod_price DESC,prod_name;
prod_name仍为升序,ASC表升序(默认)
过滤数据 4.1 使用WHERR SELECT prod_name,prod_price FROM Products
WHERE prod_price = 3.49;
 
    SELECT prod_name,prod_price FROM Products
WHERE prod_price = 3.49
ORDER BY prod_name;
WHERE和ORDER BY组合用法
  4.2 WHERE子句操作符 =,<>,!=,<,<=,!<,>,>=,!>,BETWEEN,IS NULL  
  4.2.2 不匹配检查 SELECT  vend_id,prod_name FROM Products
WHERE vend_id<>‘DLL01‘;
不匹配检查,字符串需要加引号<>与!=等价
  4.2.3 范围值检查 SELECT prod_name,prod_price FROM Products
WHERE prod_price BETWEEN 5 AND 10
包括5和10
  4.2.4 空值检查 SELECT prod_name,prod_price FROM Products
WHERE prod_price IS NULL;
NULL与非匹配:空值不会被返回
高级数据过滤 5.1.1 AND操作符 SELECT prod_id,prod_price,prod_name FROM Products
WHERE vend_id = ‘DLL01‘ AND prod_price<=4;
可用多个AND,增加过滤条件
  5.1.2 OR操作符 SELECT prod_id,prod_price,prod_name FROM Products
WHERE vend_id = ‘DLL01‘ OR vend_id = ‘BRS01‘;
第一个条件满足时,不管第二个条件是否满足,相应行都被检索出来
    SELECT prod_id,prod_price,prod_name FROM Products
WHERE (vend_id = ‘DLL01‘ OR vend_id = ‘BRS01‘)AND prod_price<=10;
组合使用,使用圆括号。AND优先级较高
  5.2 IN操作符 SELECT prod_name,prod_price FROM Products
WHERE vend_id = IN( ‘DLL01‘,‘BRS01‘)
ORDER BY prod_name;
功能与OR相当
    SELECT prod_name,prod_price FROM Products
WHERE vend_id = ‘DLL01‘OR vend_id = ‘BRS01‘
ORDER BY prod_name;
改写IN语句
  5.3 NOT操作符 SELECT prod_name FROM Products
WHERE NOT vend_id = ‘DLL01‘
ORDER BY prod_name;
 
    SELECT prod_name FROM Products
WHERE vend_id <> ‘DLL01‘
ORDER BY prod_name;
改写NOT语句
用通配符进行过滤 6.1.1 %通配符 SELECT prod_id,prod_name FROM Products
WHERE prod_name LIKE ‘Fish%‘;
找出以Fish起头的词,Fish之后可以是0个字符;Acess需要使用*非%;大小写是否区分取决于数据库配置
    SELECT prod_id,prod_name FROM Products
WHERE prod_name LIKE ‘%bean bag%‘;
匹配任何包含bean bag的值
    SELECT prod_name FROM Products
WHERE prod_name LIKE ‘F%y‘;
匹配F开头,y结尾的值(b%@forta.com)
%匹配0个、1个、多个字符
如果字符末尾是空格,则需要用F%y%来匹配
    WHERE prod_name LIKE ‘%‘; 不配匹配prod_name为NULL的行
  6.1.2 _通配符 SELECT prod_id,prod_name FROM Products
WHERE prod_name LIKE ‘__ inch teddy bear‘;
DB2不支持,Access用?非_
_只匹配单个字符,功能与%通,如需匹配2个字符,则需要使用__
时间: 2024-08-04 02:47:39

SQL必知必会摘要的相关文章

SQLServer:《SQL必知必会》一书的读书笔记(五)

第5课 高级数据过滤 5.1 组合 WHERE 子句 第4课介绍的 WHERE 子句在过滤数据时都是用单一的条件. 5.1.1 AND 操作符 检索由供应商 DLL01 制造且价格小于等于 4 美元的所有产品的名称和价格: SELECT prod_id, prod_price, prod_name FROM Products WHERE vend_id = 'DLL01' AND prod_price <= 4; 5.1.2 OR 操作符 检索任一个指定供应商制造的所有产品的名称和价格: SEL

SQLServer:《SQL必知必会》一书的读书笔记(八)

第8课 使用函数处理数据 8.1 函数 [名词]可移植:所编写的代码可以在多个系统上运行 8.2 使用函数 8.2.1 文本处理函数 例1:使用 UPPER() 函数--将文本转换为大写 SELECT vend_name, UPPER(vend_name) AS vend_name_upcase FROM Vendors ORDER BY vend_name; 常用的文本处理函数: LEFT():返回字符串左边的字符 DATALENGTH():返回字符串的长度 LOWER():将字符串转换为小写

数据库学习之一: 在 Oracle sql developer上运行SQL必知必会脚本

1 首先在开始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写用户名和密码 测试如果成功则点击连接,记得角色要写SYSDBA 3. 运行脚本 之后把SQL必知必会的脚本拷到工作表中并点击运行脚本 首先进行表的创建 输入代码: --------------------------------------------- -- Sams Teach Yourself SQL in 10 Minutes -- http://www.forta.com/

《SQL必知必会》学习笔记(一)

<SQL必知必会>学习笔记(一) 下面变列出我新学到的知识. 这个是数据库的全部记录 1.order by   语句: select * from Scores order by name , Score desc 执行结果: ①order by在执行排序功能时,会先对排序字段按abcd这样的顺序进行,汉字的话是按拼音的首字母,默认是正序. ②例子中先按name字段进行正序排序,当name相同时,又按score倒叙排,例如拜仁两条数据,胜的开头字母是s,负的是f,因为是倒叙,所以胜的那条数据排

《SQL必知必会》学习笔记二)

<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语句,但是实际应用中的业务逻辑往往会非常复杂,所以会用到一些比较复杂的查询,如子查询,联合查询. 1.子查询 当一个查询是另一个查询的条件时,称为子查询.但是说到子查询又不的不说它与嵌套查询两者的区别,下面一张图来说明 下面再用一条sql语句来说明他们的关系. 其中在查询中又分为嵌套子查询和相关子查询,他们之间

SQLServer:《SQL必知必会》一书的读书笔记(四)

第4课 过滤数据 4.1 使用 WHERE 子句:过滤 只检索所需数据需要指定搜索条件(即过滤条件). WHERE 子句在表名(FROM 子句)后给出,根据 WHERE 子句中指定的条件过滤. SELECT prod_name, prod_price FROM Products WHERE prod_price = 3.49; -- 分析:从 Products 表中检索两个列,只返回 prod_price 值为 3.49 的行 [提示]SQL 过滤与应用过滤: 数据也可以在应用层过滤.但是在优化

.NET零基础入门09:SQL必知必会

一:前言 仿佛到了更进一步的时候了,每一个程序员迟早都会遇到数据存储的问题.我们拿什么来存储程序产生的数据?举例来说,用什么来存储我们的打老鼠游戏每次的成绩呢?选择如下: 1:内存中.缺点,退出游戏,数据就没了: 2:文件中.好办法!缺点,自己解析文本,把文本变成我们程序中的数据,这个解析的过程叫做协议.协议这个词听上去够恐怖吧,实际上说白了无非就是数据格式怎么样,API接口怎么样之类的东东. 3:数据库.好办法!好吧,数据库文件其实也就是硬盘上的文件,只不过数据库本身就已经为我们定义好了数据格

走向面试之经典的数据库笔试题:一、你必知必会的SQL语句练习-Part 2

本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已.另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥. 一.书到用时方恨少:"图书-读者-借阅"类题目 1.1 本题目的表结构 本题用到下面三个关系表: CARDS 借书卡. CNO 卡号,NAME 姓名,CLASS 班级 BOOKS 图书. BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW

sql必知必会的数据初始化

之前已经配置好mysql的工作环境,但是还缺少可以进行操作的文件,即缺少对应的一个数据库和其中的5个表. 下载相关代码 在网址http://www.forta.com/books/0672325675/ 中下载相关文件,在这里我下载的是MySQL (and MariaDB) SQL scripts. 下载后进行解压,会有两个文件:create.txt和populate.txt. 数据库的建立 在mysql中输入:CREATE DATABASE OrderDb; 不要忘记分号,这是MySQL的语法

《SQL必知必会(第4版)》中英文PDF及代码+《SQL进阶教程》中文PDF及代码 (学习总结)

下载:https://pan.baidu.com/s/1hRb-TS_R-0fnXPodS5OoDg <SQL必知必会(第4版)>高清中文PDF+高清英文PDF+代码 下载:https://pan.baidu.com/s/11-MnDu0khzwO4tiJqHznnA <SQL进阶教程>高清中文PDF+源代码 <SQL必知必会(第4版)>高清中文PDF+高清英文PDF+代码 高清中文PDF,258页,带书签目录,文字可以复制粘贴:高清英文PDF,497页,带书签目录,文