数据库视频总结(2)

第四章 SQL Server 2008数据表管理

 

字段的数据类型

整数

Bigint、int、smallint、tinyint

小数

decimal、numeric

货币

money、smallmoney

浮点型

float、real

二进制

扫描二维码关注公众号,回复: 4020971 查看本文章

Bit

 

字符数据类型

Char()后面跟长度

Nchar

Varchar

Text

nvarchar

ntext

 

日期和时间数据类型

Datetime:存储日期从1753年到9999年,时间精度为3.33毫秒

smalldatetime:存储日期从1900到2079,时间精度为1分钟

 

二进制数据类型

binary、varbinary与char、varchar差别相同

image:存储图像信息

 

创建表

Create table table_name

(

   <column_definition>|<table_constraint>|column_name

     列名       数据类型     表名

   as computed_column_expression

   on filegroup |default

        文件组

   textimage on filegroup|default

)

 

 

临时表

本地临时表:以#打头,仅对当前的用户连接可见,当用户断开连接时自动被删除

全局临时表:以两个数字符号##打头,创建后对任何用户都是可见的,当用户断开连接时自动被删除

(一个用户就是一个新建查询)

 

修改表

Exec sp_rename'表名'

修改列

Alter table 列名

设置列内具体信息

Alter column

删除列

Drop 列名

 

用户自定义数据类型

必须包括的三个参数:

数据类型的名称

所基于的系统数据类型

数据类型的可空性

 

使用规则

一个列只能使用一个规则,但是一个规则可以应用于多列。

一个列可以使用多个check约束,但是一个约束只能应用于一个列

Create rule rule_name

    规则名

As

Condition_expression

取值表达式

 

第五章  操作架构、索引和视图

创建视图(查看某列,进行保存)

Create view view_name(view_column_name)

                        视图名       列名

As query_expression

With check option

 

修改和删除视图

Alter view <view_name><column name list>

As

<select statement>

[With check option]

 

视图修改数据

注意事项

Select列表中含有DISTINCT

select列表中含有表达式,如计算列、函数

在FROM子句中引用多个表

引用不可更新的视图

Group by或者having子句

只能在视图里含有的数据进行修改

 

索引

是一个单独的物理的数据结构,是某个表中的一列或者若干列的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单表的存储由两部分组成,一部分用来存放表的数据页面,另一部分存放索引页面。

索引一旦创建,将由数据库维护和自动管理

 

优点:

1.保证数据记录的唯一性

2.加快数据检索速度(最重要优点)

3.加快表与表之间的连接速度

4.在使用order by和group by子句中进行检索数据时,减少时间。

5.在检索数据的过程中使用优化隐藏器,提高系统性能

 

创建索引

Create

[unique] [clustered][nonclustered]

微型索引  聚集索引   非聚集索引

Index index_name

On

Table_name(column_name)|view_name

一个表可以创建一个聚集索引和多个非聚集索引

 

删除索引

Drop index_表名.索引名

 

全文索引

使用原因:文件特别大的话,就使用

 

创建架构

Create schema schema_name_clause [架构权限]

Authorization owner_name

                        架构所有者

架构可以赋予架构所有者权限

 

聚集索引和非聚集索引

聚集索引:确定表中数据的物理数据,用物理数据来排列数据。

何时使用聚集索引?

1.含有大量非重复的列

2.使用between,>,>=,<,<=返回一个范围值的列

3.被连续访问的列

4.返回大型结果集的查询

5.经常被使用连接或group by子句的查询访问的列

非聚集索引:数据存储在一个位置,索引存储在另一个位置,索引的项目按索引值的顺序存储,表中的信息可以不用顺序存储

非聚集索引与聚集索引具有相同的B-Tree结构,但是有重大区别

1.数据行不按非聚集索引键的顺序排序和存储

2.非聚集索引的页层不包含数据页,相反叶节点包含索引行。

 

第六章  数据查询和管理

 

Select语法格式

Select  [all|distinct]  select list as 指定列名

 消除重复列         列名

From table_source

          表名

Where search_conditions

           条件

Group by group_by_expression

进行分组进行查询

Having search_conditions

进行判断

Order by order_expression

进行排序

 

排序

Order by 列名 desc/asc

                       降序 升序

 

分组

Group by

按照规则分类汇总,进行合并。

Rollup 多出一行平均值

 

使用函数

Select Top 3 列名 表示前三行信息

 

使用having子句

Having 聚合函数+条件

 

插入数据

Insert [into] table_or_view[(column_list)] values data_values

                                                                                                                  数据值

Insert select语法格式

Insert table_name(column_list)

            表名 (无数据)           列名

Select column_list

From table_list

     其他表名(有数据)

