SQL必知必会(第3版)

1. 排序检索数据

// 按多列排序
select prod_id, prod_price, prod_name from products order by prod_price, prod_name;
如果多行具有相同的prod_price,则按prod_name排序,否则不会

// 按列位置排序
select prod_id, prod_price, prod_name from products order by 2, 3;

// 排序方向
select prod_id, prod_price, prod_name from products order by prod_price; //升序(从A到Z)
select prod_id, prod_price, prod_name from products order by prod_price desc; //降序(从Z到A)
如果对每列都要降序,那么每列都必须用desc

 

2. 过滤数据

// 不等于
<> 或 != : 值与字符串比较,需要单引号,与数值比较,不用引号 

// 范围值between
select prod_name from products where prod_price between 5 and 10;

// 空值检查
is null 或 is not null

// and or
select prod_name from products where (vend_id = 'DLL01' or vend_id = 'BRS01') and prod_price >= 10;

// in, 功能同 or
select prod_name from products where vend_id in ('DLL01', 'BRS01');

// not
select prod_name from products where not vend_id = 'DLL01';

// like - 通配符只用于字符串
// 以Fish开始的名称,区分大小写
select prod_name from products where prod_name like 'Fish%'; 
select prod_name from products where prod_name like '%bean bag%'; //位于两端
select prod_name from products where prod_name like 'F%y%'; //F开始包含y字符

// 下划线 - 匹配单个字符
select prod_name from products where prod_name like '__ inch teddy bear';

// 方括号 - 指定字符集
// 找出所有名字以J或M起头的联系人
select cust_contact from customers where cust_contact like '[JM]%'; 
select cust_contact from customers where cust_contact like '[^JM]%'; // 否定 

 

3. 函数与数据

// 拼接字段
MySQL: select concat(vend_name, ' (', vend_country, ')') from vendors;
Oracle: select vend_name || ' (' || vend_country || ')' from vendors;
SQLServer: select vend_name + ' (' + vend_country + ')' from vendors;
输出: Bear Emporium (USA)

// 去掉空格
rtrim(): 去掉右空格, ltrim(): 去掉左空格, trim(): 去掉两边空格

// 别名
select concat(vend_name, ' (', vend_country, ')') as vend_title from vendors;

// 计算乘积
select prod_id, quantity, item_price*item_price as expanded_price from orderitems where order_num = 20008;

// 函数
提取字串: Access使用MID(),Oracle使用SUBSTR(),MySQL和SQLServer使用SUBSTRING()
数据类型转换: MySQL和SQLServer使用CONVERT()
取当前日期: Access使用NOW(),Oracle使用SYSDATE,MySQL使用CURDATE(),SQLServer使用GETDATE()
left(): 返回串左边字符, length(): 串长度, lower():转小写, upper(): 转大写

// SOUNDEX() - 发音类似的单词
select cust_name, cust_contact form customers where soundex(cust_contact) = soundex('Michael Green');

