sqlsever数据库知识点总结.docx

上传人:b****8 文档编号:10748262 上传时间:2023-02-22 格式:DOCX 页数:33 大小:59.78KB
下载 相关 举报
sqlsever数据库知识点总结.docx_第1页
第1页 / 共33页
sqlsever数据库知识点总结.docx_第2页
第2页 / 共33页
sqlsever数据库知识点总结.docx_第3页
第3页 / 共33页
sqlsever数据库知识点总结.docx_第4页
第4页 / 共33页
sqlsever数据库知识点总结.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

sqlsever数据库知识点总结.docx

《sqlsever数据库知识点总结.docx》由会员分享,可在线阅读,更多相关《sqlsever数据库知识点总结.docx(33页珍藏版)》请在冰豆网上搜索。

sqlsever数据库知识点总结.docx

sqlsever数据库知识点总结

sql-sever-2008-数据库知识点总结

第一章数据库基础

1数据库系统:

是由数据库及其管理软件组成的系统,常常把数据库有关的硬件和软件系统成为数据库系统

2.数据库:

数据库就是数据的仓库,由表、关系以及操作对象组成

3.数据:

是描述事物的符号记录(数字、文字、图形、图像、声音等)

4.数据库的作用

存储大量数据,方便检索和访问

保持数据信息的一致、完整

共享和安全

通过组合分析,产生新的有用信息

5.数据库经历的三个阶段及特点

1)人工管理阶段:

数据不保存;使用应用程序管理数据;数据不共享;数据不具有独立性。

2)文件系统阶段:

数据可以长期保存;由文件系统管理数据;共享性差,数据冗余大;数据独立性差。

3)数据库系统阶段:

数据结构化;数据共享性高;数据独立性强;数据粒度小;独立的

4)

5)10.三大范式

第一范式:

在关系模型中的每一个具体关系R中,如果每个属性都是不可再分的,则称关系(R)属于第一范式(1NF)

第二范式:

如果关系模式R属于第一范式,且每一个非主属性都完全依赖于主码,则称关系R是属于第二范式的

第三范式:

如果关系模式R为2NF,并且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第三范式的

第二章数据库的安装

1.常见的数据库类型:

Access、SQLserver2000、2005、2008,Oracle数据库等

2.数据库管理员的工作是:

配置数据库服务器环境;管理数据库的逻辑对象结构;配置数据库的对象权限;制定数据库的性能优化策略;数据库的备份还原策略;数据库的异构协同结构

3.SQLServer2008的版本

Express适用于无连接的客户端或独立应用程序

Workgroup适用于工作组或分支机构操作的数据库

Standard部门级应用程序的数据库服务器

Enterprise高度可伸缩和高度可用的企业级数据库

DeveloperEnterprise版,但是只授予开发和测试用许可

Web供托管公司提供低成本、高伸缩的托管服务,只收取低廉的每月许可费

Mobile用于智能手持式设备的精简数据库

12.掌握SQLServer2008数据库的安装与卸载

第三章数据库的管理

1.T-SQL语言分类

DDL(数据定义语言)

-create(创建)

-alter(修改)

-drop(删除)

DQL(数据查询语言)

-inter(插入)

-update(更新)

DML(数据操作语言)

-select(查询)

DCL(数据控制语言)

-revoke(撤销)

-deny(拒绝)

-grant(同意、授权)

2.数据库文件

主数据文件(.mdf):

一个数据库有且只有一个

辅助数据文件(.ndf):

根据需要自由选择,当数据库很大时,可以选择多个

日志文件(.ldf):

用于存储恢复数据库所需的事务日志信息

3.掌握数据库的创建及修改(图形化及代码)

修改数据库包括:

扩展、收缩、分离附加、删除

4.语法

1)修改数据库名

Alterdatabase原数据库名

Modifyname=新数据库名

例子:

【例】将数据库book的名字改为books

alterdatabasebook

modifyname=books

2)修改文件属性

Alterdatabase数据库名

Modifyfile

name='逻辑名',

size=修改后的大小,

maxsize=修改后的大小,

filegrowth=修改后的大小

Go

例子:

把初始大小由原来5mb增大为12mb

alterdatabasebooks

modifyfile

name='book_data',

size=12mb

go

3)添加日志文件

