9.汇总数据

count(*) 包括空

count(name) 不包括空

10.分组数据

group by 分组

having 过滤分组

where 过滤行

11.子查询

select .. from .. where in (select ...)

由内向外处理

A.子查询过滤

作为子查询的语句只能查询单个列。

B.作为计算字段使用子查询

select

cust_name,

cust_state,

(select count(*) from orders where orders.cust_id=customer.cust_id))as orders

from customers

order by cust_name;

12.联结

A.cross join(叉连接)

没有where的话,会返回笛卡尔积。

B.inner join(内连接)首选。

连接处理耗费资源,连接的表越多,性能下降越厉害。

但是,处理连接比处理子查询快得多。

C.self join(自连接)

D.natural join(自然连接)

E.out join(外连接)

  left join

  right join

  full outer join

注意:1).一般使用内连接

   2).总是提供连接条件,否则笛卡尔积。

   3).采用不同的连接(inner left right)条件测试,排查故障方便。

14.组合查询(UNION)

15.插入数据

A.插入检索出的数据(到已有的表)

  INSERT INTO

B.从一个表复制到另一个表(新表)

  SELECT INTO  

  select * into custCopy from customers

16.更新与删除数据

A.使用update、delete一定不要忘了where!!!

B.有的update、delete需要权限。

C.一定要使用update、delete之前,要先select看看!!!

17.创建和操纵表

create table student

(

id int not null, 

name varchar(20)

);

ALTER TABLE student add age int;

ALTER TABLE student drop column age;

DROP TABLE student;

18.视图。

A.什么使用视图?

  1).重用sql

  2).简化sql操作

  3).使用表的一部分而不是整个表

  4).保护数据

  5).更改数据格式和表示。

  视图可以返回与底层表的表示和格式不同的数据。

B.视图规则与限制

C.创建视图

CREATE VIEW studentView as (select ...)

  1)简化复杂连接

  2)格式化检索出的数据

  3)过滤不想要的数据

19.存储过程。

A.简介

  一些复杂的操作需要多条语句才能完成。

  可将其视为批文件,虽然他们的作用不仅限于批处理。

B.为什么?

  1)通过把处理封装在一个易用的单元中,简化复杂的操作。

  2)由于不要求反复建立一系列处理步骤,保证了数据的一致性。防止错误。步骤越多,出错的可能性越大。

    如果所有开发人员都是用同一存储过程,则所使用的代码都是相同的。

  3)简化对变动的管理。安全性。

  4)存储过程通常以编译过的形式存储,提高性能。

  5)编写更灵活的代码

C.好处

  简单、安全、高性能

D.缺陷

  1)不易移植

  2)编写存储过程比编写基本sql复杂,需要更高的技能,更丰富的经验。

E.执行存储过程

  EXECUTE

F.创建存储过程

  create procedure mailingListCount(ListCount out Integer)

  is v_rows Integer;

  begin 

    select count(*) into v_rows

    from customers

    where not cust_email is null;

    ListCount :=vrows;

  end;

var ReturnValue Number

exec mailingListCount(:ReturnValue);

select ReturnValue; 

20.管理事务处理

事务处理是一种机制,用来管理必须成批执行的sql操作,保证数据库不包含不完整的操作结果。

A.事务处理

事务(transaction)

回退(rollback)

提交(commit)

保留点(savepoint)

B.控制事务处理

21.使用游标

22.高级sql特性

(22.1)约束

  A.主键约束

  B.外键约束

    1)外键是表中的一列,其值必须列在灵异表的主键中。

    2)外键是保证引用完整性的及其重要部分。

    3)定义

      alter table orders 

      add constraint foreign key(cust_id)

      references customers(cust_id)

    4)外键有助防止意外删除

    5)级联删除

  C.唯一约束

  D.检查约束

(22.2)索引

索引用来排序数据以加快搜索和排序操作的速度。想象一本书后的索引。

可以在一个或多个列上定义索引,使DBMS保存其内容的一个“排过序”的列表。

A.索引改善查询select操作性能,降低insert、update、delete操作性能,在执行这些操作时,DBMS必须动态更新索引。

B.索引可能占用大量存储空间。

C.并非所有数据都适合做索引。取值不多的数据不需要索引。

D.索引用于数据过滤和数据排序。经常排序数据适合索引。

E.索引可以定义多个列。

F.用法:

create index product_name_index

on products(product_name);

G.索引必须唯一命名

H.索引效率岁数据增加而变化,过去创建的某个理想的索引经过几个月的数据处理后可能变得不再理想。

  最好定期检查索引,并根据需要调整更新索引。

(22.3)触发器

触发器是特殊的存储过程,他在特定的数据库活动发生时自动执行。触发器可以与特定表上的insert、update、delete操作相关联。

A.触发器可以在特定操作执行之前或之后执行。

B.用途:

  1)保证数据一致

  2)基于某个表的变动在其他表上执行活动。

    比如,更新或删除一行时将跟踪记录写入某个日记表。

  3)进行额外的验证并根据需要回退数据。

  4)计算计算列的值或更新时间戳。

