优秀课件笔记之数据库复习资料

本文详细介绍了Transact-SQL的数据定义、操纵及更新操作,包括建表、建视图、建存储过程等,同时涵盖了查询、插入、修改和删除数据的语法与使用场景。


1、本文所以内容来自 著名高校课件和学生笔记(校园里面经常见到有人高价买笔记)
2、任课教师不会提供参考文献,所以只能对作者表示感谢,如果引用了您的作品,可以用回复方式补充参考文献。
3、我不对文章无关问题进行解答,文章内容也比较难,我也很难解答您遇到的问题,如果发现BUG可以用回复方式帮我修正。
4、本课 数据库原理与应用
,适用于数据库原理与应用

本课其他部分的导航条见页面底部

优秀课件笔记之数据库复习资料

一、Transact-SQL的数据定义功能

1.建表:

createtable <表名> (

<列名> <数据类型>[列级完整性约束条件]

[,<列名> <数据类型>[列级完整性约束条件]][,…n]

[,<表级完整性约束条件>][,…n])

2.建视图

createview<视图名>[(<列名组>)]

[withencryption]

as<子查询>

[withcheckoption]

l其中withencryption选项表示对视图定义进行加密,使用户不能通过系统存储过程sp_helptext察看视图定义。

lWithcheckoption选项说明在对视图执行数据更新操作时,必须符合select子句中设置的条件。

3.建存储过程

createprocedure<存储过程名>

[@<参数名> <参数类型> [output]…]

as<SQL语句组>

存储过程的调用语句:

exec<存储过程名>[[@<参数名>=]参数]

二、Transact-SQL的数据操纵功能

select <查询列>

[into<新表名>]

[from<数据源>]

[where<元组条件表达式>]

[groupby<分组条件>][having<组选择条件>]

[orderby<排序条件>]

lselect子句,功能是确定结果列。语法为:

select[all|distinct][top<数值>[percent]]<查询列组>

其中查询列可以表示为三种:

1)<表或视图>.*

2)<列名或表达式>[as]<列别名>

3)<列别名>=<列名或表达式>

注意列别名是用来代替在结果集中的列名或表达式,别名可以在orderby子句中出现,但不能在where、groupby或having子句中出现。

linto子句用于创建一个表,并将查询结果添加到该表中。如果创建的是临时表,则在表名前加“#”字符。

lfrom子句用于指定查询的数据源表,一般为必选字句。可以是<表名>as<表别名>,<视图名>as<视图别名>,嵌套的select语句,连接表。例如

selectsage

from

(selectsdept,sage

fromstudent)asa

l其中连接表的格式为:

<数据源> <连接类型> <数据源> on<连接条件>

其中<连接类型>格式为:

[inner|{{left|right|full}[outer]}]join

inner为内连接,它返回所有连接匹配的行。内连接是连接类型的缺省值。

Left[outer]为左外连接,其结果集中不但包括了内连接返回的行,还包括了左边表中不满足连接条件的行。那些不满足连接条件的行所对应的右边表的列将会显示null值。

Right[outer]为右外连接。右外连接的结果集中不但包括了内连接返回的行,还包括了右边表中不满足连接条件的行。那些不满足连接条件的行所对应的左边表的列将会显示null值。

Full[outer]为完全外连接。完全外连接的结果集中不但包括了内连接返回的行,同时也包括左边表和右边表中的所有不满足条件的行,但是与其对应的右边表或左边表的列将会显示null值。

交叉连接为不设连接条件,即对两个表进行笛卡尔积运算。其结果是返回两个表的交叉匹配结果。

lWhere子句:

用于指定查询条件。

lGroupby子句:

用于对结果集分组。分组会影响到统计函数的结果。如果有groupby子句,则按组进行数据统计,否则,对全部数据统计。

lHaving子句:

用于指定分组或汇总筛选条件。

lOrderby子句:

用于指定排序项和排序要求,其语法为:

orderby<排序项> [asc|desc][,…n]

like操作符使用的通配符:%_[][^]

[A,B,C]%表示开头第一个字符为A~C字符的字符串;[^A-C]%表示开头第一个字符不是A~C字符的字符串。

三、数据更新操作

(1)数据插入语句:

insert[into]<表或视图名>[(<列组>)]

values<值列>|<select语句>

(2)修改数据

update<表或视图名>

set<列名>={<表达式>}[,…n]

[where<条件>]

(3)删除数据

delete[from]<表名>

[where<条件>]

条件可以基于其它表中的数据:

delete[from]<表名>

from<表名><连接类型> join<表名>on<连接条件>

[where<条件>]

<!--EndFragment-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值