1. SQL:结构化查询语言的简称, 是关系数据库的标准语言。SQL 是一种通用的、 功能极强的关系数据库语言, 是对关系数据存取的标准接口, 也是不同数据库系统之间互操作的基础。集数据查询、数据操作、数据定义、和数据控制功能于一体。
2. 数据定义:数据定义功能包括模式定义、表定义、视图和索引的定义。
3. 嵌套查询:指将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询。
4. SQL 数据定义语句的操作对象有:模式、表、视图和索引。
5. 索引可以分为唯一索引、非唯一索引和聚簇索引三种类型。索引相关介绍可参考:【sql server】索引详解
6. 触发器: 触发器是用户定义在基本表上的一类由事件驱动的特殊过程。由服务器自动激活, 能执行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。使用 CREATE TRIGGER 命令建立触发器。
7. 数据库设计的6个基本步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护。
8. 表相关
8.1 主键:关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。若表中单独一列无法成为唯一标识, 需要多个列共同标识,那么多个列的属性组称为这个表的主键。主键约束: 可以在建表的时候设置, 也可以对已存在的表设置:
USE WebShop GO create tablehuoying ( hy_id int not null primary key, hy_name varchar(30) notnull ); alter table huoying add constraint PK_hy_id primary key (hy_id);
8.2 外键:这个表中存在的其他表的主键,即为这个表的外键。外键约束: 在引用表(定义外键的表)与被引用表(外键引用的表)之间创建依赖关系,被引用列必须是主键或者唯一约束,主键和外键可以是同一列。和主键不同,每个表中的外键数目不限制唯一性,在每个表中可以有0~253个外键。唯一的限制是一个给定的列只能引用一个外键。然而,一个外键可以涉及多个列。一个给定的被外键引用的列也可以被很多表引用。
create tablerenhu ( r_id int not null primary key, r_name varchar(30) notnull, r_paibie varchar(30) notnull, h_id int not null foreign key references huoyin(h_id) ) alter tablerenwu add constraint FK_h_id foreign key (h_id)references huoyin(h_id)
8.3 约束:对表中的列进行约束, 目前支持的约束类型有:主键约束,外键约束, 唯一约束, 默认约束, 和检查约束。主键约束和外键约束对应上面的8.1和8.2。唯一约束确保表中的一列数据没有相同的值。与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束。若在表中定义了默认值约束,用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为 NULL 。Check 约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围。在列中更新数据时,所要输入的内容必须满足 Check 约束的条件,否则将无法正确输入。比如只能输入男或者女。
区别 | 主键 | 外键 | 索引 |
---|---|---|---|
定义 | 唯一标识一条记录,不能有重复的,不允许为空 | 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 | 该字段没有重复值,但可以有一个空值 |
作用 | 用来保证数据完整性 | 用来和其他表建立联系用的 | 是提高查询排序的速度 |
个数 | 主键只能有一个 | 一个表可以有多个外键 | 一个表只允许有一个唯一聚集索引。 |
9. 基本SQL 语句
9.1 数据库相关的操作
CREATE DATABASE [新建数据库名] ON --数据文件 ( NAME='WebShop_data', --数据库逻辑名称 FILENAME='E:\data\WebShop_data.mdf', --数据库物理名称 SIZE=5, --初始大小,单位MB MAXSIZE=100, --增长上线,单位MB FILEGROWTH=2 --增长量,单位MB、% ) LOG ON --日志文件 ( NAME='WebShop_log', FILENAME='E:\data\WebShop_log.ldf', SIZE=2, MAXSIZE=500, FILEGROWTH=10% )
ALTER DATABASE [要修改的数据库名(逻辑名称)]
ADD LOG FILE --添加一个日志文件
(
NAME='WebShop_log1',
FILENAME='E:\data\WebShop_log1.ldf'
)
ALTER DATABASE [要修改的数据库名]
MODIFY FILE --修改文件(数据文件、日志文件)
(
NAME='WebShop_data', --NAME='WebShop_log'
MAXSIZE=500 --修改上限
)
USE master
GO
DROP DATABASE WebShop
9.2 基础运算符
LIKE(相似)运算符 IN(匹配)运算符 介于之间BETWEEN运算符 ORDER BY(排序规则) GROUP BY(聚合信息) 使用GROUP BY 子句时,必须要使用聚合函数 聚合函数: SUM, AVG等 COUNT(*) 查询中返回的行数 HAVING 在group by 之前筛选用where,筛选的是分组前的数据;在group by 之后筛选用having,筛选的是分组后的数据 DISTINCT 去除重复行 TOP 查询前*行的的数据 ISNULL 查询,判断如果是null值,则替换为其他 select isnull(name,'sdsdsdsds')from ren cast 查询时将列的数据类型转化成其他类型,可以和isnull一起使用 select ISNULL(CAST(gonghaoasvarchar(30)),'sdsd')from ren
9.3 数据库分页
9.4 Join
10. 视图
create view vw_goods as select * from goods where g_Price>4000; alter viewv w_goods as select * from goods where g_Price<4000; drop view vw_goods
11. 存储过程
11.1 sql server 存储过程 procedure
11.2 特点: 有点类似与函数,速度相对比较快,因为是提前编译好的,省去了编译的步奏。
create proc spEmployees as select * from Employees
12. 触发器
13. 备份