C.写法

  create trigger customer_state

  on customers for insert,update

  as update customers set....

(22.4)数据库安全

 

转载于:https://www.cnblogs.com/CESC4/p/8481894.html

【数据库】《SQL必知必会 4th》部分笔记相关推荐

  1. sql 数据库前两列值乘_SQL | SQL 必知必会笔记 (一 )

    原文:SQL | SQL 必知必会笔记 (一 ) 作者: PyStaData 基本概念 一些规则 多条 SQL 语句必须以分号分隔. SQL 不区分大小写,但一般习惯关键字用大写,列名和表名使用小写. ...

  2. asp sql ip地址排序_SQL必知必会读书笔记,30分钟入门SQL!

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 来源:https://segmentfault.com/p/1210000011760 ...

  3. GitHub#SQL#:SQL必知必会

    https://github.com/CyC2018/Interview-Notebook 一.基础 二.创建表 三.修改表 四.插入 五.更新 六.删除 七.查询 八.排序 九.过滤 十.通配符 十 ...

  4. sql必知必会的数据初始化

    之前已经配置好mysql的工作环境,但是还缺少可以进行操作的文件,即缺少对应的一个数据库和其中的5个表. 下载相关代码 在网址http://www.forta.com/books/0672325675 ...

  5. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)

    站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...

  6. mysql数据库过滤空值_mysql必知必会--过 滤 数 据

    使用 WHERE 子句 数据库表一般包含大量的数据,很少需要检索表中所有行.通常只 会根据特定操作或报告的需要提取表数据的子集.只检索所需数据需要 指定搜索条件(search criteria),搜索 ...

  7. SQL Server必知必会

    SQL Server必知必会 2009-10-27-17:57:57 Structure     Query     Language:SQL 结构化       查询      语言 数据库产品: ...

  8. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作

    上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...

  9. SQL必知必会(一)SQL基础篇

    SQL基础 1.SQL语言 2.SQL开发规范 3.DB.DBS 和 DBMS 的区别是什么 4.SQL执行顺序 1.oracle中执行顺序 2.MYSQL执行顺序 3.sql关键字执行顺序 5. I ...

  10. 1.《SQL必知必会》第五版 附录A样例表的添加

    mysql+workbench的初步使用 一.安装mysql+workbench 二.导入附录A的样例表 最近工作需要学习SQL,查阅了相关知识购买了图书<SQL必知必会>第五版.这本书没 ...

最新文章

  1. Git 只拉取部分文件
  2. ABAP SUBMIT 程序时带屏幕默认值
  3. 1.15.Flink state(状态)管理与恢复、什么是state、Keyed State、Operator State、状态容错(生成快照,恢复快照),checkPoint简介,重启策略等
  4. Oracle数据库-主键(primary key)、外键(foreign key)、候选键(candidate key)、超键(super key)和references总结...
  5. Logistic分类函数
  6. 时间管理专题_理论篇
  7. eclipse中怎么安装spring插件_安装eclipse中容易遇到的问题
  8. c++函数的声明与定义
  9. 如何用php搭建彩票网站源码,详解聚富彩票源码搭建 HTML表单与PHP Web程序 - 贪吃蛇学院-专业IT技术平台...
  10. win7便签怎么一直在桌面显示
  11. 计算机主机中的硬件组成部分,电脑的硬件组成部分及其作用各是什么
  12. latex编辑公式好用的在线网址
  13. 网络信息安全之信息系统安全保障
  14. tf.name_scope与tf.variable_scope用法区别
  15. 小米平板4 android版本,小米平板4/4Plus通刷-LOS-安卓9.0.0-稳定版Stable2.0-来去电归属-农历等-本地化增强适配...
  16. 人脸核身--第二篇--启用 H5人脸认证
  17. 微型计算机硬盘接口有哪些,什么是硬盘(硬盘接口有哪些)
  18. Glidedsky系列—爬虫CSS反爬
  19. 天翼云盘下载直链解析html源码
  20. 盐城北大青鸟东台基地教学活动 | 照片转Q版手绘设计作品展

热门文章

  1. CAN总线在嵌入式Linux下驱动程序的实现
  2. java线程三种方法,Java基础_线程的使用及创建线程的三种方法
  3. android 删除路径文件内容,Android 删除已知路径的文件或文件夹
  4. echarts 不支持 手机 浏览器_最佳实践 | 地图加载慢,还不支持现有浏览器?巧用 Mapbox 静态地图!...
  5. access denied for_abm怎么样?ACCESS集团携8大国际品牌在进博会首秀,展示abmr 硬核实力!...
  6. java中文本框显示在命令按钮后面_Maya中Pymel写个带界面的重命名工具(一)
  7. 【图像超分辨率】Understanding Deformable Alignment in Video Super-Resolution
  8. 2010-2011年中国嵌入式开发从业人员调查报告隆重推
  9. 【Anaconda】InvalidVersionSpecError: Invalid version spec: =2.7
  10. (转载) min()的宏定义中的(void) (_x == _y)的含义