Tsql语句大全.docx

上传人:b****7 文档编号:9061930 上传时间:2023-02-03 格式:DOCX 页数:14 大小:18.67KB
下载 相关 举报
Tsql语句大全.docx_第1页
第1页 / 共14页
Tsql语句大全.docx_第2页
第2页 / 共14页
Tsql语句大全.docx_第3页
第3页 / 共14页
Tsql语句大全.docx_第4页
第4页 / 共14页
Tsql语句大全.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Tsql语句大全.docx

《Tsql语句大全.docx》由会员分享,可在线阅读,更多相关《Tsql语句大全.docx(14页珍藏版)》请在冰豆网上搜索。

Tsql语句大全.docx

Tsql语句大全

T-SQL查询语句大全收藏

一、1)建立数据库:

例:

createdatabasestudent

onprimary

name=student_data,

filename=”c:

\student_data.mdf”,

size=2mb,

filegrowth=1mb,

maxsize=20mb

logon

name=student_log,

filename=”c:

\student_log.ldf”,

size=1mb,

filegrowth=10%,

maxsize=15mb

注:

create:

创建database:

数据库student:

学生(自己起的数据库名称)primary:

主要的name:

姓名filename:

文件路径size:

文件大小filegrowth:

文件增长maxsize:

文件最大存储容量log:

日志

2)修改已建好的数据库:

修改数据库建立时文件(主数据文件或日志文件)的大小,要更改文件最大值和文件增长速度,只需将size改为maxsize或filegrowth即可。

alterdatabasestudentmodifyfile

name='student_log',

size=4mb

注:

alter:

修改modify:

扩充

修改数据库,要增加数据库次要数据文件。

alterdatabasestudentaddfile

name='student_data2',

filename="e:

\student_data2.ndf",

size=1mb,

maxsize=10mb,

filegrowth=1mb

二、配置数据库

(1)为student数据库设置为“只读”属性

execsp_dboption‘student’,’readonly’,’true’

(2)为student数据库设置为“单用户”属性

execsp_dboption‘student’,’singleuser’,’true’

(3)为student数据库设置为“自动收缩”属性

execsp_dboption‘student’,’autoshrink’,’true’

注:

如对设置属性进行删除,则将’true’改为’false’

(4)手动式压缩数据库

dbccshrinkdatabase(student,10)

注:

exec:

执行配置sp_dboption:

存储

singleuser:

单用户readonly:

只读

autoshrink:

自动压缩dbcc:

收缩数据库命令

shrinkdatabase:

压缩数据库student:

数据库名

10:

允许数据库有10%的未用空间

三、删除数据库

dropdatabasestudent

注:

drop:

删除

四、创建用户定义数据类型

execsp_addtypeci,’nvarchar(20)’,null

注:

sp_addtype:

新数据类型

ci:

新数据类型名称

五、创建数据库表

usestudent

createtablestudent_inf

student_idintnotnull,

student_namenvarchar(15)notnull,

student_sexnvarchar

(1)notnull,

student_ageintnotnull

注:

use:

使用(如果没有选择在哪个数据库里建表,则必须使用此语句)student_inf:

数据表名student_id:

学号(列名1)int:

数据类型1notnull:

非空student_name:

学员姓名(列名2)nvarchar(15):

数据类型2student_sex:

学员性别(列名3)student_age:

学员年龄(列名4)

六、修改已建好的数据表

(1)修改列的数据类型

altertablestudent_infaltercolumnstudent_namenvarchar(10)null

注:

alter:

修改student_inf:

表名column:

列student_name:

列名nvarchar(10):

数据类型null:

允许为空

(2)删除一列内容:

altertablestudent_infdropcolumnstudent_sex

注:

drop:

删除student_sex:

所要删除的列名

(3)增加一列内容:

altertablestudent_infaddstudent_sexnvarchar

(1)null

注:

student_sex:

列名null:

增加列名允许为空

七、为了保证数据的完整性,需要添加的约束

(1)实体完整性:

1)主键:

primarykey

在创建时加主键约束:

createtablestudent_mark

student_idintnotnullprimarykey,

computer_marknvarchar(15)notnull,

math_marknvarchar

(1)notnull,

Chinese_markintnotnull

注:

student_mark:

表名computer_mark:

计算机成绩

math_mark:

数学成绩Chinese_mark:

