SQL 语句2分析Word格式文档下载.docx

上传人:b****4 文档编号:6402489 上传时间:2023-05-06 格式:DOCX 页数:31 大小:26KB
下载 相关 举报
SQL 语句2分析Word格式文档下载.docx_第1页
第1页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第2页
第2页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第3页
第3页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第4页
第4页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第5页
第5页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第6页
第6页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第7页
第7页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第8页
第8页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第9页
第9页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第10页
第10页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第11页
第11页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第12页
第12页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第13页
第13页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第14页
第14页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第15页
第15页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第16页
第16页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第17页
第17页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第18页
第18页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第19页
第19页 / 共31页
SQL 语句2分析Word格式文档下载.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SQL 语句2分析Word格式文档下载.docx

《SQL 语句2分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SQL 语句2分析Word格式文档下载.docx(31页珍藏版)》请在冰点文库上搜索。

SQL 语句2分析Word格式文档下载.docx

例如:

创建学生管理系统数据库,主数据文件'

d:

\ljg\xsglxt.mdf'

文件大小4MB、最大空间6MB日志文件学生管理系统LOG大小3MB位置:

'

\ljg\xsglxtlog.ldf'

createdatabase学生管理系统

onprimary(name=学生管理系统,

logon(name=学生管理系统log,

size=3mb)

go

2.选择数据库(打开数据库)

格式:

use数据库

功能:

将数据库打开作为当前数据库

use学生管理系统

usemsdb

3.查看数据库中全部表信息

格式sp_help

4.查看指定数据库的详细信息

sp_help数据名

例如:

sp_helpstudent

5.查看数据库上的所有数据文件和日志文件

sp_helpfile

Go

6.查看当前数据库上的组文件

sp_helpfilegroup

7.数据库的改名

sp_rennameda老数据库名,新数据库名

例如:

sp_renamedb'

学生管理系统'

'

学生档案管理'

8.删除数据库

dropdatabase数据库名

删除指定数据库(当前数据库不能删除)

dropdatabase学生管理系统

 

二:

数据表的操作

1.数据表的定义

createtable数据表名

列名1数据类型(宽度)char(9)列级完整性约束条件

列名2数据类型(宽度)char(9)列级完整性约束条件

列名3数据类型(宽度)char(9)列级完整性约束条件

列名N数据类型(宽度)char(9)列级完整性约束条件

表级完整性约束条件)

建立表的结构,设置列级完整性约束条件,表级完整性约束条件

说明:

1.列级完整性条件是针对属性值设置的限制条件,包括

(1)NOTNULL或NULL

NOTNULL,不容许字段为空,NULL:

容许字段为空

字段为空的含义是该属性的值不详、含糊、或无意义

对于关系的主属性必须限定为NOTNULL,以满足实体完整性,其他可以为NULL

(2)唯一性约束条件unique

不容许该列中出现重复的属性值

(3)默认值约束条件DEFAULT

DEFAUTL<

约束名>

〈默认值〉FOR《列名》

DEFAULTC120FOR年龄

(4)检查约束条件CHECK

他通过约束条件表达式设置列值应该满足的条件

CONSTRAINT<

约束名>

CHECK<

约束条件>

列级约束条件只约束一个列,如果涉及多个列就是表级约束条件

2.表级约束条件涉及关系中多个列的限制,包括

(1)惟一性约束条件UNIQUE

要求列的值不能有重复的使用

(2)primaryKEY实体完整性约束

用于定义主码,他能保证主码的惟一性和非空性,直接写在主码后

primaryKEY<

列,或列的组合>

CONSTRAINTBBprimaryKEY<

学号,课程号>

(3)FOREIGNKEY外码和参照表约束

FOREIGNKEY<

外码>

REFERENCES<

被参照表>

(《与外码对应的主码》)

CONSTRAINTC6FOREIGNKEY(学号)

REFERENCES学生(学号)

2.查看表的详细信息(属性的信息)

Sp_help表名

1.createtablestudent(学号char(5)notnullunique,惟一不为空

姓名char(20)notnull,

年龄smallint,

性别char

(2),

所在系char(20),

constraintc3check(性别in('

'

女'

)))对性别的约束

查看表达信息sp_helpstudent

例如2:

createtablecourse(课程号char(5)primarykey,

课程名char(20),

先行课char(5))

sp_helpcourse

例如3:

createtablesc(学号char(5),

课程号char(5),

成绩smallint,

constraintc4check(成绩between0and100),

constraintc5primarykey(学号,课程号),

constraintc6foreignkey(学号)referencesstudent(学号),

constraintc7foreignkey(课程号)referencescourse(课程号))