Alterdatabase数据库名

Addlogfile

name=‘逻辑名’,

filename=‘文件的存放路径’,

size=日志文件的初始大小,

maxsize=日志文件的最大大小,

filegrowth=日志文件的增长方式

Go

例子:

【例】向shop数据库中添加一个日志文件

alterdatabaseshop

addlogfile

name='shop_log2',

filename='c:

\shop_log2.ldf',

size=10mb,maxsize=20mb,

filegrowth=10%

go

4)删除空文件

Alterdatabase数据库名

Removefile文件的逻辑名

例子:

删除文件shop_data2alter

databaseshopremove

fileshop_data2

6)添加辅助数据文件

alterdatabase数据库名

addfile

name=‘逻辑名’,

filename=‘文件存放的路径’,

size=初始大小,

maxsixe=最大大小,

filegrowth=增长方式

Go

例子:

向数据库shop中添加一个辅助数据文件

alterdatabaseshop

addfile

name='shop_data3',

filename='c:

\shop_data3.ndf',

size=5mb,

maxsize=10mb,

filegrowth=10%

go

5)创建/删除数据库

Createdatabase数据库名

onprimary

(--数据文件name=‘逻辑名’,

filename=‘文件的存放路径’,

size=数据文件的初始大小,

maxsize=数据文件的最大大小,

filegrowth=文件的增长方式)

logon(--日志文件name=‘逻辑名’,

filename=‘文件的存放路径’,

size=数据文件的初始大小,

maxsize=数据文件的最大大小,

filegrowth=文件的增长方式)

go

例子:

创建一个名为book的数据库,其初始值大小为5MB,最大大小为50MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。

createdatabasebook

onprimary

name=‘book_data',

filename='c:

\book_data.mdf',

size=5mb,

maxsize=50mb,

filegrowth=10%)

logon

name=‘book_Log',

filename='c:

\book_log.ldf',

size=2mb,

maxsize=5mb,

filegrowth=1mb

6)删除数据库

Dropdatabase数据库名

例子:

删除数据库shop

dropdatabaseshop

第四章数据表的操作

1.在SQLserver中创建表的极限:

每个数据库可以有20亿个表,每个表有1024个列,每个列可以有8064字节

2.数据类型

种类

数据类型

数字

整数

int,bigint,smallint,tinyint

精确数值

decimal,numeric

近似数值

float,real

货币

money,smallmoney

日期和时间

datetime,smalldatetime

字符

Non-Unicode

char,varchar,varchar(max),text

Unicode

nchar,nvarchar,nvarchar(max),ntext

二进制

binary,varbinary,varbinary(max)

图像

image

全局标识符

uniqueidentifier

Xml

xml

特殊

bit,cursor,timestamp,sysname,table,sql_variant

3.字符类型

字符、数字、特殊符号

–char():

固定长度,以空格填补多余长度空间

–varchar():

可变长长度,不以空格填补多余长度空间

–nchar():

unicode固定长度

–nvarchar():

unicode可变长长度

–unicode国际标准码:

双字节模式(固定每个字符16bit)

一个汉字占两个字节(16bit)

一个字母占两个字节(16bit)

4.语法:

1)创建表

createtable表名

2)修改表

altertable表名

3)删除表

drop/deletetable表名

4)将查出的信息放入新表

Select*into新表名from旧表名

7)添加的信息必须满足现有表结构

Insertinto现有表select*from旧表名

5.drop和delete、truncate的区别:

drop是删除表,而delete和truncate是删除表中记录

5.数据操作语言DML

select从表或视图中检索数据

insert将数据插入到表或视图中

update修改表或视图中的数据

delete从表或视图中删除数据

第五章基础查询

1.select语法结构

基本语法:

select字段名

From目标表

Where条件

【例】查询学生成绩数据库(student_score)学生情况表(Member)中的所有列。

usestudent_score

select*

fromMember

2.Where条件限定语法的用法

基本语法:

use数据库名

Select字段名

From目标名

Where字段名=“内容”

Go

【例】查询Member表中Mname为马德保的相关信息

usestudent_score

select*

fromMember

whereMname='马德保'

go

3.模糊查询like

1)基本语法:

select字段名

From目标名

Where目标名like条件

【例】查找学生姓名以‘刘’开头的所有学生信息

