数据库笔记Word格式.docx

上传人:b****6 文档编号:20932344 上传时间:2023-01-26 格式:DOCX 页数:20 大小:509.16KB
下载 相关 举报
数据库笔记Word格式.docx_第1页
第1页 / 共20页
数据库笔记Word格式.docx_第2页
第2页 / 共20页
数据库笔记Word格式.docx_第3页
第3页 / 共20页
数据库笔记Word格式.docx_第4页
第4页 / 共20页
数据库笔记Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数据库笔记Word格式.docx

《数据库笔记Word格式.docx》由会员分享,可在线阅读,更多相关《数据库笔记Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

数据库笔记Word格式.docx

路径:

磁盘上存储的具体位置建立后的库为空库

数据文件扩展名:

mdf日志文件扩展名:

ldf

只有一个为mdf其他为ndfmdf为主数据文件(数据信息)

系统应用是无法考走复制此时应分离操作

分离操作student→右键任务→分离(可以考走文件)

数据库→右键→附加→添加

四种数据库备份方式

1.完全备份

2.差异备份

3.事务日志备份

4.文件和文件组备份

必须做完完全备份在做差异备份

备份:

库名→右键任务→备份→备份文件扩展名为bak

还原:

库名→右键任务→还原→源设备(找到原文)勾选前面对号

备份设置:

服务器对象→备份设备→右键新建备份设置备份→删除目标→添加aaa设备

添加到aaa:

右键→任务→还原→数据库→目标数据库→源设备→备份设置→aaa

第三课

超级用户进入管理者

验证:

安全性→登录名→右键新建任务→SQLServer身份验证连接→SQLServer→登录名:

li(普通用户连接不能创建数据库新建账户)

Window身份验证登录名必须Windows下存在账户(点击搜索)

添加Windows用户:

开始→设置→控制面板→管理工具→计算机管理→本地用户和组→用户→新建用户

登录名→Windows身份验证→搜索→高级→立即查找→确定

Windows验证要求:

Windows账户连接要求启动Windows用这个用户启动才能进入数据库

分组:

安全性→服务器角色(对登录账户分组)

用户名→右键属性→服务器角色(进行分组)

服务器角色

执行服务器级管理操作用户权限集合

数据库→MySchool→安全性→用户→新建用户→登录名→查找→浏览→找到已有的(连接已有用户或创建用户)

登录名→属性→用户映射

数据库角色:

数据库角色→数据库→安全性→角色→数据库角色

要求:

增删改查

权限:

MySchool→右键属性→权限(数据库权限)→数据库→Myschool→表→属性→权限(对表进行操作)

第四课

建立学生数据库表

能够处理二维表

1、建立新数据库:

school→表→新建表→名称;

→宽度(列)类型(存储)bit(逻辑性)

定义表的内容:

定义表的结构

Nvarchar:

动态字符型

school→表→dbo.student

loginpwd密码

brondate:

日期

设置默认值:

sex→线面框默认值

逐渐:

studentNO→右键→设置主键

主键列唯一不能重复(主键约束)→

Len测字符长度

第五课

检查约束

约束:

表→修改→LoginPwd→右键CHEK约束→表达式

Len(LoginPwd)>

=6(密码大于等于6位len测字符串长度)

一列可以添加多个约束。

对任何列都可以添加

邮件要求emaillike‘%@%’(like运算符)表示时用’’%任意字符

标识列:

表→修改→第一行→右键插入列→id→标识规范→是标识规范不用写、自动生成、唯一的标识

第六课

数据库表拆分的越小越好

关系图→myschool→数据库关系图→新建数据关系图→选定文件→添加[0-9]只能在0到9之间(约束条件号码)对已有数据不影响时可在约束时在表设计器→在创建或重新启用时检现有数据更改为否(即不影响更改数据)

Select后面可以是列名可以是表达式

 

SQL语言完整性约束:

1、唯一约束:

unique

2、主键约束:

primarykey

3、标识列:

identity

4、检查约束:

check

5、外键约束:

foreignkey

6、默认值约束:

defauit

7、不为空约束:

notnull

数据库:

database

表:

table

主文件:

filespec

事务日志文件:

filegroup

显示数据库文件:

on

显示日志文件:

logon

文件名:

name

存储路径:

filename

文件占据空间:

size

最大存储空间:

maxsize

文件增长量:

filegrowth

连接:

references

列:

column

删除表:

dropcloumn(表名行)

删除文件:

1、指定位置:

alterdatabase文件名2:

删除:

removefile文件名

更改文件:

更改:

modifyfile文件名

添加:

add

切换:

use

连接:

约束关键字:

constraint

选定目标关键字:

select

不重复关键字:

distinct

简化关键字:

in与where一块使用

最左,右关键字:

top

指定表关键字:

from

改名关键字:

as

插入数据关键字:

insert和intovalues一块使用

选定位置关键字:

into

具体列关键字:

values

更新数据关键字:

update和setwhere一块使用

选定记录关键字:

set

选择列关键字:

where

删除数据关键字:

delete和fromwhere一块使用

