sql学习笔记1

参考:

1、《SQL学习指南》

2、慕课网,SQL学习基础

提纲:

第二章 创建和使用数据库

2.1 创建MYSQL数据库

2.2 使用mysql命令行工具

2.3 MySQL数据类型

  2.3.1 字符型数据

  2.3.2 数值型数据

  2.3.3 时间数据

2.4 表的创建

  2.4.1 第一步:设计

  2.4.2 第二步:精华

  2.4.3 第三步:构建SQL方案语句

2.5 操作和修改表

  2.5.1 插入数据

  2.5.2 更新数据

  2.5.3 删除数据

2.6 导致错误的语句

  2.6.1 主键不唯一

  2.6.2 不存在的外键

  2.6.3 列值不合法

  2.6.4 无效的日期转换

  问题:什么是主键约束、外键约束?http://www.cnblogs.com/netserver/archive/2011/12/15/2289013.html

  外键约束只能在使用InnoDB 存储引擎创建表时才起作用。第12章将会讨论MySQL的存储引擎。

2.7 Bank方案

第三章 查询入门

3.1 查询机制

3.2 查询语句


字句名称  使用的目的

select 语句由几个组件或者字句组成。

select 确定结果集中应该包含哪些列

from 指明所要提取数据的表,以及这些表是如何连接的

where 过滤不需要的数据

group by 用语对具有相同列值的行进行分组

having 过滤掉不需要的组

order by 按一个或多个列,对最后结果集中的行进行排序


3.3 select 字句

  内建函数、别名、去除重复的行

3.4 from字句

  表的概念(永久表:使用create table语句创建的表、临时表:子查询返回的表,虚拟表:使用create view字句)

  子查询产生的表P45

  视图、表连接、定义表别名

3.5 where字句

  where子句用语在结果中过滤掉不需要的行

3.6 group by 和having字句

group by 是用根据列值对数据进行分组。举例子来说,也许你并不需要查看雇员和他们所处部门的列表,而是想要获取部门和它所拥有雇员数的清单。

SELECT d.name,count(e.emp_id) num_employees

FROM department d INNER JOIN employee e ON d.dept_id = e.dept_id 

GROUP BY d.name

HAVING count(e.emp_id)>2;

3.7 order by 字句

  默认是升序排列,可以根据表达式排序、根据数字占位符排序

————————

第四章 过滤

  所有的SQL数据处理语句(insert语句除外)都包含了可选的where子句。除此之外,select语句中包含having子句也可以对分组数据进行

条件过滤。having子句中过滤条件的使用我们将在第8章中讨论。

  4.1 条件评估(逻辑)

  and、or、使用圆括号、使用not操作符

  4.2 构建单个条件(逻辑的基础)

  数字、表或试图中的列、字符串、捏肩函数,concat、left、子查询、表达式列表,比较操作符(=,!=,<,>,LIKE、IN 和BETWEEN)

  算数操作符(+,-,*,/)

  4.3 条件类型

  4.4 null

————————————

第五章 多表查询

  5.1 啥是连接

  5.1.1 交叉连接(笛卡尔积、cross join)

  5.1.2 内连接(默认的连接方式)

  注意:如果想要抱哈其中某个表的所有行,而不考虑每行是否在另外一个表总存在匹配,那么可以使用外连接(outer join)

  5.1.3 ANSI连接语法

  本书在连接表时候使用的语法都符合SQL92版本的ANSI SQL标准。所有的主流数据库都采用了SQL92的连接语法。

但是由于这些数据库大多都出现在SQL92 标准之前发布,它们同样的也容许一些旧的连接语法。P80

  

  5.2 连接3个或更多的表

  连接表的顺序的探讨

原文地址:https://www.cnblogs.com/coskaka/p/7093716.html