usestudent_score

select*

fromMember

whereMnamelike'刘%'

go

2)%代表所有可能的情况

3)%的使用

%N%表示包含N

N%表示N开头

%N表示N结尾

4)“^’代表不、不是、不以的意思

4.Or/and/not的逻辑运算

【例】将Mname以’刘’开头,或总学分为60,且专业名为网络互连的学生Mname

usestudent_score

selectMname,Mtotalscore,MMajor

fromMemberwhereMnamelike'刘%'orMTotalscore=60

andMMajor='网络互连'

go

5.Between…and在…范围之内

【例】查找总学分为60和70之间的学生所有信息

usestudent_score

select*

fromMember

whereMTotalScorebetween60and70

go

6.In=or或

【例】查找总学分为70和80的所有学生信息

usestudent_score

select

fromMember

whereMtotalscorein('70','80')

-------whereMtotalscorenotin(‘70',‘80')

go

6.Isnull为空的查询

【例】查询所在地区为空的学生姓名

usestudent_score

selectMaera,Mname

fromMember

whereMaeraisnull

go

7.Orderby排序:

asc升序;desc降序

【例】查找学生的总学分以升序排列,出生日期以降序排列的学生姓名和学号

usestudent_score

selectMname,Mbirth,Mtotalscore,MID

fromMember

orderbyMtotalscoreasc,Mbirthdesc

go

8.distinct数据过滤和消除重复记录

【例】查询student_score数据库中Member表中的总学分,但是不能有重复

usestudent_score

selectdistinctMtotalscore

fromMemberorderbyMtotalscore

go

9.Top和top…withties的用法

【例】求学分最高的5位学生的信息,并且返回与第5并列的学生信息

usestudent_score

selecttop5withtiesMID,Mtotalscore

fromMemberorderbyMtotalscore

go

注:

withties必须与orderby连用

10.as取别名

【例】在student_score数据库中的Member表中对Mname取别名为a,专业名为b,并在补一列为性别,并取别名为c

usestudent_score

selectMnameasa,MMajorasb,‘性别’asc

fromMember

go

第六章高级查询

1.联接定义:

根据各个数据库表之间的逻辑关系从二个或多个数据表中检索数据

2.联接分类

内连接:

基本内连接、多表连接、自连接

外连接:

左外连接、右外连接、全外连接

交叉连接

3.左外连接、右外连接、全外连接的含义

leftouterjoin左外连接(join左边的表),结果集中除了包括满足连接条件的行外,还包括左表所有行

rightouterjoin右外连接(join右边的表),结果集中除了包括满足连接条件的行外,还包括右表所有行

fullouterjoin全外连接,结果集中除了包括满足连接条件的行外,还包括两个表的所有行

4.内连接概述

1)用…innerjion…on…语句进行连接

Jion指定需要连接的数据表

On指定连接条件(inner可省略)

【例】查找选修了01课程且成绩在30分以上的学生编号和成绩

usestudent_score

selectM.MID,S.score

fromMemberMjoinScoreS

onM.MID=S.MID

whereCID='01'andscore>=30

go

5.外连接语法:

select字段名1,字段名2…字段n

From表1leftouterjoin表2

from表1rightouterjoin表2

from表1fullouterjoin表2

Go

【例】查找所有学生信息及其考试成绩,若该生未参加任何考试,也列出其信息

usestudent_score

selectM.*,S.CID,S.score

fromScoreSrightjoinMemberM

onM.MID=S.MID

go

6.交叉连接语法:

select字段1,字段2

From表1crossjoin表2

Go

【例】返回Member表和Score表所有可能记录的组合

usestudent_score

selectM.MID,M.Mname,CID,Score

fromMemberMcrossjoinScoreS

go

第七章函数

1.函数:

是一段特殊的程序代码,它能对查询结果进行一定的操作

函数的作用:

就是使用户不必书写太多的程序代码即可完成复杂的操作

2.SQLServer函数类型包括系统函数、字符串函数、日期时间函数、聚合函数等

3.系统函数对SQLServer服务器和数据库对象进行操作,返回服务器配置和数据库对象数值等信息

CURRENT_TIMESTAMP()可返回系统当前日期和时间,类型为datetime

HOST_NAME()返回主机名称

