SQL(结构化查询语言) 是用于访问和处理数据库的标准的计算机语言。
用于访问处理的数据库有 Mysql、Oracle、DB2等,Mysql 在 Web 中会常用到,而 Oracle、DB2 是目前大多数金融公司的首选。
第一步:简单了解数据库
数据库是由表、关系、操作组成
存储数据:表、约束、触发器
操作数据:insert、update、delete T-sql 函数 存储过程 触发器
查询数据:select
数据类型
整数:int, smallint, tinyint, bigint;
浮点数:real, float, decimal;
二进制:binary, varbinary;
逻辑:bit;
字符:char, nchar, varchar, nvarchar;
文本和图形:text, ntext, image;
日期和时间:datetime, smalldatetime;
货币:money, smallmoney
数据库的创建和删除;数据库表的创建、修改和删除
数据完整性
实体完整性:Primary Key, Unique Key, Unique Index, Identity Column;
域完整性:Default, Check, Triggers, Procedure;
Create Table中得全部列级和表级约束
5 种约束:主键约束(Primary Key Constraint)、默认约束(Default Constraint)、检查约束(Check Constraint)、唯一性约束(Unique Constraint)、外键约束(Foreign Key Constraint)
数据库规范化:
将数据库的结构精简为最简单的形式;
从表中删除冗余列;
标识所有依赖于其他数据库的数据
数据库三范式:
第一范式,无重复的列;
第二范式,非主属性非部分依赖于主关键字;
第三范式,属性不依赖于其他非主属性
第二步:先不断练习初级命令
一些最重要的 SQL 命令
- SELECT(distinct) - 从数据库中提取数据(唯一)
- UPDATE - 更新数据库中的数据
- DELETE - 从数据库中删除数据
- INSERT INTO - 向数据库中插入新数据
- CREATE DATABASE - 创建新数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
SQL的4个部分:
数据定义语言DDL(Data Definition Language)
用来定义数据的结构:create、alter、drop
数据控制语言DCL(Data Contral Language)
控制数据库组建的存取许可、存取权限等命令:grant、revoke
数据操纵语言 DML(Data Manipulation Language)
数据操作:insert、update、delete
数据查询语言DQL(Data Query Language):select
SQL中的运算符:算术运算符、位运算符、比较运算符、逻辑运算符、通配运算符、字符串连接符、赋值运算符
简单查询
简单查询,使用TOP子句
查询结果排序 order by
带条件的查询 where,使用算术表达式,使用逻辑表达式,使用 between 关键字,使用 in 关键字,模糊查询 like
在查询中使用聚合函数:sum(x), avg(x), min(x), max(x), count(x), count(*)
使用分组查询 group by,having子句
distinct关键字
列别名
拾遗:
select A.x+A.y as sum from A where (A.x+A.y) > 100;
第三步:进阶
尽量使用 JOIN 进行表的连接,永远不要在 FROM 后面使用逗号连接表。(表引用)
DISTINCT 的确是一种很耗费资源的操作(不要滥用)
尽管没有严格的规定说明你何时应该使用 IN ,何时应该使用 EXISTS ,但是这些事情你还是应该知道的:
- IN比 EXISTS 的可读性更好
- EXISTS 比IN 的表达性更好(更适合复杂的语句)
- 二者之间性能没有差异(但对于某些数据库来说性能差异会非常大)
not IN、EXISTS
派生表:
取个名:from (select name from gradelist)namelist