没有合适的资源?快使用搜索试试~ 我知道了~
首页SQL基础教程学习笔记.pdf
资源详情
资源评论
资源推荐

SQL基础教程学习笔记
SQL基础教程学习笔记
0.文档说明
1.数据库和SQL
DBMS的种类
表的结构
SQL概要
表的创建(CREATE)
表的删除和更新(DROP/ALTER)
2.查询基础
SELECT基础
算术运算符和比较运算符
逻辑运算符
3.聚合与排序
对表聚合查询
对表分组(GROUP BY)
为聚合结果指定条件(HAVING)
对查询结果排序(ORDER BY)
4.数据更新
数据的插入(INSERT)
数据的删除(DELETE)
数据的更新(UPDATE)
事务
5.复杂查询
视图
子查询
关联子查询
6.函数、谓词、CASE表达式
各种各样的函数
谓词
CASE表达式
7.集合运算
表的加减法
联结
8.SQL高级处理
窗口函数
GROUPING运算符
9.通过应用程序连接数据库
附录1:常用DBMS列表
附录2:学习资源
图书
网站
0.文档说明
文档是基于SQL基础教程第2版整理的笔记,该书非常适合新手入门SQL语言;虽然整理了书中大部分核
心内容,但需要完整的代码示例和学习还请阅读原书;为了方便整理,大部分SQL代码都写成了一行,
实际应用时根据个人代码习惯调整;文档中 “-
斜
体
字
”均为备注说明;另外,附录中的内容是本人添
加的,并非书中所有😄
关于笔记的疑问或交流学习可加本人微信 cnicedon

1.数据库和SQL
DBMS的种类
HDB(Hierarchical Database):层次数据库
RDB(Relational Database):关系数据库
OODB(Object Oriented Database):面向对象数据库
XMLDB(XML Database):XML数据库
KVS(Key-Value Store):键值存储系统
表的结构
表的列称为字段
表的行称为记录
SQL概要
标准SQL
本书介绍的均为标准SQL的写法,特定DBMS的SQL语句会单独说明
SQL语句及种类
DDL:数据定义语言
CREATE 创建数据库和表等对象
DROP 删除数据库和表等对象
ALTER 修改数据库和表等对象的结构
DML:数据操纵语言
SELECT 查询表中的数据
INSERT 向表中插入新数据
UPDATE 更新表中的数据
DELETE 删除表中的数据
DCL:数据控制语言
COMMIT 确认对数据库中的数据进行的变更
ROLLBACK 取消对数据库中的数据进行的变更
GRANT 赋予用户操作权限
REVOKE 取消用户的操作权限
SQL书写规则
SQL语句以分号 ; 结尾
SQL语句不区分大小写
常数的书写方式
字符串和日期常数需要使用单引号 ' 括起来
数字常数无需单引号,直接写数字即可
单词之间需要使用半角空格或者换行符进行分隔
表的创建(CREATE)
创建数据库
CREATE DATABASE 数据库名;
创建表
CREATE TABLE 表名;

-
表
的
名
称
必
须
以
半
角英
文
字
母
作为
开
头
;
表
的
名
称
不
能
重
复
-
其中
DEFAULT
为
当
前列
设
置
默
认
值
数据类型
INTEGER 存储整数的列的数据类型,不能存储小数
CHAR 存储字符串的列的数据类型(字符型),如“CHAR(10)”,指定最大长度,定长字符串
VARCHAR 存储字符串的列的数据类型(字符串型),如“VARCHAR(8)”,可变长字符串
DATE 存储日期(年月日)的列的数据类型(日期型)
表的删除和更新(DROP/ALTER)
删除表
DROP TABLE 表名;
添加列
ALTER TABLE 表名 ADD COLUMN 列名 约束;
删除列
ALTER TABLE 表名 DROP COLUMN 列名;
-
常
规
情
况下
表
和
列
的
删
除
无
法
恢
复
,
请
在
操
作前
确
认
表中插入数据
变更表名
Oracle & PostgreSQL
ALTER TABLE 旧表名 RENAME TO 新表名;
SQL Server
sp_rename '旧表名','新表名';
MySQL
RENAME TABLE 旧表名 to 新表名;
2.查询基础
CREATE TABLE 表名
(列名1 数据类型 列的约束,
列名2 数据类型 列的约束,
列名3 数据类型 DEFAULT 值,
。。。
表的约束1,表的约束2,。。。);
-------------------------------
PRIMARY KEY (列名) ---> 设置主键,可以多个
1
2
3
4
5
6
7
8
-- 以下代码适用于SQL Server和PostgreSQL
BEGIN TRANSACTION;
INSERT INTO 表名 VALUES ('001','测试','人生','4000','2019-09-15',NULL);
INSERT INTO 表名 VALUES ('002','运营','人类','5000','2019-08-20','400');
COMMIT;
-- 注1:MySQL中第一行为 START TRANSACTION
-- 注2:Oracle和DB2中无需第一行
1
2
3
4
5
6
7
8
9

