文章目录

  • 1 数据库的基本概念
  • 2 数据库表和视图的相关概念,创建表和视图,包含定义,约束和索引等
  • 2.1 创建数据库表
  • 2.2 表的插入
  • 2.3 更新表数据
  • 2.4 删除表数据
  • 2.5 索引
  • 2.6 视图
  • 3 查询语句,单表查询,分组查询,多表查询,子查询,高级查询
  • 3.1 单表查询
  • 3.2 group by分组子句
  • 3.4 子查询
  • 4 函数的基本概念
  • 5 游标的基本概念
  • 6 存储过程的基本概念
  • 7 数据库概念设ER图的基本概念,包含关系和图形
  • 8 数据库的安全和备份,包含分离及附加
  • 8.1 备份数据库
  • 8.2 还原数据库
  • 8.3 分离和附加数据库
  • 9 数据库设计的基本概念

1 数据库的基本概念

数据(Data)为描述客户事物及其状态的符号记录。
数据库是(Database,DB)相互关联且具有一定结构的数据集合。
数据库的设计和实现具有特定的目的,随机组合的数据不能被称为数据库。
数据库中的数据具有如下特征:共享性、持久性、有效性、安全性、一致性、无冗余性。

数据库管理系统(Database Managment System,DBMS)是一种用于创建和管理数据库的计算机应用软件程序。
数据库管理系统具有的优点:将相互关联的数据集成在一起,减少冗余度,程序与数据相互独立,保证数据的安全性和可靠性,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。

数据系统(Database System,DBS)包括与数据库相关的整个系统。
数据库系统包含五个部分:数据库、数据库管理系统、应用程序、数据管理员(Database Adminstrator,DBA)和用户。

2 数据库表和视图的相关概念,创建表和视图,包含定义,约束和索引等

2.1 创建数据库表

用T-SQL语句创建表
create table 表名(
字段1 字段1的数据类型 字段1的约束,
字段2 字段2的数据类型 字段2的约束,

字段n 字段n的数据类型 字段n的约束
)
字段不区分大小写
数据类型:
char(n) varchar(n) int
decimal(p,s), numeric(p,s)
p(精度):表示最多可存储的十进制数的小数点左右两边的总位数,应在1到38位之间。 默认精度为18。
s(小数位数):只能在0~p之间。默认的小数位数为0。
例如:
decimal (11,4)
表示11位数,小数部分有4位,整数部分7位。
如果小数部分超过4位,则从第5位四舍五入;
如果整数部分超过7位,则检查语法时编译器会出错。

约束:
not null null
check(字段>0) 该字段必须内容大于0 前提:该字段的数据类型为int
check(字段 in(‘xx’,‘yy’)) 该字段内容必须为xx或yy 前提:该字段为char()类型
例如:sex char(2) not num check(sex in(‘男’,‘女’)) 该字段内容必须为男或女且不能为空
dafault xxxx 默认值为xxxx
例如:time datetime dafault getdate() time为字段,datetime为字段类型,默认值为当前时间。

主键 primary key
例如: stuid cahr(12) primary key stuid为字段,字段类型为cahr(12),stuid为主键。
或在建表语句最后一行声明主键,例如:

create table sc(
stuid char(12),
sname char(7),
primary key(stuid)
)

外键 foreign key
创表的时候定义外键,语法格式如下:
字段 字段类型 references 父表名 (父表的主键字段)
例如:

create table class(
class id char(8) primary key,
departmentid char(4) references department(departmentid)
)

分析:departmentid为表class的字段,department表的主键为departmentid。
创建表之后添加外键,语法格式如下:
alter table 本表 add foregin key (本表字段) references 父表(父表主键)
例如:
为teacher表添加外键约束,将departmentid定义为外键,引用department表中主键departmentid。

alter table teacher foregin key(departmentid) references department(departmentid)

删除外键约束,语法格式:
alter table 表名 drop constraint 外键约束名

2.2 表的插入