Where search_condirions

          条件

 

Select into语句语法

Select<select_list>

       需要查看的列

Into new_table

From<table_source>

Where<search_condition>

 

Select into与insert select区别

Select Into 是新建一个表不是在原有的表上插入数据

 

Update语句

Update [top] table_name|view_name

       行数

 set

Column_name[=expression]

Where [search_conditions]

 

 

update语句中使用from子句

 

delete语句

Delete from table_name

Where search_condition

 

Top关键字和top表达式

Top (expression)[percent]

With ties(如果数据相等,但是大于了相应的百分比,也可以加入进来)

 

compute子句

Compute

Avg|count|max|min|stdev|stdevp|var|varp|sum

Expression

By expression

 

第七章  操作查询

 

基本连接

 

内连接

Select select_list

From table1 [inner] join table2 [on join_conditions]

                                                       条件

内连接实现效果是一样的,只是表达形式不同

 

外连接

返回from子句中提到的至少一个表或者视图的所有行,只要符合这些行的搜索条件。

 

全连接包括左外连接和右外连接

 

交叉连接

不带where子句时,返回的是被连接的两个表所有数据行的笛卡儿积

语法格式

Select select_list

From table1 cross join table2

Where search_conditions

Order by order_expression

 

联合查询

两个select语句中间用union [all]

有all的话就会把重复的项保存。

 

使用子查询

子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。

 

xml查询

XML是可扩展标记语言

是 英文 eXtensible Markup Language 的简写

用来传输和存储数据。

 

 

For xml子句

能将查询出的数据转换成xml格式的数据.

 

exists关键字查询

判断子查询是否有结果

 

交查询

两个select语句中间用intersect

 

差查询

两个select语句中间用except

在一个结果集的基础上去除第二个结果集上相同的数据

 

第八章 Transact-SQL编程

 

Transact-SQL

分为三种基本类型

数据定义语言:drop、alter表

数据操纵语言:对数据进行增删改查

数据控制语言:安全性进行控制

 

常量与变量

Declare

@local_variable [as] 数据类型

 变量名

给声明的局部变量赋值

Set @local_variable=expression

Select @local_variable=expression

 

if条件语句

If Boolean_expression

Else

 

Case语句

Case input_expression

When when_expression Then result_expression

Else else_expression

End

 

 

while语句

While Boolean_expression

Break

跳出整个循环

Continue

跳出本次循环

 

waitfor延迟语句

Waitfor

{

Delay time

Time time

}

 

Try catch错误处理语句

Begin try

{}

End try

Begin catch

{}

End catch

 

数学函数

ABS返回数值表达式绝对值

ceiling返回大于或等于数值表达式的最小整数

floor返回小于或等于数值表达式的最大整数

sing返回表达式的正号、负号或零

square返回表达式平方

sqrt返回表达式平方根

 

字符串函数

 

日期和时间函数

 

标量值函数

声明函数

Create function function_name

 

Returns scalar_return_data_type

as

Begin

Function_body

Return scalar_expression

End

 

表值函数

声明函数

Create function function_name

 

Returns table

As

return

 

表值函数与标量值函数不同

表值函数返回的是一张表结果,就和一个select查询语句一样,只不过里面带入了参数或者很复杂;

标量值函数返回的只是一个值

 

游标的声明

Declare coursor_name [insensitive]    [scroll] cursor

                                  使更新不受影响  可以跳跃提取

For select_statement

For {read only|update }

           只读     可修改

释放游标

Deallocate coursor_name

 

操作游标

步骤

打开游标

Open 游标名称

检索游标

Fetch

[next|prior|first|last|absolute]

检索标识                  指定行

From 游标名

Into

赋值给

关闭游标

close

释放游标

Deallocate

 

判断游标提取状态

0 fetch语句成功

-1 fetch语句失败或者行不在结果集中

-2 提取的行不存在

 

事务

Begin transaction     开始事务

Commit transaction    提取

Rollback transaction  回滚

Save trasaction       挽救

 

就是一个事务向系统提出请求,对被操作的数据加锁,其他事务必须等到此事务解锁之后才能访问该数据。

共享锁:用于读操作

独占锁:用于写操作

更新锁:

 

系统与原数据函数

Convert() 将一种数据类型的数据转换成另一种数据类型的数据

Current user 返回当前用户的名称

Isdate() 判断它的输入是不是一个有效的日期

Isnull() 用一个指定替换值替换任何空值

Isnumeric() 判断它的输入是不是一个数值

 

事务模式

自动提交事务

显式事务

隐式事务

批处理级事务

 

 

死锁

相互等待或者互斥

猜你喜欢

转载自blog.csdn.net/liangjiabao5555/article/details/81939866
今日推荐