3.修改表的结构

(1.)删除约束条件

altertablesc

dropc5

(2.)增加约束条件

addconstraintc1check(性别in(‘男’,’女’)

addconstraintc1primarykey(学号)

addconstraintc1foreignkey(学号)referencesstudent(学号)

(3.)增加新的列

addcccchar(4)

(4)更改列的数据类型

altercolumncccsmallint

4.删除表

DROPTABALE<

表名 

〉RESTRICT/CASCADE

删除指定的表

RESTRICT选项删除有条件的

若删除的表不能被其他的表引用(CHECKFOREIGKEY),不能有试图,等,如果有这些依赖这个表则不能删除。

CASCADE:

没有限制的删除,删除时相关的依赖对象都被删除。

droptablesc

droptablecourse

5.建立索引

create【unique】【CLUSTERED】index索引文件名

onstudent(学号desc,年龄asc)

在指定的表上建立索引,

Unique惟一索引

CLUSTERED聚簇索引:

索引顺序与表的物理顺序一致。

DESC降序ASC升序

1建立惟一索引

createuniqueindexaaaa

on(关于)student(学号desc,年龄asc)

2建立聚簇索引

createclusteredindexbbbb

6.删除索引

DROPINDEX<

表名。

索引文件名〉

dropindexstudent.bbbb

删除时要先指定表名然后时索引名

三:

数据更新

1.插入数据

insertinto表名(属性1,属性2属性3,属性4,属性N)

values(常量1,'

常量2'

常量3'

常量4'

常量N'

向指定的表中插入一条记录

常量为字符时要加单引号,数值数据不加单引号

1.insertintostudent(学号,姓名,年龄,性别,所在系)

values(95001,'

李勇'

20,'

计算机'

2.insertintosc(学号,课程号,成绩)

values('

95004'

3'

96)

2.插入子查询的结果

子查询;

createtableage(avg_agesmallint)

insertintoage(avg_age)

selectavg(年龄)

fromstudent

3.修改数据

update数据库

set列名=值

where条件'

更改某一个值或某一列值

1更改某一个值

select*fromstudent

updatestudent

set年龄=25

where姓名='

刘晨'

2更改某一列的值为一个值

select*fromage

updateage

setavg_age=40

4.删除数据

DELETE

from数据表

WHERE条件

功能:

删除数据表中符合条件的记录

1.删除AGE表中的所有记录

delete

fromage

select*fromage

2.删除符合条件的记录

fromstudent

where年龄=25

四:

数据查询

1.查询语句

SLECTALL/DESTINCT字段1,字段2,字段3,字段N

FROM表或视图图(可以多个,用逗号分割)

WHER条件

GROUPBY字段1【HAVING条件表达式】

ORDERBY字段ASC/DESC

根据WHERE条件,从FROM指定的表或视图中找出满足条件的元组(记录),再按SELECT的子段,选出记录的属性值形成结果表

2.单表查询字段的操作

1选择表中的若干列

select学号,姓名

fromstudent

查看全部的列

select学号,姓名,性别,所在系

select**全部列

fromstudent

查询计算值

select姓名,年龄,2010-年龄

例如4:

增加特殊说明

select姓名,年龄,'

出生日期:

2010-年龄

出生日期不是表的字段,只起说明作用

3.选择表中若干元组记录的操作

(1)取消取值重复的行

selectdistinct先行课

fromcourse

(2)查找满足条件的记录

A.比较操作

比较符号>

>

=,<

=,!

=,<

>

不等于,!

不大于,!

<

不小于

1.查找年龄大于等于20的所有学生

select*

where年龄>

=20

2.查找年龄大于20的男同学

select*

=20and性别='

3.查询年龄小于20学生的姓名、性别和学号

select姓名,年龄,性别

where年龄<

20

4.select学号,课程号,成绩

fromsc

where成绩<

90

B。

确定范围

BetweenAND在两者之间

NOTBETWEENAND不在两者之间

BETWEEN是范围的低值

AND时范围的高值

例如1:

查询年龄在20到23之间的学生的姓名、所在系和年龄

select姓名,所在系,年龄

where年龄between20and23;

例如2:

查询成绩不在88到96之间的学生的学号、课程号和成绩

select学号,课程号,成绩

fromsc

where成绩notbetween88and96;

C、确定集合

In和notin用于查找属性值在或不在指定的集合中

查找计算机、英语系,政治系的所有学生

where所在系in('

英语'

政治'

查找非计算机、英语系所有学生

where所在系notin('

D:

字符匹配(模糊查询)

LIKE用来进行字符串的匹配

NOTLIKE‘匹配的字符

查询指定属性列的值与《匹配的字符》相匹配的记录

匹配的字符可以是一个完整的字符串,也可以用通配符%和—

%:

代表任意长度的字符A%BA开头B结尾的字符串

__:

代表单个任意字符A_A开头的任意两个字符

例如1:

查找学号95001的学生

where学号like'

95001'

查找姓刘的学生的学号,姓名,和年龄

select学号,姓名,年龄

where姓名like'

刘%'

查找姓张的学生的学号,姓名,和年龄

select学号,姓名,年龄

张__'

查找不姓张的学生的学号,姓名,和年龄

where姓名notlike'

E:

多条件查询与或非查询

例如:

查询计算机系统年龄大于20的学生

select*

where所在系in('

)and年龄>

例如2:

查找计算机系、英语系的所有学生

where所在系='

or所在系='

select*

or年龄>

F:

几个特例

//查询前N行的记录

selecttop3*

selecttop5课程号,成绩

fromxk

//给字段起别名

selecttop3课程号as小命,成绩as小洞

//查询结果中带有提示信息

selecttop3课程号as课号,'

考试成绩:

成绩

//求每个人的总分,最高分,最低分,平均分

select学号,sum(成绩)as考试总分,max(成绩)as最高分,min(成绩)as最低分,avg(成绩)as平均分

groupby学号

orderby考试总分desc,最高分asc

//模糊查询

//查询第二个字是立的姓名

select姓名,年龄,所在系

where姓名like'

_立%'

//查询第二个字是小的姓名

_小%'

//查询张的姓名

张%'

//查询属性值为空的内容

insertintostudent(学号,姓名,年龄)values('

1007'

中国'

20)

1008'

泰国'

where性别isnull

//查询属性值不为空的内容

where性别isnotnull

4.ORDERBY排序

对查询的结果按照一个或多个属性列升序或降序排列

查询选课表中的所有记录按成绩降序排列

orderby成绩desc

查询选课表中选修3号课程的所有记录按成绩降序排列

where课程号='

orderby成绩desc

查询选课表中的所有记录先按选课号升序排列再按成绩降序排列,

orderby课程号,成绩desc

5.聚集函数的使用

1).SQL的聚集函数及功能

Count(distinct/all*):

统计记录的个数

Count(distinct/all)列名:

统计一列中值的个数

Sum(distinct/all)列名:

计算一列值的总和

Avg(distinct/all)列名:

计算一列值的平均

Max(distinct/all)列名:

计算一列值的最大值

Min(distinct/all)列名:

计算一列值的最小值

distinct:

计算时取消指定列中重复的值

/all:

计算所有的值

查询学生总人数

Select'

学生人数'

count(*)

查询选修了课程的人数

select'

选修了课程的人数'

count(distinct学号)

例如3:

计算选修3号课程的平均成绩

selectavg(成绩)

where课程号in('

例如4:

计算95001学生的总成绩、平均成绩和最高分和最低分

selectsum(成绩),avg(成绩),max(成绩),min(成绩)

where学号='

6.groupby分组语句

按照某一列或多列的值分组,等值为一组。

分组后聚集函数将作用于每一个组,

查询各个课程号,及选修的人数

selectcount(学号),课程号

groupby课程号

查询每个学生的选修课程数

select学号,count(课程号)

groupby学号

查询选修课程大于2门的学生的学号

select学号,count(课程号)

havingcount(*)>

2

HANING短语对分组后的结果,从中选择满足条件的组

//分组操作

//计算男女生的人数

selectcount(年龄)as人数

groupby性别

//计算每个系男女生的人数

where所在系in('

//求计算机系人数

selectcount(年龄)as人数

groupby所在系

having所在系='

7.使用compute来进行分组小计,或计算总计,并将结果显示在查询结果的下方

//计算成绩>

80分的平均成绩

where成绩>

80

computeavg(成绩)

computesum(成绩)

computecount(成绩)

computemax(成绩)

computemin(成绩)

8.使用computeby来进行分类汇总计,第一步:

对分类关键字先排序,第二步用compute表达式by分类关键字进行分类汇总

例:

//分类汇总计算每个人的总分

select学号,成绩

orderby学号//排序

computesum(成绩)by学号//分类汇总

//按性别计算年龄的总分

select性别,年龄

orderby性别

computesum(年龄)by性别

//计算每个系所有学生的平均年龄

select所在系,年龄

orderby所在系

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

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2