// 检索时间段 - 2004年所有订单
MySQL: select order_num from orders where year(order_date) = 2004;
Oracle: select order_num from orders where to_number(to_char(order_date, 'YY')) = 2004;
SQLServer: select order_num from orders where datepart(yy, order_date) = 2004;
另一种方法: select order_num from orders where order_date between to_date('01-JAN-2004) and to_date('31-DEC-2004');

// AVG() - 返回某列平均值
select avg(prod_price) as avg_price from products;

// COUNT() - 计数
count(*): 对表中行进行计数
count(cust_email): 对特定行计数,忽略null值

// MAX() - 指定列的最大值
select max(prod_price) as max_price from products;
如果列是文本,那么返回最后一行

// MIN() - 指定列的最小值
select min(prod_price) as max_price from products;
如果列是文本,那么返回最前面一行

// SUM() - 指定列的总计
select sum(quantity) as items_ordered from orderitems;

// distinct - 对不同的值进行计算,如果相同,则忽略
select avg(distinct prod_price) as avg_price from products;

// group by - 数据分组
返回每个供应商的产品
select vend_id, count(*) as num_prods from products group by vend_id;

// having - 过滤分组
返回销售2个以上、价格为4以上的供应商
select vend_id, count(*) as num_prods from products where prod_price >= 4 group by vend_id having count(*) >= 2

 

4. 查询

// 子查询进行过滤
查询订购物品RGAN01的所有客户
select cust_name, cust_contact from customers where cust_id in 
(select cust_id from orders where order_num in 
(select order_num from orderitems where prod_id = 'RGAN01'))

// 用计算结果作为子查询
查询customers表中每个客户的订单总数
select cust_name, cust_contact, (select count(*) from orders 
where orders.cust_id = customers.cust_id) as orders from customers;

// 联接表 - 内部联接或等值连接
select vend_name, prod_name, prod_price from vendors, products 
where vendors.vend_id = products.vend_id;
或者
select vend_name, prod_name, prod_price from vendors inner join products 
where vendors.vend_id = products.vend_id;
使用联接改写:查询订购物品RGAN01的所有客户
select cust_name, cust_contact from customers, orders, orderitems 
where customers.cust_id = orders.cust_id and 
orderitems.order_num = orders.order_num and prod_id = 'RGAN01';

// 自联接
查询Jim Jones所有公司工作的所有客户
select c1.cust_id, c1.cust_name, c1.cust_contact from customers as c1, 
customers as c2 where c1.cust_name = c2.cust_name 
and c2.cust_contact = 'Jim Jones';

// 外部联接
检索所有客户,包括没有订单的客户
select customers.cust_id, orders.order_num from customers left outer join
orders on customers.cust_id = orders.cust_id; // 左联接
或者select customers.cust_id, orders.order_num from customers, orders
where customers.cust_id *= orders.cust_id;

select customers.cust_id, orders.order_num from customers right outer join
orders on orders.cust_id = customers.cust_id; // 右联接
或者select customers.cust_id, orders.order_num from customers, orders
where orders.cust_id =* customers.cust_id;

select customers.cust_id, orders.order_num from orders full outer join
customers on orders.cust_id = customers.cust_id; // 全联接

// UNION - 组合查询
select cust_name, cust_contact, cust_email from customers where 
cust_state in ('IL', 'IN', 'MI') union select cust_name, cust_contact, 
cust_email from customers where cust_name = 'Fun4All';

union all: 返回所有记录,不会过滤相同记录

// Oracle使用别名不需要as

 

5. 插入

// 插入检索出的数据
insert into customers(cust_name, cust_email) select cust_name, cust_email from custnew;

// select into
创建一个custcopy新表,并把customers表的整个内容复制到新表中
select * into custcopy from customers;

MySQL和Oracle不同
create table custcopy as select * from customers;

 

6. 操作表  

// 创建表
CREATE TABLE OrderItems (
  order_num  int          NOT NULL,
  order_item int          NOT NULL,
  prod_id    char(10)     NOT NULL,
  quantity   int          NOT NULL default 1,
  item_price decimal(8,2) NOT NULL,
  createTime timestamp    NOT NULL default sysdate  //Oracle使用 
);

// 更新表
alter table vendors add vend_phone char(20); //给vendors表增加一个char类型字段
alter table vendors drop column vend_phone; //删除vend_phone列

// 删除表
drop table custcopy;

// 重命名表
rename

 

7. 视图

视图是把复杂查询的语句作为一个表,但表中不会有数据,可以重复使用
// 创建视图
查询订购任意产品的所有客户
create view productcustomers as select cust_name, cust_contact, prod_id 
from customers, orders, orderitems where customers.cust_id = orders.cust_id
and orderitems.order_num = orders.order_num;
使用,检索订购了产品RGAN01的所有客户
select * from productcustomers where prod_id = 'RGAN01';

 

8. 存储过程

储存过程保存一条或多条重复使用的SQL语句,类似批文件
// 创建存储过程
对有email的客户进行统计
Oracle版本
create procedure MailingListCount
(ListCount OUT NUMBER)
IS
BEGIN
    select * from customers where not cust_email is null;
    ListCount := SQL%ROWCOUNT;
END;
说明: ListCount返回数据,OUT表示从存储过程返回数据,IN表示传值给存储过程,
INOUT表示既传递值给存储过程,又返回值

SQLServer版本
create procedure MailingListCount
AS
DECLARE @cnt INTEGER
select @cnt = count(*) from customers where not cust_email is null;
RETURN @cnt;

给orders表插入一个新订单
create procedure NewOrder @cust_id char(10) //客户ID号
AS
declare @order_num integer
select @order_num = max(order_num) from orders //自动产生订单号
select @order_num = @order_num+1
insert into orders(order_num, order_date, cust_id)
values(@order_num, getdate(), @cust_id)
return @order_num;

另一版本
create procedure NewOrder @cust_id char(10) //客户ID号
AS
insert into orders(cust_id) values(@cust_id)
select order_num = @@IDENTITY;
由数据库表自动生成订单号,IDENTITY为SQLServer自动递增,产生订单号

// 执行存储过程
EXECUTE AddNewProduct('JTS01', 'Stuffed Eiffel Tower', 6.49)
执行一个名为AddNewProduct的存储过程,将一个新产品添加到Product表中

 

9. 事务

事务保留点(savepoint): 事务处理中设置的临时占位符,可以对它发布回退。
不能回退select, create, drop操作
// 控制事务
SQLServer:
BEGIN TRANSACTION
...
COMMIT TRANSACTION

MySQL:
START TRANSACTION

// Rollback
delete from orders;
ROLLBACK;

// commit
Oracle:
delete orderitems where order_num = 12345;
delete orders where order_num = 12345;
commit;

// 使用保留点
begin transaction
insert into customers...;
savepoint startorder;
insert into orders...;

 

10. 游标

// 创建游标
DB2, SQL Server, Sybase
declare custcursor CURSOR
for 
select * from customers where cust_email is null

Oracle
declare CURSOR custcursor
is
select * from customers where cust_email is null

// 使用游标
OPEN CURSOR CustCursor
从第一行检索出数据
declare type custcursor is ref cursor return customers%ROWTYPE;
declare custrecord customers%ROWTYPE
begin
    open custcursor;
    fetch custcursor into custrecord;  //fetch指出要检索的行
    close custcursor;
end;

循环游标
declare type custcursor is ref cursor return customers%ROWTYPE;
declare custrecord customers%ROWTYPE
begin
    open custcursor;
    loop
    fetch custcursor into custrecord;  //fetch指出要检索的行
    exit when custcursor%notfound;
    ...
    end loop;
    close custcursor;
end;

 

11. 高级SQL特性 

// 主键
CREATE TABLE Vendors (
  vend_id      char(10) NOT NULL PRIMARY KEY,
  vend_name    char(50) NOT NULL,
  vend_address char(50) NULL,
  vend_city    char(50) NULL,
  vend_state   char(5)  NULL,
  vend_zip     char(10) NULL,
  vend_country char(50) NULL,
  vend_ser     char(10) UNIQUE //唯一性约束 
);
另一种定义方法:
alter table vendors add constraint primary key (vend_id);

// 外键
CREATE TABLE Orders (
  order_num  int      NOT NULL PRIMARY KEY,
  order_date datetime NOT NULL ,
  cust_id    char(10) NOT NULL REFERENCES Customers(cust_id)
);
另一种定义方法:
alter table customers add constraint foreign key (vend_id) references Customers (cust_id);

// 检查约束
CREATE TABLE OrderItems (
  order_num  int          NOT NULL ,
  order_item int          NOT NULL ,
  prod_id    char(10)     NOT NULL ,
  quantity   int          NOT NULL CHECK(quantity > 0), //检查数量大于0
  item_price decimal(8,2) NOT NULL 
);
alter table orderitems add constraint check (gendar LIKE '[MF]'); //检查性别为M或F

// 索引
索引用来排序数据以加快搜素和排序操作的速度,但索引降低数据插入、修改和删除的性能
create index prod_name_ind on products (prod_name); //索引必须唯一命名

// 触发器
触发器是特殊的存储过程,在执行特定操作时会被触发。
例如对Orders表进行insert操作,在insert执行之后,对数据进行验证
Oracle版本
create trigger customer_state after insert or update
for each row
being
update customers set cust_state = Upper(cust_state)
where customers.cust_id = :OLD.cust_id
end;

 

12. 数据类型

数据类型 - 不同数据库支持不同类型
字符串: char, nchar, long, memo, varchar
数值: bit, decimal, numeric, float, int, integer, real, samllint, tinyint
日期: date, datetime, smalldatetime, time
二进制: binary, logn raw, raw, varbinary

 

SQL必知必会 第三版 .pdf 立即下载

相关推荐

SQL必知必会(第3版 中文高清版)

第1章 了解sql  第2章 检索数据  第3章 排序检索数据  第4章 过滤数据  第5章 高级数据过滤  第6章 用通配符进行过滤  第7章 创建计算字段  第8章 使用数据处理函数  第9章 汇总数据  第10章 分组数据  第11章 使用子查询  第12章 联结表  第13章 创建高级联结  第14章 组合查询  第15章 插入数据  第16章 更新和删除数据  第17章 创建和操纵表  第18章 使用视图  第19章 使用存储过程  第20章 管理事务处理  .第21章 使用游标  第22章 了解高级sql特性  附录a 样例表脚本   a.1 样例表   a.2 获得样例表    a.2.1 下载可供使用的microsoft access mdb文件    a.2.2 下载dbms sql脚本  附录b 流行的应用系统   b.1 使用aqua data studio   b.2 使用db2   b.3 使用macromedia coldfusion   b.4 使用microsoft access   b.5 使用microsoft asp   b.6 使用microsoft asp.net   b.7 使用microsoft query   b.8 使用microsoft sql server   b.9 使用mysql   b.10 使用oracle   b.11 使用php   b.12 使用postgresql   b.13 使用query tool   b.14 使用sybase   b.15 配置odbc数据源  附录c sql语句的语法   c.1 alter table   c.2 commit   c.3 create index   c.4 create procedure   c.5 create table   c.6 create view   c.7 delete   c.8 drop   c.9 insert   c.10 insert select   c.11 rollback   c.12 select   c.13 update  附录d sql数据类型   d.1 串数据类型   d.2 数值数据类型   d.3 日期和时间数据类型   d.4 二进制数据类型  附录e sql保留字  索引

sql 必知必会 (第三版)学习笔记(一)

sql 必知必会学习记录

信心缘于明确的目标 709

SQL 必知必会.pdf

SQL基础知识

sql必知必会第5版pdf_MySQL必知必会&高性能MySQL3高清文档

由于体积小、速度快、成本低、开放源代码,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,因此搭配 PHP 和 Nginx 服务器可组成良好的开发环境。 对于一个没有什么基础想学MySQL的来说,mysql必知必会是本值得推荐的书,适合零基础到CURD阶段学习,对入门者很照顾。与其说是一本书不如说是一本小手册,实践性很强,基本没有什么理...

weixin_39604280的博客 2536

SQL必知必会(第3版)--详细书签版

CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.youkuaiyun.com/fksec/article/details/7888251 SQL必知必会(第3版) 基本信息 原书名: Sams Teach Yourself SQL in 10 Minutes, Third Edition 原出版社: Sams 作者: (美)Ben Forta 译者: 钟鸣 刘晓霞 丛书名: 图灵程序设计丛书 数据库 出版社:人民邮电出版社 ISBN:9787115162601 上架时间:2007-6-22 出版日期:2007 年7月 开本:32开 页码:204 版次:3-1 所属分类: 计算机 > 数据库 > SQL语言 编辑推荐   SQL经典畅销书    涵盖所有主流数据库    学习与参考皆宜... 内容简介   sql 是目前使用最为广泛的数据库语言之一。本书没有涉及理论,而是从实践出发,由浅入深地讲解了广大读者所必需的sql 知识,适用于各种主流数据库。实例丰富,便于查阅。本书涉及不同平台上数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,通过本书读者可以系统地学习到sql 的知识和方法。    本书注重实用性,操作性很强,适合于sql 的初学者学习和广大软件开发及管理人员参考。 作译者    作者: (美)Ben Forta Ben Forta是世界知名的技术作家,也是Adobe技术界最为知名的专家之一,目前担任Adobe公司的高级技术推广专家。他具有计算机行业20多年工作经验,多年来撰写了十几本技术图书,其中不少是世界畅销书,已被翻译为十几种文字。除本书外,他撰写的《正则表达式必知必会》也即将由人民邮电出版社出版。读者可以通过他的个人网站http://www.forta.com了解更多信息。 目录 封面 -14 常用操作速查 -13 扉页 -11 版权 -10 版权声明 -9 前言 -8 致谢 -5 目录 -4 第1章 了解SQL 1 1.1 数据库基础 1 1.1.1 什么是数据库 2 1.1.2 表 2 1.1.3 列和数据类型 3 1.1.4 行 4 1.1.5 主键 4 1.2 什么是SQL 5 1.3 动手实践 6 1.4 小结 7 第2章 检索数据 8 2.1 SELECT语句 8 2.2 检索单个列 9 2.3 检索多个列 10 2.4 检索所有列 11 2.5 小结 12 第3章 排序检索数据 13 3.1 排序数据 13 3.2 按多个列排序 15 3.3 按列位置排序 15 3.4 指定排序方向 16 3.5 小结 18 第4章 过滤数据 19 4.1 使用WHERE子句 19 4.2 WHERE子句操作符 20 4.2.1 检查单个值 21 4.2.2 不匹配检查 22 4.2.3 范围值检查 22 4.2.4 空值检查 23 4.3 小结 24 第5章 高级数据过滤 25 5.1 组合WHERE子句 25 5.1.1 AND操作符 25 5.1.2 OR操作符 26 5.1.3 计算次序 26 5.2 IN操作符 28 5.3 NOT操作符 29 5.4 小结 30 第6章 用通配符进行过滤 31 6.1 LIKE操作符 31 6.1.1 百分号(%)通配符 32 6.1.2 下划线(_)通配符 33 6.1.3 方括号([ ])通配符 34 6.2 使用通配符的技巧 36 6.3 小结 36 第7章 创建计算字段 37 7.1 计算字段 37 7.2 拼接字段 38 7.3 执行算术计算 42 7.4 小结 43 第8章 使用数据处理函数 44 8.1 函数 44 8.2 使用函数 45 8.2.1 文本处理函数 46 8.2.2 日期和时间处理函数 47 8.2.3 数值处理函数 50 8.3 小结 50 第9章 汇总数据 51 9.1 聚集函数 51 9.1.1 AVG()函数 52 9.1.2 COUNT()函数 53 9.1.3 MAX()函数 54 9.1.4 MIN()函数 54 9.1.5 SUM()函数 55 9.2 聚集不同值 56 9.3 组合聚集函数 57 9.4 小结 58 第10章 分组数据 59 10.1 数据分组 59 10.2 创建分组 59 10.3 过滤分组 61 10.4 分组和排序 63 10.5 SELECT子句顺序 65 10.6 小结 65 第11章 使用子查询 66 11.1 子查询 66 11.2 利用子查询进行过滤 66 11.3 作为计算字段使用子查询 69 11.4 小结 71 第12章 联结表 72 12.1 联结 72 12.1.1 关系表 72 12.1.2 为什么要使用联结 74 12.2 创建联结 74 12.2.1 WHERE子句的重要性 75 12.2.2 内部联结 77 12.2.3 联结多个表 78 12.3 小结 80 第13章 创建高级联结 81 13.1 使用表别名 81 13.2 使用不同类型的联结 82 13.2.1 自联结 82 13.2.2 自然联结 84 13.2.3 外部联结 84 13.3 使用带聚集函数的联结 87 13.4 使用联结和联结条件 88 13.5 小结 88 第14章 组合查询 89 14.1 组合查询 89 14.2 创建组合查询 89 14.2.1 使用UNION 90 14.2.2 UNION规则 91 14.2.3 包含或取消重复的行 92 14.2.4 对组合查询结果排序 93 14.3 小结 94 第15章 插入数据 95 15.1 数据插入 95 15.1.1 插入完整的行 95 15.1.2 插入部分行 98 15.1.3 插入检索出的数据 99 15.2 从一个表复制到另一个表 100 15.3 小结 101 第16章 更新和删除数据 102 16.1 更新数据 102 16.2 删除数据 104 16.3 更新和删除的指导原则 105 16.4 小结 106 第17章 创建和操纵表 107 17.1 创建表 107 17.1.1 表创建基础 108 17.1.2 使用NULL值 109 17.1.3 指定默认值 110 17.2 更新表 111 17.3 删除表 113 17.4 重命名表 113 17.5 小结 114 第18章 使用视图 115 18.1 视图 115 18.1.1 为什么使用视图 116 18.1.2 视图的规则和限制 117 18.2 创建视图 118 18.2.1 利用视图简化复杂的联结 118 18.2.2 用视图重新格式化检索出的数据 119 18.2.3 用视图过滤不想要的数据 121 18.2.4 使用视图与计算字段 121 18.3 小结 122 第19章 使用存储过程 123 19.1 存储过程 123 19.2 为什么要使用存储过程 124 19.3 执行存储过程 125 19.4 创建存储过程 126 19.5 小结 129 第20章 管理事务处理 130 20.1 事务处理 130 20.2 控制事务处理 132 20.2.1 使用ROLLBACK 133 20.2.2 使用COMMIT 133 20.2.3 使用保留点 134 20.3 小结 135 第21章 使用游标 136 21.1 游标 136 21.2 使用游标 137 21.2.1 创建游标 138 21.2.2 使用游标 138 21.2.3 关闭游标 140 21.3 小结 141 第22章 了解高级SQL特性 142 22.1 约束 142 22.1.1 主键 143 22.1.2 外键 144 22.1.3 唯一约束 145 22.1.4 检查约束 146 22.2 索引 147 22.3 触发器 149 22.4 数据库安全 150 22.5 小结 151 附录A 样例表脚本 152 A.1 样例表 152 A.2 获得样例表 155 A.2.1 下载可供使用的Microsoft Access MDB文件 155 A.2.2 下载DBMS SQL脚本 155 附录B 流行的应用系统 157 B.1 使用Aqua Data Studio 157 B.2 使用DB2 158 B.3 使用Macromedia ColdFusion 159 B.4 使用Microsoft Access 159 B.5 使用Microsoft ASP 160 B.6 使用Microsoft ASP.NET 161 B.7 使用Microsoft Query 161 B.8 使用Microsoft SQL Server 162 B.9 使用MySQL 163 B.10 使用Oracle 163 B.11 使用PHP 164 B.12 使用PostgreSQL 164 B.13 使用Query Tool 164 B.14 使用Sybase 165 B.15 配置ODBC数据源 165 附录C SQL语句的语法 167 C.1 ALTER TABLE 167 C.2 COMMIT 167 C.3 CREATE INDEX 168 C.4 CREATE PROCEDURE 168 C.5 CREATE TABLE 168 C.6 CREATE VIEW 168 C.7 DELETE 169 C.8 DROP 169 C.9 INSERT 169 C.10 INSERT SELECT 169 C.11 ROLLBACK 169 C.12 SELECT 170 C.13 UPDATE 170 附录D SQL数据类型 171 D.1 串数据类型 172 D.2 数值数据类型 173 D.3 日期和时间数据类型 174 D.4 二进制数据类型 175 附录E SQL保留字 176 索引 182 前言   SQL是使用最为广泛的数据库语言之一。不管你是应用开发人员、数据库管理人员、Web应用设计人员,还是Microsoft Office用户,掌握良好的SQL知识对于与数据库打交道是很重要的。.   本书可以说是应需而生。我曾经讲授过多年的Web应用开发,学生们经常要求我推荐有关SQL的图书。SQL方面的图书有许多,有的其实很不错,但它们都有一个共同的特点,就是对于大多数读者来说,它们所讲授的内容太多了。大多数书籍讲授的不是SQL本身,而是从数据库设计、规范化到关系数据库理论以及相关管理等所有内容。当然,这些内容都很重要,但并不是大多数仅想学习SQL的读者所感兴趣的。   因此,在找不到合适的书籍推荐给学生的情况下,我把在课堂上给学生讲授的SQL知识汇编成了本书。本书将讲授读者需要了解的SQL知识,我们从简单的数据检索入手,然后再介绍一些较为复杂的内容,如联结、子查询、存储过程、游标、触发器以及表约束等。读者将从本书中循序渐进、系统、直接地学到SQL的知识和技巧。   这是本书的第3版,它已经教会了成千上万的读者使用SQL。现在轮到你了,让我们翻到第1章,开始学习吧。你将很快编写出世界级的SQL。   读者对象   本书适合以下读者:   SQL新手;   希望快速学会使用SQL;   希望知道如何在应用程序开发中使用SQL;   希望在无人帮助的情况下有效快速地使用SQL。   本书涵盖的DBMS   一般来说,本书中所讲授的SQL可以应用到任何数据库管理系统(DBMS)。但是,因为所有SQL实现并不都是相同的,所以本书介绍的SQL主要适用于以下系统(需要时会给出特定的说明和注释):   IBM DB2;   Microsoft Access;..   Microsoft SQL Server;   MySQL;   Oracle;   PostgreSQL;   Sybase Adaptive Server。   本书中所有数据库和SQL脚本例子对于这些DBMS都是适用的。 .  本书约定   本书采用等宽字体表示代码,读者输入的文本与应该出现在屏幕上的文本也以等宽字型给出。如:   It will look like this to mimic the way text looks on your screen.   代码行前的箭头( )表示行中代码太长,该行容纳不下。在 符号后输入的所有字符都应该是前一行的内容。   说明:给出上下文讨论中比较重要的信息。      提示:为某任务给出建议或一种更简单的方法。      注意:提醒可能出现的问题,避免出现事故。      新术语,提供新的基本词汇的清晰定义。   表示读者可以自己输入的代码。   强调某个程序执行时的输出。   告诉读者将对程序代码进行逐行分析。...   

SQL必知必会(中文、第三版)【完整书签】

【自用完整书签系列】SQL语言的通用教程,浅显易懂,只是进行数据库使用的话,这本书可以快速入门。

牛客网SQL训练3—SQL必知必会

牛客网刷题3—SQL必知必会

毛媛媛 1615

SQL必知必会(第3版-PDF清晰版)part1

推荐:学习SQL编程,必备书籍,从入门到进阶/精通,实例与理论同步,比较优秀作品!(共分压5部分)目录: 第1章 了解SQL... 1 1.1 数据库基础..... 1 1.1.1 什么是数据库..... 2 1.1.2 表..... 2 1.1.3 列和数据类型..... 3 1.1.4 行..... 4 1.1.5 主键..... 4 1.2 什么是SQL... 5 1.3 动手实践..... 6 1.4 小结..... 7 第2章 检索数据...... 8 2.1 SELECT语句..... 8 2.2 检索单个列..... 9 2.3 检索多个列..... 10 2.4 检索所有列..... 11 2.5 小结..... 12 第3章 排序检索数据...... 13 3.1 排序数据..... 13 3.2 按多个列排序..... 15 3.3 按列位置排序..... 15 3.4 指定排序方向..... 16 3.5 小结..... 18 第4章 过滤数据...... 19 4.1 使用WHERE子句..... 19 4.2 WHERE子句操作符..... 20 4.2.1 检查单个值..... 21 4.2.2 不匹配检查..... 22 4.2.3 范围值检查..... 22 4.2.4 空值检查..... 23 4.3 小结..... 24 第5章 高级数据过滤...... 25 5.1 组合WHERE子句..... 25 5.1.1 AND操作符..... 25 5.1.2 OR操作符..... 26 5.1.3 计算次序..... 26 5.2 IN操作符..... 28 5.3 NOT操作符..... 29 5.4 小结..... 30 第6章 用通配符进行过滤...... 31 6.1 LIKE操作符..... 31 6.1.1 百分号(%) 通配符..... 32 6.1.2 下划线(_) 通配符..... 33 6.1.3 方括号([ ]) 通配符..... 34 6.2 使用通配符的技巧..... 36 6.3 小结..... 36 第7章 创建计算字段...... 37 7.1 计算字段..... 37 7.2 拼接字段..... 38 7.3 执行算术计算..... 42 7.4 小结..... 43 第8章 使用数据处理函数...... 44 8.1 函数..... 44 8.2 使用函数..... 45 8.2.1 文本处理函数..... 46 8.2.2 日期和时间处理 函数..... 47 8.2.3 数值处理函数..... 50 8.3 小结..... 50 第9章 汇总数据...... 51 9.1 聚集函数..... 51 9.1.1 AVG()函数..... 52 9.1.2 COUNT()函数..... 53 9.1.3 MAX()函数..... 54 9.1.4 MIN()函数..... 54 9.1.5 SUM()函数..... 55 9.2 聚集不同值..... 56 9.3 组合聚集函数..... 57 9.4 小结..... 58 第10章 分组数据...... 59 10.1 数据分组..... 59 10.2 创建分组..... 59 10.3 过滤分组..... 61 10.4 分组和排序..... 63 10.5 SELECT子句顺序..... 65 10.6 小结..... 65 第11章 使用子查询...... 66 11.1 子查询..... 66 11.2 利用子查询进行过滤..... 66 11.3 作为计算字段使用子 查询..... 69 11.4 小结..... 71 第12章 联结表...... 72 12.1 联结..... 72 12.1.1 关系表..... 72 12.1.2 为什么要 使用联结..... 74 12.2 创建联结..... 74 12.2.1 WHERE子句 的重要性..... 75 12.2.2 内部联结..... 77 12.2.3 联结多个表..... 78 12.3 小结..... 80 第13章 创建高级联结...... 81 13.1 使用表别名..... 81 13.2 使用不同类型的联结..... 82 13.2.1 自联结..... 82 13.2.2 自然联结..... 84 13.2.3 外部联结..... 84 13.3 使用带聚集函数的联结..... 87 13.4 使用联结和联结条件..... 88 13.5 小结..... 88 第14章

SQL 必知必会(第3版)

ISBN:9787115162601(其它详情,比如价格等,请用ISBN号上网查) 推荐理由:   如果你要学会普通话,那你一定要学会拼音,如果你要学会英语,那你一定要学会音标,如果你要学会SQL,那你一定要读这本书。   上次介绍了高级程序设计,但是忘介绍必知必会,可能有些人会觉得入门无路,这回在这里补上。   这是我专门买的第一本SQL书,我想我是幸运的,在正确的时间里买到正确的书并且...

weixin_34268579的博客 112

SQL必知必会(第3版).pdf

SQL必知必会(第3版).pdf SQL必知必会(第3版).pdf

SQL必知必会第三版

学会数据分析,数据分析师的必备技能!

SQL必知必会 | 3

SQL必知必会 | 3

itsxwz 231

Windows 11 下 WSL 离线安装 Ubuntu 22.04 保姆级教程(国内镜像加速版)

本文提供了一份针对中国地区用户的Windows 11下WSL离线安装Ubuntu 22.04的详细教程。通过使用国内镜像源加速下载安装包,并配合PowerShell命令完成部署,有效解决了官方商店下载缓慢的问题。教程涵盖环境准备、离线包获取、安装初始化及安装后的关键优化配置,帮助用户快速搭建高效的Linux开发环境。

weixin_28452161的博客 1378

SQL必知必会

SQL 的学习可以说是比较简单的,尤其是你自己的手上有一些数据可以处理的时候,我也是一个自学 SQL 的菜鸟。最初想要学习 SQL 的原因是因为有些数据在 Excel 上面处理起来非常的卡顿,所以就把数据导入到 Access 进行处理,一开始的时候看完了W3Cchool 上面的 教程 SQL ½Ì³Ì 已经可以解决基本的数据处理问题了,后来想着在深入一点,所以就买了 SQL必知必会 (豆瓣) 这本...

qingchunmimang的博客 193

ICM42670 IIC驱动与卡尔曼+四元数姿态解算实战

惯性测量单元(IMU)是运动控制、无人机飞控和AR/VR设备的核心传感器,其数据质量直接取决于底层硬件通信可靠性与姿态估计算法鲁棒性。IIC(I²C)作为嵌入式系统中最常用的低速串行总线,需满足确定性时序、抗干扰与实时采样要求;卡尔曼滤波则通过状态建模与噪声协方差优化,在动态环境中融合加速度计与陀螺仪数据;而四元数因其无万向锁、插值平滑、旋转合成高效等优势,成为高精度姿态解算的数学基础。本文以高性能六轴IMU ICM42670为载体,深入剖析IIC硬件设计要点、裸机级驱动优化、Allan方差驱动的卡尔曼参数

weixin_27076351的博客 253

关于【中孚计算机终端保密检查系统】的卸载

卸载中孚计算机终端保密检查系统

码农之路,向死而生 4万+

SQL必知必会 Chapter 3 —— 排序检索数据

typora-copy-images-to: SQL 必知必会 文章目录typora-copy-images-to: SQL 必知必会SQL 必知必会 Chapter 3 排序检索数据3.1 排序数据3.2 按多个列排序3.3 按列位置排序3.4 指定排序方向 SQL 必知必会 Chapter 3 排序检索数据 3.1 排序数据 SQL语句由子句构成,一个子句通常由一个关键字 明确地排序用S...

Jame Lu 的博客 639

<工控><PLC>汇川Easy521系列PLC与汇川SV630N伺服进行EtherCat通讯的相关配置及指令编写

本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如果有值得记录的内容,也会添加进来。

用沸腾的热血,支付我们的人生吧! 2万+

SQL必知必会(3)

今天来说一说SQL中的分组与外键。 一:分组   select id, name from 表名 group by 数字|字段名  数字代表几个字段 分组可以将数据分成多个逻辑组,便于进行计算,比如超市购物结账时的物品名单 实例: 以name进行分组得到的结果是: 看到上面是不是有些疑惑,下面来介绍SQL的聚集函数: AVG-------计算平均数 SUM----...

zhiguo98的博客 205

从“储能”到“信号”:拆解Buck电路中那颗不起眼的前馈电容,如何让电源更稳

本文深入解析Buck电路中前馈电容的关键作用,揭示其如何通过频域整形和零点补偿提升电源稳定性。从工作原理到工程实践,详细介绍了容值计算、布局布线及特殊场景调校策略,帮助工程师优化瞬态响应和纹波抑制。

weixin_42530458的博客 403

如何学习SQL?如何快速入门SQL?

在网上随便一搜,都能搜出一大堆学习SQL的资料,但是反而令人无从下手。有些资料已经过时,有些资料质量不好,选取合适的资料能使我们学习事半功倍。 通过我个人的亲身学习,才知道哪些资料对于我们学习SQL事最有帮助的,只需3个网站+2本书就足够了。 切记20/80法则,自学是要在最短时间内掌握大部分的知识,是要入门,而不是马上成为专家。 1、W3School的网上教程 网址:https://www.w3...

ZZHXX的博客 8905

iqoo11如何获取root权限?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 5822

3种SQL语句优化方法,测试人必知必会

关于SQL语句的优化,本质上就是尽量降低SQL语句的执行时间,对于如何降低SQL语句的执行时间,可以从以下几个方面入手。

测试官 1175

Aurix TC3xx系列MCU ResourceM模块配置(多核资源分配)

为减轻主核的负载率或者平衡各个核的资源分配,通常需要把一些MCU内部资源分配到从核上,在EB tresos工具中,通过ResourceM模块实现多核资源分配。

m0_38045338的博客 1388

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Java经典实例(第二版)
下一篇: Spring2.0核心技术最佳实践
book_overkill
博客等级 码龄20年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值