语文成绩

在修改表时添加主键约束:

altertablestudent_infaddconstraintpkprimarykey(student_id)

注:

add:

加constraint:

约束

pk:

自己起的约束名称,方便于对约束进行删除

在修改表时删除主键约束:

altertablestudent_infdropconstraintpk

2)唯一约束:

unique

在创建时加唯一约束:

createtablestudent_mark

student_idintnotnullunique,

computer_marknvarchar(15)notnull,

math_marknvarchar

(1)notnull,

Chinese_markintnotnull

在修改表时添加唯一约束:

altertablestudent_infaddconstraintununique(student_id)

在修改表时删除唯一约束:

altertablestudent_infdropconstraintun

3)标识列:

identity(标识种子,标识增量)—从标识种子开始,每加一条记录就自增1,需在创建时加入,并可直接将此列定义为主键列。

createtablestudent_mark

student_idintidentity(1,1)primarykey,

computer_marknvarchar(15)notnull,

math_marknvarchar

(1)notnull,

Chinese_markintnotnull

(2)引用完整性

外键:

foreignkey

在创建时加入外键:

createtablestudent_mark

student_idintnotnullforeignkeyreferencesstudent_inf(student_id),

computer_marknvarchar(15)notnull,

math_marknvarchar

(1)notnull,

Chinese_markintnotnull

注:

references:

关系student_inf:

主键表student_id:

主键列

在修改表时加入外键:

altertablestudent_markaddconstraintfkforeignkey(student_id)referencesstudent_inf(student_id)

在修改表时删除外键约束:

altertablestudent_markdropconstraintfk

(3)域完整性

1)default约束:

当列值为空时,用default约束后面的值来代替空值

在建表时同时创建:

createtablestudent_mark

student_idintnotnull,

computer_marknvarchar(15)nulldefault‘unknow’,

math_marknvarchar

(1)notnull,

Chinese_markintnotnull

注:

unknow:

不知道

在修改表时加入default约束:

altertablestudent_markaddconstraintdedefault‘unknow’forcomputer_mark

在修改表时删除default约束:

altertablestudent_markdropconstraintde

2)check约束:

用条件来约束本列数据

在建表时同时创建:

createtablestudent_inf

student_idintnotnull,

student_ageintnotnullcheck(student_age>15andstudent_age<100),

student_namenvarchar(15)notnull,

student_sexnvarchar

(1)notnull

在修改表时加入check约束:

altertablestudent_infaddconstraintchcheck(student_age>15andstudent_age<100)

注:

连接两个条用:

and:

并且or:

在修改表时删除default约束:

altertablestudent_markdropconstraintch

八、删除数据库表

droptablestudent_inf

九、SQL里的条件表达式和逻辑运算符:

运算符含义

>大于

<小于

>=大于等于

<=小于等于

=等于

!

<>不等于

not逻辑非:

否定条件

and逻辑与:

连接两个条件且仅当两个条件都为真时返回TRUE

or逻辑或:

连接两个条件,但只要其中任一个为真就返回TRUE

使用方法:

一般放于where子句里进行条件限制的筛选

例:

a)select*fromstudent_infwherestudent_id=1

b)selectstudent_name,student_sex,student_agefromstudent_infwherestudent_age>15andstudent_age<20

注:

select:

查询显示

十、通配符

图示:

本博客不支持哦!

十一、向表中插入数据:

1)直接将值进行插入:

insertintostudent_mark(computer_mark,math_mark)

values(89,86)

2)用其他表中的数值直接插入到另一张表里:

insertintostudent_mark(computer_mark,math_mark)

selectq,wfromqwe

注:

q:

是表qwe的一列w:

是表qwe的一列

qwe:

是表名

十二、更新数据行:

updatestudent_marksetcomputer_mark=computer_mark+2wherestudent_id=3

十三、联接:

是为了联接显示最终结果,并非为两张表设置主外键

(1)内联接:

innerjoin…on…

筛选出两张表里的公共内容

select*fromstudent_infinnerjoinstudent_markonstudent_inf.student_id=student_mark.student_id

注:

在查询结果窗口中显示两张表中的所有内容于一张联合表中。

(2)外联接:

1)左外联接:

leftouterjoin…on…

以左表为主,显示与其相连的右表内容,若右表中此记录不存在则用null来代替:

select*fromstudent_infleftouterjoinstudent_markonstudent_inf.student_id=student_mark.student_id

2)右外联接:

rightouterjoin…on…

以右表为主,显示与其相连的左表内容,若左表中此记录不存在则用null来代替:

select*fromstudent_infrightouterjoinstudent_markonstudent_inf.student_id=student_mark.student_id

十四、删除数据

1)删除某一行数据:

deletefromstudent_markwherestudent_id=1

2)删除表里的所有数据:

deletefromstudent_mark

3)删除表里的所有数据:

truncatetablestudent_mark

附加:

以下内容为附加内容,有精力的同学可以加以参考,不做要求

3)完全外部联接:

fullouterjoin…on…

将两张表中所有行显示出来,如果没有匹配的内容则用null来补充。

select*fromstudent_inffullouterjoinstudent_markonstudent_inf.student_id=student_mark.student_id

(3)自联接:

本表与自身相连

假设要显示在一张表里,学员math_mark成绩相等的的两个学员的学号和语文成绩。

那么就讲这张表与自身相连所联接的列是math_mark,为了保证显示数据的不冗余,因此加了个条件student_mark.student_id

代码:

select

student_mark.student_id,student_mark.chinese_mark,student_mark1.student_id,student_mark1.chinese_markfrom

student_markinnerjoinstudent_markasstudent_mark1onstudent_mark.math_mark=student_mark1.math_markandstudent_mark.student_id

(4)交叉联接:

CROSSJOIN

在这类联接的结果集内,两个表中每两个可能成对的行占一行。

例如,在pubs数据库表中,通过作者CROSSJOIN出版商输出的结果集内,每个可能的作者/出版商组合占一行。

所得到的SQL可能象下面这样:

SELECT*

FROMauthorsCROSSJOINpublishers

附加内容结束

十五、查询语句:

select

1)查询全部行和列:

select*fromstudent_inf

2)查询一张表里的某些列:

selectstudent_id,student_name,student_agefromstudent_inf

3)查询一张表里的某一行:

selectstudent_id,student_namefromstudent_inf

wherestudent_id=3

十六、排序子句:

orderby…desc降序

orderby…升序

SELECTstudent_id,computer_mark,math_markFROMstudent_markORDERBYmath_mark,student_idDESC

十七、在查询中使用常量和运算符

SELECTstudent_name+':

'+student_name+'->'+student_name

FROMstudent_inf

注:

select后的列与加入符号的数据类型必须匹配。

十八、as子句:

为查询显示列起个列名

SELECTstudent_name+':

'+student_name+'->'+student_nameasname123

FROMstudent_inf

十九、top子句:

返回数据行:

top

1)限制返回数据行

SELECTTop3student_id,student_nameFromstudent_inf

2)限制返回行百分比

SELECTTop80Percentstudent_id,student_nameFromstudent_inf

二十、聚合函数

1)SUM:

求和函数

SELECTSUM(math_mark)AsTotal

Fromstudent_mark

2)AVG:

平均值函数

SELECTAVG(math_mark)Asavg

Fromstudent_mark

3)COUNT:

统计个数

SELECTCOUNT(math_mark)Asavg

Fromstudent_mark

4)max:

最大值

SELECTmax(math_mark)Asavg

Fromstudent_mark

5)min:

最小值

SELECTmin(math_mark)Asavg

Fromstudent_mark

二十一、分组子句:

groupby…

SELECTcount(math_mark)as[123]FROMstudent_markGROUPBYmath_mark

二十二、having子句:

用于设置groupby子句的条件

SELECTAVG(math_mark)as[123]FROMstudent_markwherestudent_id>3GROUPBYmath_markhavingAVG(math_mark)>70

二十三、其他模糊查询

1)Like运算符(之前已讲过)

2)In运算符:

in()

只返回和in后()内的值相匹配的项

SELECTstudent_name,student_ageFROMstudent_inf

WHEREstudent_idIN('2','4')

3)BETWEEN运算符:

between…and…

返回在between…and…之间的数值项

SELECTstudent_name,student_ageFROMstudent_inf

WHEREstudent_idbetween1and4

4)ISNULL运算符:

ISNULL

返回为空值的内容项

SELECTstudent_name,student_ageFROMstudent_inf

WHEREstudent_nameisnull

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

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

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

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