指定位置关键字:

查询排序关键字:

orderby

选择前n行:

升序排序:

desc

降序排序:

asc

查询分组关键字:

groupby

替换关键字:

replace

筛选关键字:

having

求和函数:

sum

求平均数:

avg

计算函数:

count

求最大值函数:

max

最小值函数:

min

允许用户操作数据库:

grant

拒绝用户权限:

deny

废除用户权限:

revoke

拒绝或废除用户权限语句:

cascade

SQL高级查询

连接具体位置关键字:

交叉联接关键字:

crossjojn

内联接:

innerjoin(具体到列)

左外联接:

left(左)join

右外联接:

right(右)join

查询具体条件:

exists(也可以看作一次测试)

联合查询:

unlon

显示全部:

all

字符型加引号

数据库第一种语句:

Insertintostudent(列名)

Values(列命所添加的数据)

数据库第二种语句:

UPDATE(对表中已有的数据进行修改)

WHERE(更新条件)

UPDAT表名SET列名=更新值

[WHERE](更新条件)

Int整型修改数据不加引号

例如:

updatestudentsetSex='

女'

whereGradeId=1

其中的GradeId(年级为整型所以1不加引号)

Updatestudentsetgradeid=gradeid+1

数据库第三种语句:

Delete(form→可加可不加)+列表名+where+列名=’’

导出数据:

把数据转换成不同格式的文件也可以把其他的文件转换到数据库文件中来

选择要导出的表

单击下一步

数据库第四种语句:

查询语法:

SELECT<

列名>

FORM<

表名>

[WHERE<

查询条件表达式>

]过滤条件

[ORDERBY<

排序的列名>

[ASC或DESC]]排序条件

usestudb

go

select*fromstudent

--*表示所有可查询所有列

selectStudentName,sex,Emailfromstudent

--表示查询想要查询的列

select*fromstudentwheresex='

男'

--表示查看所有性别为男的记录

selectStudentName,sex,EmailfromstudentwhereBornDate>

'

1990-12-31'

--查询年后出生的学生姓名,电话,出生日期。

select*fromstudentwhereSex='

andGradeID=2

--查询男生二年级学生的信息

selectstudentname,phonefromstudentwherePhonelike'

135%'

--查询电话号码以开头的信息

--下面是第二种方法

--selectstudentname,phonefromstudentwhereleft(phone,)='

135'

select*fromResultwhereStudentResult>

=60andStudentResult<

=80

--对Result表,查询寻成绩在到之间的学生信息

select*fromstudentwhereyear(BornDate)='

1991'

--year(BornDate)month(BornDate)day(BornDate)

--hour()minute()second()week

--查询年出生的学生信息。

Orderby+被排序的列名(有升序降序之分)+Desc降序

Orderby+被排序的列名(有升序降序之分)+Asc升序

Charindex寻找指定的字符串在另一个字符串的起始位置

Selectcharindex()

Len字符串长度

Upper转换为大写字符串

Getdate获得当前的系统日期

Dateadd添加日期

Selectdateadd(mm,4,‘01/01/2009‘)

返回05/01/2009

Datediff两个日期的间隔部分

Datename日期指定名字字符串形式

Datepart日期指定部分的指定形式

/*SelectDatepart(day,’01/05/2000’)*/

SelectDatepart(day,borndate)

Month

Year

修改列表名

selecttop20percentstudentname,addressfromstudent

--①取学生表前五名百分比写法

selecttop5studentname,addressfromstudent

--②取学生表前五名

selecttop5studentnameAS姓名,addressAS地址fromstudent

--将输出的列明改为中文AS加上自己要改变的列表中文名as可以省略

selecttop5studentnameAS姓名,address地址,男=sexfromstudent

--注意中文列表名与左右无关例男=sex

SELECT'

姓名是:

+StudentName学生姓名,Gradeid+2年级增加fromstudent

--SELECT'

写入字段名'

+StudentName逐个字段名称,Gradeid+2写入字段名fromstudent

selecttop3+StudentName学生姓名,Addressas地址,学号=studentnofromstudentwhereAddress<

>

北京'

--查询前三个不是北京的学生的学号,姓名,地址,使用列别名列名条件后必须加from

select*fromstudentwhereEmailisnull

--where后面跟条件isnull判断条件是否为空

selecttop1studentname学生姓名,gradeid年级fromstudentorderbyBornDateasc

--查询年龄最小的学生姓名及年级

select*fromResultwherestudentNo=10011orderbyExamDateasc

--查询学号的学生参加所有考试信息,按考试时间前后次序显示asc升序desc降序

第十章:

模糊查询:

通配符:

_(代表一个字符)

%(代表多个字符)

[](限定范围的指定范围内的一个字符)

Clike‘9w0[0-3]’

9w01或9w02[]内代表一个字符

[ˆ](不在指定范围内的一个字符)

DLIKE’%[A-D][^1-2]’9W03或9W07等

共四个

凡是模糊查询用likelen字符串长度

Betweenand在什么什么之间

Or或者in在什么什么范围内

四月5日