语法格式如下:
insert into 表名 (字段1,…,字段n)
values
例如:
向student表(sno,sname)插入3行记录,分别为(c1,小一),(c2,小二),(c3,小三)。

insert into student
values
('c1','小一'),
('c2','小二'),
('c3','小三')

向student表(sno,sname,sphone)插入3行记录,分别为(c4,12345),(c5,67890),(c6,12398)。

insert into student
(sno,sphone)
values
('c4',12345),
('c5',67890),
('c6',12389)

2.3 更新表数据

与where子句配合使用。
语法格式:
update 表名
set 字段=新数据值或表达式
where
例如:
将21软件工程1班的辅导员修改为李密,班级人数修改为32人

update class
set monitor='李密',studentsum=32
where classname='21软件工程1班'

2.4 删除表数据

与where子句配合使用。

2.5 索引

创建索引
语法格式:
create index 索引名 on 表名(字段)

create index ix_news_createdate on news(createdate)

删除索引
语法格式:
drop index 索引名 on 表名

drop index ix_news_createdate on news

2.6 视图

详细视图知识点击这里
创建视图
语法格式:
create view view_name as select 字段 from 表名 [with check option]
如果加上with check option,则基于视图的更新和新增操作必须满足查询条件。
例如:

create view v_id_name
as select departid,name from files

查询视图
在sql server图形化界面和查询语句中,视图都可以当成普通表使用。

select * from v_sex_m

修改视图
语法格式:
alter view view_name 字段 [ with check option]
as 查询语句 [with check option]

alter view v_sex_m
as
select top 1 name from v_sex_m

删除视图
语法格式:
drop view view_name

drop view v_sex_m

3 查询语句,单表查询,分组查询,多表查询,子查询,高级查询

详细查询知识点击这里

3.1 单表查询

选择表中的列

order by子句
可以按一个或多个属性列排序
升序:ASC;降序:DESC;缺省值为升序。

通过top n选择结果中的行,n为整数,表示选择的行数,从前面开始选择。

消除取值重复的行,指定distinct关键词,去掉表中重复的行,如下例子:

select distinct sno from sc

表达式中的运算
select 子句的<目标列表达式>不仅可以为表中的属性列,也可以是表达式
例如:

select sname,2022-year(sbirth) as sage from student;

datalength(Char_expr) 字符串长度计算
返回字符串包含字符数,但不包含后面的空格
Char_exp:可以是字段/变量/表达式
如:datalength(‘abc’) 返回 3

select sname,datalength(sname) as length from student

字符串函数:
right(char_expr,int_expr) 返回字符串右边int_expr个字符
left(char_expr,int_expr) 返回字符串左边int_expr个字符
如:left(‘张三丰’,1) 返回 “张”

查询所有学生的姓名和姓氏(假设姓氏只有第一个字)

select sname,left(sname,1) as xs from student

日期函数:
getdate() 返回当前日期
year(date_expr)获取date_expr的年份
month(date_expr)获取date_expr的月份
day(date_expr)获取date_expr的日期

查询所有学生的姓名、出生年份、出生月份,并按照年份降序排列

select sname,year(sbirth) as birth_year,
month(sbirth) as birth_month
from student order by birth_year desc

聚集函数
count(*) 统计行数
count dintinct 字段 统计一列中值的个数

