资源描述
1、常见数据库模型:
层次模型、网状模型、关系模型。
2、 关系数据库概念
数据表与数据表的关联组成;增、删、修改;键码(key)、主关键字(Primary Key)、候选关键字、公共关键字、外关键字。
3、 关系数据库完整性规则
实体完整性、参照完整性、用户定义完整性。
4、 范式理论
规范化概念;六种范式:1NF、2NF、3NF、BCNF、4NF、5NF(逐级递增)。
第一范式规则:
数组的每个属性只能包含一个值;
每个数组应当包含相同数量的值;
每个数组一定不能相同。
第二范式规则:
满足第一范式,数据表中的任何一个非主键字段的数值都依赖于该数据表主字段。
第三范式规则:
满足第二范式,数据表中的任何两个非主键字段的数据之间不存在函数信赖关系。
5、 E-R模型(数据建模)
E-R(Entity-Relationship)模型,即实体-联系数据模型;实体、实体集概念;
关系:1:1;1:N;N:M;
6、 SQL Server 2023体系结构
由数据库引擎、分析服务(Analysis Services)、报表服务(Reporting Services)、数据集成平台(Integration Services);
数据库引擎:存储、解决(创建数据库、创佳表、创建视图、数据查询、访问数据库)、安全管理等。
分析服务(Analysis Services):通过服务器和客户端技术的组合提供联机分析(OLAP)和数据挖掘功能。
报表服务(Reporting Services):包含用于创建和发布报表及报表模型的图形工具和向导、用于管理Reporting Services的报表服务器管理工具和用于对Reporting Services对象模型进行编程和扩展的应用编程接口(API)。
数据集成平台(Integration Services)负责完毕有关数据的提取,转换和加载等操作。
7、 安装IIS服务(Internet Infomation Service)
8、 模板资源管理器
脚本模板提供了编写查询的起点,模板事实上是保存在文献中的脚本片段,可以在SQL查询视图中打开并且进行修改,使之适合需要。使用视图菜单或者工具栏上的摸板浏览器按钮打开。
9、 SQL Server联机丛书
帮助文档、教程。
针对结构设计员、管理人员、开发人员、信息工作者和分析人员。
10、 SQL Server配置管理器
11、 表(Table)
数据库中重要的对象 。
指关系数据库系统的二维表,也即关系。
一般来说,关系数据库表的结构包含三个基本组成元素:字段名、数据类型和长度。
CREATE TABLE Employee
(
Employee_Id varchar (20),
Employee_Name varchar (50),
Employee_Depart varchar (100),
Job_Id varchar (20),
Employee_Salary decimal (18,2)
)
12、 索引(Index)
根据指定的数据库表列建立起来的顺序,它提供了快速访问数据的途径。
视图(View)
视图看上去同表似乎一模同样,具有一组命名的、不反复的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存在。它是数据库预编译好的一段查询语句。
13、存储过程(Procedure)
存储过程是为完毕特定的功能而汇集在一起的一组SQL 程序语句,经编译后存储在数据库中的SQL 程序。
CREATE PROCEDURE P_GET_EMPLOYEE_INFO_BY_ID
(
@employee_id INT
)
AS
BEGIN
SELECT * FROM Employee WHERE Employee_Id=@employee_id
END
GO
14、 函数(Function)
与存储过程相比,函数必须具有返回值,并且使用的SQL语句也有诸多限制
--创建函数(返回varchar类型的值)
create function test(@Num varchar(20))--@Num 参数
returns varchar(50) --返回值类型
as
begin
declare @MSG varchar(20)
if(@Num =1)
select @MSG ='对的'
else
select @MSG ='错误'
return @MSG
end
--调用函数
select dbo.test(2)--传递参数2
返回结果:错误
15、 聚合函数
COUNT
SELECT COUNT(*) FROM Employee WHERE Job_Id = ‘0001’
SUM、AVG、MAX、MIN
16、 SELECT
简朴的SELECT 语句的语法如下:
SELECT [DISTINCT] <目的表达式>[,<目的表达式>]...
FROM <表或视图名>[, <表或视图名>]...
[WHERE <条件表达式>]
[GROUP BY <列名1> [HAVING <条件表达式>]]
[ORDER BY <列名2> [ASC | DESC] ]
Select * from employee where fname='Paolo'
使用函数
Select convert(char(10),getdate(),121);
Select upper(lname) from employee where fname='Paolo';
Select dateDiff(DAY,’2023-12-12’,’2023-12-25’)
判断分支
select case when fname='Anabela' then '1'
when fname='Ann' then '2'
else 'name'
end
from employee
order by fname
select嵌套
Select * from employee where job_id in (select job_id from jobs where min_lvl between 0 and 10)
17、 表合并(union)
select '1' x
union all
select '1'
看看这个结果:
select '1' x
union all
select '1'
union
select '1'
18、别名定义
Select upper(lname) Uname from employee a where fname='Paolo';
19、表连接(多表查询)
select * from employee a,jobs b where a.job_id=b.job_id
以a表为主表:select * from employee a,jobs b where a.job_id *= b.job_id
以b表为主表:select * from employee a,jobs b where a.job_id =* b.job_id
20、In条件转换成exists
Select * from employee a
where a.job_id in (select job_id from jobs b where b.min_lvl between 20 and 100)
Select * from employee a
where exists (select job_id from jobs b where a.job_id=b.job_id and b.min_lvl between 20 and 100)
21、 update语句
UPDATE Student SET Student_Name=‘保罗’ WHERE Student_Id=‘0001’
表联合更新
Update B set B.字段=A.字段 from A,B where B.条件字段=A.条件字段
22、 insert语句
insert into jobs(job_desc,min_lvl,max_lvl) values ('lh',99,99);
不推荐下面的写法:insert into jobs values ('lh',99,99);
在sql server中,IDENTITY类型的数据字段不能应用于insert
23、 delete语句
删除单行:DELETE FROM Student WHERE Student_Id=‘0001’
删除多行: DELETE FROM employee a
where a.job_id in (select job_id from jobs b where b.min_lvl between 20 and 100)
24、 内连接
内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:
等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,涉及其中的反复列。
不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符涉及>、>=、& lt;=、<、!>、!<和<>。
自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值, 但它使用选择列表指出查询结果集合中所涉及的列,并删除连接表中的反复列。
例,下面使用等值连接列出authors和 publishers表中位于同一城市的作者和出版社:
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
25、 外连接
内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回 到查询结果集合中的不仅包含符合连接条件的行,并且还涉及左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据 行。
如下面使用左外连接将论坛内容和作者信息连接起来:
SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
ON a.username=b.username
26、交叉连接
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第 一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
27、 INSERT语句
用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:
INSERT INTO EMPLOYEES VALUES
('Smith','John','1980-06-10',
'Los Angles',16,45000);
通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第 一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。
NULL是SQL中的一种特殊情况,我们以后将进行具体的讨论。现在我们只需认为NULL表达一种未知的值。
28、 断言涉及一种基于“等值” 的比较(LAST_NAME = 'Jones'),但是SQL断言还可以包含其他几种类型的比较。其中最常用的为:
等于 =、不等于 <>、小于 <、大于 >、小于或等于 <=、大于或等于 >=
下面给出了不是基于等值比较的一个例子:
SELECT * FROM EMPLOYEES
WHERE SALARY > 50000。
29、 逻辑连接符
为了进一步定义一个WHERE子句,用户可以使用逻辑连接符AND,OR和NOT;
30、 触发器(trigger)是用户定义在关系上的一类有事件驱动的特殊过程。
由服务器自动激活;可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。
触发器的作用:
可以对数据进行级联修改;
实现比CHECK约束更为复杂的限制;
比较数据修改前后的差别;
强制表的修改要合乎业务规则;
INSERT触发器常被用来被更新时间标记字段,或者验证被触发器监控的字段中数据满足规定的标准,以保证的完整性。
当在一个有UPDATE触发器的表中修改记录时,表中本来的记录被移动到删除表中,修改过的记录插入到了插入表中,触发器可以参考删除表和插入表以及被修改的表,以拟定如何完毕数据库操作。
31、DISTINCT 关键字来消除反复:
SELECT DISTINCT Buyer, Department
FROM SKU_DATA;
这个语句的结果为:所有的反复行都被消除。SQL 不自动去除反复行的因素是由于做这件事情很浪费时间。
32、SQL 语句产生的行序是任意的,这是由每个DBMS 内部的程序所决定的。假如你规定DBMS 以特定的顺序显示行,可以使用词语ORDER BY。例如,下面的SQL 语句:
SELECT *
FROM ORDER_ITEM
ORDER BY OrderNumber;
33、SQL 提供5 个内置的函数用于在表的列上进行算术运算
SUM,AVG,MIN,MAX 、COUNT
展开阅读全文