SYSTEM_USER返回当前系统用户

USER_NAME()返回id标识指定的用户名称

db_name()返回当前会话的数据库名称

4.聚合函数功能

1)Sum()计算表达式所有值之和

【例】求选修01课程的学生的总成绩。

usestudent_score

selectsum(score)as'课程01总成绩'

fromScore

whereCID='01

go

2)Avg()计算表达式的平均值

【例】求选修10课程的学生的平均成绩。

usestudent_score

selectavg(score)as'课程10平均成绩'

fromScore

whereCID='10'

go

3)Count(列名)计算表达式中非空值的数量

【例】求学生的总成绩

usestudent_score

selectcount()as‘学生总成绩’

fromMember

go

4)count(*)计算表达式中所有值的数量

【例】求学生的总人数

usestudent_score

selectcount(*)as‘学生总人数’

fromMember

go

5)Min()计算表达式的最小值

【例】求选修00课程的学生的最低分

usestudent_score

selectmin(score)as'课程00的最低分'

fromScorewhereCID='00'

go

6)Max()计算表达式的最大值

【例】求选修11课程的学生的最高分

usestudent_score

selectmax(score)as'课程11的最高分'

fromScorewhereCID='11'

go

第八章数据的完整性

1.数据库完整性:

是指存储在数据库中数据的一致性和标准性

2.数据完整性的类型

1)域(列)完整性:

指定对列的一组有效值并决定是否允许有空值。

也可以通过在一列中限定数据类型,格式和可能值的范围来强制数据完整性。

2)实体(行)完整性:

要求表中所有的行具有唯一的标识符,例如主关键字值。

3)参照完整性:

确保维持主关键字和外部关键字的关系

3.约束的概念:

确保在列中输入有效的值并维护表之间的关系。

4.约束的类型

完整性类型

约束类型

说明

DEFAULT

指定列的默认值

CHECK

指定列的允许值

NULL

指定是否允许NULL

实体

PRIMARYKEY

唯一标识每一行

UNIQUE

防止非主键重复

引用

FOREIGNKEY

定义值必须与此表的主键匹配的列

5.default功能:

执行insert语句时将默认值自动插入约束所在的列

语法:

altertable表名

addconstraint约束名

default(默认值)

for字段名

go

【例】修改数据库student_score中的Menber表,将性别的默认值设置为’男’

usestudent_score

altertableMember

addconstraintdf_sex

default('男')forMsex

go

6.check功能:

check(检查约束),每次执行Insert/update语句时,该约束要校验数据的合法性

语法:

altertable表名

addconstraint约束名

check(条件)

go

【例】修改数据库student_score中的Score表,使成绩限制在0~100之间

usestudent_score

altertableScore

addconstraintck_cj

check(score>=0andscore<=100)

go

7.primarykey功能:

primarykey(主键约束),一个表中只有能一个pk,不能有空值,不能有重复值;pk所在列的值能够唯一标识此行;能与fk关联,pk所在表为主表;同时创建一个与PK约束名的簇索引。

语法:

altertable表名

addconstraint约束名

primarykey(字段名)

go

【例】修改数据库student_score中的kc表,将课程号设置为主键

usestudent_score

altertableCourse

addconstraintpk_kch

primarykey(CID)

go

8.Unique功能:

unique(唯一约束),指定在同一列中的两行不能有相同的值,只能有一行为空值,该约束自动创建一个与约束同名的非簇索引,在插入/修改时自动执行。

语法:

altertable表名

addconstraint约束名

unique(字段名)

go

【例】修改数据库student_score中的Course表,将课程名设置为unique约束

usestudent_score

altertableCourse

addconstraintun_kcm

unique(Cname)

go

9.FOREIGNKEY功能:

参照完整性确保维持主关键字(在主表中)和外部关键字(在辅表中)的关系。

语法:

altertable表名1

addconstraint约束名

foreignkey(字段名)

references表名2(字段名)

go

【例】修改数据库student_score中的Score表,将课程号设置为外键

usestudent_score

altertableScore

addconstraintfk_kch

foreignkey(CID)

referencesCourse(CID)

go

10.删除约束

语法:

altertable表名

dropconstraint约束名

【例】删除Menber表的fk_xh约束。

usestudent_score

altertableScore

dropconst

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1