sum() 计算一列值的总和(此列必须为数值型
avg() 计算一列值的平均值(此列必须为数值型
max() 求一列中的最大值
min() 求一列的最小值

3.2 group by分组子句

group by将查询的结果进行分组,通常与一些聚合函数配合使用。
语法格式:
group by 字段名;
group by 字段名 having 条件;

where和having的不同之处
where用于select语句中,表示查询要满足的条件。
having 条件只能与group by分组配合使用,表示将分组后满足条件的记录输出。

查询files表各个职称的人数,语句如下:

select duty,count(*) as 人数 from files group by duty

having子句
查询files表各个职称的人数小于5的记录,语句如下:

select duty,count(*) as 人数 from files group by duty having count(*)<5

3.4 子查询

嵌套查询是在一个select语句中,可嵌套着另外的子查询,就是嵌套查询。
嵌套查询一般用于查询的内容来自多表时,且多张表有代表意义上相同的字段内容的情况。

4 函数的基本概念

sum() avg() ascii() left(‘xx’,n)

5 游标的基本概念

6 存储过程的基本概念

详细游标 存储过程知识点击这里

7 数据库概念设ER图的基本概念,包含关系和图形

矩形:表示实体。矩形内表明实体名称。
椭圆:表示属性。可以是实体或者关系所具有的属性。
菱形:表示关系。
关系:1:n ,n:1,n:m。

8 数据库的安全和备份,包含分离及附加

8.1 备份数据库

语法格式如下:
backup database 数据名 to 备份的路径
例如:
对xkgl数据库进行一次完整备份,备份到student设备上(student数据库已经建好了)。

backp database xkgl to student

对xkgl数据库进行一次差异备份,并备份到student备份设备上。

backp database xkgl to student with differential

对xkgl数据库进行一次完整备份,备份到student设备上。

backp database xkgl to student init

8.2 还原数据库

完全数据库备份恢复语法格式如下:
restore database 数据库名 from 备份设备名
例如:
已经完整备份的数据xkgl进行恢复。

restore database from student

事务日志备份恢复语法格式如下:
restore log database 数据库名 from 备份设备名

8.3 分离和附加数据库

分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。

附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。

9 数据库设计的基本概念

数据库设计包括数据库的结构设计和数据库的行为设计两方面的内容。

数据库的结构设计包括数据库的概念设计、逻辑设计和物理设计。

数据库的结构设计又称为静态模型设计。

数据库的行为设计又称为动态模型设计。

新奥尔良法将数据库设计分成需求分析(分析用户需求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。

基于E-R模型的数据库设计方法其基本思想是在需求分析的基础上,用E-R(实体—联系)图构造一个反映现实世界实体之间联系的企业模式,然后再将此企业模式转换成基于某一特定的DBMS的概念模式。

基于3NF的数据库设计方法其基本思想是在需求分析的基础上,确定数据库模式中的全部属性和属性间的依赖关系,将它们组织在一个单一的关系模式中,然后再分析模式中不符合3NF的约束条件,将其进行投影分解,规范成若干个3NF关系模式的集合。

基于3NF的数据库设计方法其具体设计步骤分为五个阶段
(1)设计企业模式,利用规范化得到的3NF关系模式画出企业模式;
(2)设计数据库的概念模式,把企业模式转换成DBMS所能接受的概念模式,并根据概念模式导出各个应用的外模式;
(3)设计数据库的物理模式(存储模式);
(4)对物理模式进行评价;
(5) 实现数据库。

按规范设计法可将数据库设计分为六个阶段:

关系数据库的规范化理论主要包括三个方面的内容:函数依赖、范式(Normal Form)和模式设计。其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。

第一范式(1NF)是最基本的规范形式,即关系中每个属性都是不可再分的简单项。只要是关系数据库就是第一范式。

第二范式(Second Normal Form)每个非主属性都完全函数依赖于R的每个关系键。主要功能消除部分依赖。

第三范式(Third Normal Form)每个非主属性都不传递依赖于R的每个关系键。主要功能消除传递依赖。

SQL server 期末复习相关推荐

  1. 【SQL server 期末复习】

    数据库期末试卷 -.关系数据库分析题(本题共10分) 某运输公司数据库中有一个车队的关系模式: R(司机编号,汽车牌照,行驶公里,车队名称,车队主管) 此处每个汽车牌照对应一辆汽车."行驶公 ...

  2. Sql server 期末知识点复习

    **数据库基础概念: 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 数据库复习知识 数据库基本概念 一.第一章概念知识复习 二.数据库创建,数据库及数据库对象 数据库基本概念 一. ...

  3. SQL Server 2008 复习(一)

    导入 有关数据库系统的基本概念 1.信息与数据: 数据(Data)是描述事物的符号记录,数据的表现形式,可以是文本.图表.图形.图像.声音.语言.视频等. 信息(Information)是具有特定意义 ...

  4. SQL Server 入门复习(2008)图解

    1 首先找到开始菜单中相关内容:如下图:安装的组件不同可能有所不同:我的电脑中包括如下项: 商业智能:管理控制台:导入和导出数据:分析服务:集成服务:配置工具:文档和教程:性能工具: 因为偶装的组件多 ...

  5. SQL Server 2008 复习(二)

    第4章 表和数据完整性 类别 数据类型 字节数 取值范围 作用 Integer bigint 8 -2E63-2E63-1 存储非常大的正负整数 int 4 -2E31-2E31-1 存储正负整数 s ...

  6. SCAU SQL 数据库 期末复习

    Chapter 1: Introduction 1.数据的三个抽象层次.数据独立性 Physical schema: describes database design at the physical ...

  7. SQL Server 2008 复习(三)

    第3章 创建和管理数据库 利用Transact-SQL语句创建数据库 [例3.1] 创建数据库student,并指定数据库的数据文件所在位置.初始容量.最大容量和文件增长量. 程序代码如下: CREA ...

  8. SQL Server 练习题及答案1

    SQL Server 期末考试题目及答案 一.单选题 1. Microsoft公司的SQL Server2000数据库管理系统一般只能运行于( ). A. Windows平台 B. UNIX平台 C. ...

  9. sql创建计算机用户,2015年计算机四级数据库复习要点:SQL Server 登录账户

    2015年计算机四级数据库复习要点:SQL Server 登录账户 系统内置的登录账户 1. BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Adm ...

  10. 复习--SQL Server (一) -系统数据库

    SQL Server 2000自带了四个数据库: 1. Master数据库(系统数据库): 记录了SQL Server 的所有服务器级别的系统信息(16张服务器系统表&17张数据库级系统表), ...

最新文章

  1. profiles 配置详解
  2. smartforms输出格式设置说明
  3. 解决开机POST提示Strike tne F1 key to continue,F2 to run the setup utility
  4. php的静态变量static在函数内部
  5. 一种基于邻域的聚类算法
  6. mysql 登录默认实例_【MySQL案例】mysql本机登录-S失灵_mysql
  7. python 画蝴蝶_python画蝴蝶曲线图的实例
  8. html手机号带国家前缀,今天跟大家总结一下手机型号的前缀、后缀(...
  9. c语言写的fft程序,C语言编写FFT程序.pdf
  10. 实验五:py求函数驻点极大小值凹凸区间拐点
  11. 在线广告结算方式与ecpm估计关系
  12. Linux中tar分卷压缩与解压缩
  13. [慈溪2011]电子警察
  14. 智能家居普及的最大障碍:如何“排座次”
  15. ambari登录页面打不开,报错:postgresql ...... Check that the hostname and port are correct......
  16. MATLAB代码保存为word,MATLAB怎么保存为Word?
  17. vue中前端实现pdf预览(含vue-pdf插件用法)
  18. 个人博客项目(2) --- 用户登录
  19. 如何掌控自己的时间和生活(how to get control of your time and your life)读书笔记
  20. (转载)终极解密---房价,物价飞涨--分析得不错的文章

热门文章

  1. 央行征信中心:第二代个人征信系统将于1月20日上线
  2. LZY的CQU水下机器人视觉学习笔记(一)
  3. 计算机表格如何求和,excel表格怎么求和? excel自动求和的三种方法
  4. python如何去除文本标点符号_python中如何去除标点符号
  5. 华清远见-重庆中心-JAVA高级阶段知识点梳理
  6. java 区分中英文_Java 区分文本中的中英文字符函数
  7. uva 509 RAID!(磁盘数据)
  8. C#语言实例源码系列-加密解密RAR文件
  9. 萤石云视频监控接入详细流程,添加设备,展示视频,云台控制
  10. html泰勒展开,常见的泰勒公式展开式大全