SELECT基础
查询列
SELECT 列名1,列名2 FROM 表名;
查询表中所有列
SELECT * FROM 表名;
为列设置别名
SELECT 列名1 AS 别名1,列名2 AS 别名2 FROM 表名;
SELECT 列名1 AS “中文列名1”,列名2 AS “中文列名2” FROM 表名;
-
设
置
为中
文
列
名
需
要
加
英
文
双
引
号
常数查询
SELECT '名称' AS string,20 AS number,'2019-09-15' AS date,列名1,列名2 FROM 表名;
- SQL
语
句
中
若
使
用
字
符
串
或
日期
常
数时
,
必
须
使
用
单
引
号
从结果中删除重复行
SELECT DISTINCT 列名 FROM 表名;
SELECT DISTINCT 列名1,列名2 FROM 表名;
- DISTINCT
关
键
字
只
能
用
在
第
一
个列
名
之前
-
使
用
DISTINCT
时
,
NULL
也
被视
为
一
类
数据
使用WHERE选择记录
SELECT 列名1,列名2 FROM 表名 WHERE 条件表达式;
-
先
通过
WHERE
查
询
符
合
条
件
记
录
,
再
选
取
出
SELECT
语
句
指
定
的
列
;
- WHERE
语
句
须
在
FROM
子
句
之
后
注释
单行注释:在 -- 之后;
多行注释:在 /* 和 */ 之间
算术运算符和比较运算符
含义 运算符
加法运算 +
减法运算 -
乘法运算 *
除法运算 /
SQL中的算数运算符
算数运算符示例
SELECT 列名1,列名2,列名2 * 3 FROM 表名;
-
其中列
名
2
的
数据
类
型
为
整数
型
时
,
直
接
进
行
数
学
运
算
-
所
有
包含
NULL
的
计
算
,
结
果
都
为
NULL
,
即
使
是
NULL / 0
这
样
的
计
算
SQL中的比较运算符

运算符 含义
= 和 XXX 相等
<> 和 XXX 不相等
>= 大于等于 XXX
> 大于 XXX
<= 小于等于 XXX
< 小于 XXX
比较运算符示例
SELECT 列名1,列名2 FROM 表名 WHERE 列名 < 值;
SELECT 列名1,列名2 FROM 表名 WHERE 列名 >= '日期';
SELECT 列名1,列名2 FROM 表名 WHERE 列名1 - 列名3 > 值;
-
小
于
某
个
日期
就
是
在
该
日期
之前
;
在
某日期
(
含
该
日期
)
之
后
的
查
询
条
件
时
,
使
用
>=
对字符串使用比较运算时
字符串类型的数据原则上按照字典顺序进行排序
该规则适用于长字符串和可变长字符串
不能对NULL使用比较运算符
SELECT 列名1,列名2 FROM 表名 WHERE 列名2 IS NULL;
SELECT 列名1,列名2 FROM 表名 WHERE 列名2 IS NOT NULL;
-
要
选
取
NULL
记
录
时
用
“IS NULL”
运
算符
,
选
取
不
是
NULL
记
录
使
用
"IS NOT NULL"
运
算符
逻辑运算符
NOT运算符
SELECT 列名1,列名2 FROM 表名 WHERE NOT 列名1 > 值;
- NOT
运
算符用
来
否
定
某
个
条
件
,
不
能
滥
用
AND和OR运算符
SELECT 列名1,列名2 FROM 表名 WHERE 列名 = 值 AND 列名3 <= 值;
SELECT 列名1,列名2 FROM 表名 WHERE 列名 = 值 OR 列名3 >= 值;
- AND
运
算符
:
在
其两侧
的
查
询
条
件
都
成
立
时整
个
查
询
条
件
才成
立
- OR
运
算符
:
在
其两侧
的
查
询
条
件
有
一
个
成
立
(
或
都
成
立
)
时整
个
查
询
条
件
都
成
立
- AND
运
算符
优先于
OR
运
算符
;
若
需
要
优先
执
行
OR
运
算符
,
可
使
用
括
号
3.聚合与排序
对表聚合查询
聚合函数
COUNT 记录表中的记录数(行数)
SUM 计算表中数值列中数据的合计值
AVG 计算表中数值列中数据的平均值
MAX 求出表中任意列中数据的最大值
剩余21页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论0