selectstudentname,emailfromstudentwhereEmaillike'

%@'

--查询email地址域名是.com的学生姓名和邮箱

select*fromstudentwhereleft(Phone,6)='

135126'

orderbyPhoneasc

--查询电话以开头的学生信息

select*fromstudentwherephonelike'

135126[0-9][0-9][0-9][0-9][0-9]'

--查询电话以开头的学生信息默认是升序可不写asc(升序)

SELECTSTUDENTNO,STUDENTRESULTFROMResultWHEREStudentResultBETWEEN60AND80

--查询学生的成绩在到之间并显示学生的学号和成绩

select*fromstudentwhereBornDatebetween'

1991-7-1'

and'

1992-6-30'

--查询出生日期在1991-7-1至1992-6-30之间的学生信息

--查询直辖市两种方法

select*fromstudentwhereAddress='

orAddress='

上海'

天津'

重庆'

select*fromstudentwhereAddressin('

'

'

四月8日(聚合函数)

Sum求和函数

Avg求平均值函数

Min最小

MaX最大

Count统计个数

USEstudb

GO

selectSUM(studentresult)总分,avg(studentresult)平均分fromresult

--查询所有学生总分平均分并将列名改为别名

selectmax(studentresult)最高分,min(studentresult)最低分fromresultwhereExamDate='

2009-2-17'

--查询-2-17考试成绩的最高分最低分

selecttop1studentresultfromResultorderbyStudentResultdesc

--查询-2-17考试成绩的最高分

selecttop1studentresultfromResultorderbyStudentResultasc

--查询-2-17考试成绩的最低分

selectCOUNT(*)总人数fromstudent

--查询表内总人数

selectCOUNT(*)男生总人数fromstudentwhereSex='

--统计男生的人数

selectAVG(studentresult)平均分fromResultwhereSubjectNo=2andExamDate='

--查询-2-17考科目号为的学生成绩的平均值

4月13号

链接查询和分组查询

Select。

from

Where。

Groupby。

Selectcount(*)as人数,sgradeas年级

Fromstudents

GroupbySgrade

多列分组

Go

查询学生表的总人数

selectGradeId年级,COUNT(*)总人数fromstudentgroupbyGradeId

--查询学生表各年级总人数

--查询学生表男生和女生人数

selectGradeId年级,Sex性别,COUNT(*)总人数fromstudentgroupbySex,GradeId

--查询学生表各年级男生和女生的人数

selectExamDate,AVG(StudentResult)平均分fromResultgroupbyExamDate

--查询不同考试时间的学生平均分

selectSubjectNo科目名,COUNT(*)总人数fromResultwhereStudentResult>

=60groupbySubjectNo

--统计不同科目及格的学生人数

selectGradeId年级,COUNT(*)总人数fromstudentwhereYEAR(BornDate)>

1990-12-31groupbyGradeIdorderbyGradeIddesc

--查询以后出生的不同年级学生人数,并按年级降序排列

4月15日

Where对整体表而言having对筛选后的条件而言

selectAVG(StudentResult)科目平均分fromResultgroupbystudentNo

--统计不同科目的平均分

selectstudentNo科目,AVG(StudentResult)科目平均分fromResultwhereStudentResult>

=60groupbystudentNo

--统计不同科目及格成绩的平均分

selectSubjectNo科目,AVG(StudentResult)科目平均分fromResultgroupbySubjectNohavingAVG(StudentResult)>

70

--统计科目及格成绩大于平均分的科目

selectgradeid年级,COUNT(gradeid)总人数fromstudentgroupbygradeidhavingCOUNT(gradeid)>

2

--统计人以上的年级及年级总人数

selectgradeid年级,COUNT(gradeid)总人数fromstudentwhereSex='

groupbygradeid

--统计男生不同年级的学生人数

selectSubjectNo考试科目,max(StudentResult)分数fromResult

whereExamDate='

groupbySubjectNo

havingmax(StudentResult)>

80orderbymax(StudentResult)asc

--统计-2-17考试最高分分以上的科目及最高分,并按最高分升序排列

内链接(innnerjoin表一on表二)

一、lectfrom表一innerjoin表二on

修饰条件加where

二、elect。

from表一,表二where

其中where起到连接作用

selectstudent.studentno,studentname,subjectno,studentresult

fromstudent,Result

wherestudent.StudentNO=Result.studentNo

andStudentResult>

80

--查询学生姓名科目号学生成绩student.StudentNO=Result.studentNo

--两个表都包含的需要特别指出添加条件用and连接

selecta.studentno,studentname,subjectno,studentresultfromstudentasa,Resultasswherea.StudentNO=s.studentNoandStudentResult>

80--可将表起别名用别名代替

fromstudentinnerjoinResultonstudent.StudentNO=Result.studentNo

whereStudentResult>

80

selectstudentname,subjectname,studentresult

fromstudentinnerjoinResultonstudent.StudentNO=Result.studentNo

innerjoinSubjectonresult.subjectno=Subject.subjectno

--查询成绩分以上成绩的学生姓名,科目名及成绩

sel

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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