`
feiliboos
  • 浏览: 664894 次
文章分类
社区版块
存档分类
最新评论

sql server 中语法定义

 
阅读更多

创建数据库

create DataBase database_name

[on [primary]

[/<filespec/>[1,.......n]]

[,<filegroup>[1,.......n]]

]

[LOG ON {<filespec>[1,.......n]} ]

[FOR LOAD|FOR ATTACH]

<filespec>::=([

[NAME=logical_filename,]

FILENAME='os_file_name'

[,SIZE=size]

[,MAXSIZE={max_size|UNLIMITED}]

[,FILEGROUP=growth_increment ]

)[,.......n]

<filegroup>::=FILEGROUP filegroup_name<filespec>[,.......n]

被[]括中的内容表示可有或可不有

[1,....n]表示在括号前面的项可以出现1次或N次

被<>括中的内容表示里面的具体内容会在下文中详细说明

FOR ATTACH 是附加数据库文件

修改数据库

Alter DataBase database

{

Add File <filespace> [1,2,3....n] [To filegroup filegroup_name]

|Add Log File <filespace> [1,2,3....n]

|Remove File logical_file_name

|Add FileGroup filegroup_name

|Remove Filegroup filegroup_name

|Modify file <filesapce>

|Modify filegroup file_group_name filegroup_property

}

<filespec>::=([

[NAME=logical_filename,]

FILENAME='os_file_name'

[,SIZE=size]

[,MAXSIZE={max_size|UNLIMITED}]

[,FILEGROUP=growth_increment ]

)[,.......n]

Modify filegroup file_group_name filegroup_property 中的filegroup_property可以设置的值为:ReadOnly(文件组只读)

,ReadWrite(读写),Default(将文件组设置为默认的文件组。只能设置一个默认文件组)

}

删除数据库

drop database database_name

创建表

CreateTable

[database_name.[owner].|owner.] table_name

(

{

<column_definition> | column_name as Computed_column_expression

|<table_constraint>

}[1,2,....,n]

)

[on {filegroup|default}]

[textimage_on {filegroup|default}]

<column_definition>::={column_name data_type}

[

[ default constrant_expression] | [identity [(seed,increment ) ] ]

]

[<column_constraint>][....n]

修改表

Alter Table table

Alter Column column_name new_data_type [(precision [, scale ] ) ] [null|no null]

|Add {[column_definition] | column_name as computed_column_expression}

|drop Column column_name[1,...,n]

|Add Constraint constraint_name constraint_definition [1,....,n]

|drop Constraint constraint_name [1,...,n]

删除表

drop table tablename[,...,n]

主键约束

constraint constraint_name primary key (CLUSTERED|NONCLUTERED) [(字段[1,...,n])]

唯一键约束

constraint constraint_nameunique key (CLUSTERED|NONCLUTERED) [(字段[1,...,n])]

外键约束

constraint constraint_nameforeige key [(字段[1,...,n])] references rel_table[(rel_column)] [on delete {cascade|no action}] [on update {CASCADE|NO ACTION}] [NOT FOR REPLICATION]

NOT FOR REPLICATION:如果添加了这个选项,那么在复制数据的时候将忽略该外键约束

cascade:将发生在主键上的改变级联到应用键

no action:同上。拒绝任何变动

核查约束

constraint constraint_name check('check_expression')

例如 constraint constraint1 check('sex' in ('男',‘女’))

创建规则

create RULE rule_name as condition_expression

condition_expression:@param logical_expression

绑定规则

sp_bindrule [@rulename=] 'rule_name',[@objname=] 'object_name'

例如 create rule salary

as

@para_name between 1000 and 5000

exec sq_bindrule 'salary','员工.工资' 员工工资范围在1000~5000之间

创建默认值

create Default default

as constraint_expression

绑定默认值

sq_binddefault [@defaultname=]'default_name',[@objname=]'object_name'

例如:

create default salary

as

1000

exec sq_binddefault 'salary','员工.工资'

========SELECT=============

Select [select_expression]select_list

[INTO new_table_name]

From table_list

[Where search_constraint]

[Group By group_expression group_by_list]

[Having search_conditions]

[Order by order_list [ASC|DESC]]

INTO new_table_name:将获得的信息插入到表中

select_expression(

distinct 不返回重复的数据行

top num 选择返回数据的顶部num行

top num precent 选择返回数据的顶部百分比

top num关键字==set rowcount n

)

from_search_conditions

(

比较(=,>,<,>=,<=,<>,!>,!<,!=)

范围(between .. and .. , not between .... and ...)

列表(in(A,B,C,D,E) )

模式(like expression)expression:%任何串字符;_任何一个字符;[A-Z]A到Z中的任何一个;[^A-Z]不是A和Z中的任何一个

)

where子句的执行顺序>groupby子句的执行顺序>having子句的执行顺序

group_expression

(

ALL 将不符合where子句的内容也进行显示。但在其返回的相应数据中以NULL标记

CUBE

ROLLUP

)

======Transaction编程===============

begin..and ..

if ...else ...

while logical_expression begin...[break|continue]...and

case param

when expression1 then

when expression2 then

when expression3 then

else

expression4

end

waitfor delay 时间间隔|time 时间值

goto

游标

Declare 游标名 CURSOR

[LOCAL|GLOBLE]

[FORWARD_ONLY|SCROLL]

[READONLY]

FOR 选择语句

[FOR UPDATE [OF 字段1,字段2]]

游标的读取方法

FIRST

LAST

PRIOR

NEXT

RELATIVE 相对

ABSOLUTE 绝对

例子

declare mycursor CURCOR

for

select * from customers

open mycursor

fetch next from mycursor

while @@fetch_status=0

begin

fetch next from mycursor

end

close mycursor

deallocate mycursor

fetch next from cursorName into @parameter1,@parameter2 从游标中读取数据存入变量中

======创建索引=========

create [unique] [CLUSTERED|NONCLUSTERED] Index index_name

on Table(column,...,n)

[

WITH [PAD_INDEX]

[,FILLFACTOR=filefactor]

[,IGNORE_DUP_KEY]

[,DROP_EXISTING]

[,STATISTICE_NORECOMPUTE]

]

[on filegroup]

FILLFACTOR填充程度 值1~100

IGNORE_DUP_KEY 是否忽略重复的值

DROP_EXISTING 指定应除去名称相同的索引然后重建

删除索引 drop index table.index[1,....,n]

=========创建触发器==============

create trigger trigger_name

on table|view

[with encryption]

{for|after|instead of} {[insert][,][update][,][delete]}

as

sql_statement [....n]

(缓存表inserted,deleted)update=delete+insert

exec sp_helptrigger 'table'[,type]

exec sp_helptext 'trigger_name'

exec sp_help 'trigger_name'

exec sp_rename 'old_trigger_name','new_trigger_name'

drop trigger trigger_name[,...,n]

例如

create trigger trigger_salary_change

on pmanager

after update

as

if update(工资)

begin

if(select max(abs(inserted.工资-deleted.工资))

from inserted join deleted

on inserted.负责人ID =deleted.负责人ID)>2000

begin

print '工资变动不能超过2000'

ROLLBACK TRANSACTION

end

end

else

print '工资没有变!'

===========存储过程===========

create procedure procedure_name [;name]

[

{@parameter data_type} [varying] [=default] [output]

] [,....n]

[with {recomplie|encryption|recompile,encryption}]

[for replication]

as

sql_statement [,...,n]

执行存储过程

exec {[@return_status=] procedure_name [;name]}

[[@parameter=] {value|@variable [output] | [default] } ][,...,n]

例如

exec @returnvalue=GetAvgPbiaodi '参数','参数'

exec sq_helptext GetAvgPbiaodi

exec sq_depends GetAvgPbiaodi

exec sq_help GetAvgPbiaodi

exec sql_rename oldname newname

分享到:
评论

相关推荐

    SQL Server 2014基础入门视频教程 (40集,含课件)

    10.SQL Server 2014定义表主键、外键.mp4 11.SQL Server 2014新增表记录.mp4 12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录.mp4 15.SQL Server 2014条件...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程

    10.SQL Server 2014定义表主键、外键.mp4 11.SQL Server 2014新增表记录.mp4 12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录.mp4 15.SQL Server 2014条件...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程.txt

    10.SQL Server 2014定义表主键、外键.mp4 11.SQL Server 2014新增表记录.mp4 12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录.mp4 15.SQL Server 2014条件...

    SQL Server存储过程的基本概念以及语法

    存储过程的概念 SQL Server提供了一种方法,它可以将一些固定的操作集中起来由SQL Server数据库服务器来完成,以实现某个任务,... 在SQL Server中存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。

    SQL SERVER命令与数据字典工具

    4.代码编辑区支持SQL SERVER语法高亮 5.支持print代码执行 6.最大支持代码执行后显示5个结果,并显示相关行数。 7.数据视图支持行数据删除 8.数据视图支持列数据移动 9.代码编辑区支持选中代码执行 Document功能...

    PostgreSQL_与_MS_SQLServer比较

    从不同的方面介绍了PostgreSQL_与_MS_SQLServer之间的差异,包括变量的定义和语法结构,存储过程、函数、游标等等

    sqlserver自定义函数

    更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 语法 sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ] --假设要处理的表名为...

    SQL Server数据库查询速度慢原因及优化方法

    【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有...

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    7.2.1 在SQL Server Management Studio中查看数据库的信息 7.2.2 使用T-SQL查看数据库信息 7.2.3 检查系统和示例数据库 7.2.4 检查数据库对象 7.3 创建数据库 7.3.1 在SQL Server Management Studio中创建数据库 ...

    SQL Server 2008高级程序设计 4/6

    第1章 回顾SQL Server中的对象  1.1 数据库的构成  1.2 数据库对象概述  1.3 SQL Server数据类型  1.4 SQL Server对象标识符  1.5 小结 第2章 工具  2.1 联机丛书  2.2 SQL Server配置管理器  2.3 ...

    SQL+SERVER+2005+管理与开发技术大全.part1.rar

    SQL+SERVER+2005+管理与... 《SQL Server 2005开发技术大全》可供初学者阅读学习,也可以作为中级读者的提高教程,书中大量且详细的T-SQL语法及在其他开发中所用到的技术可以作为开发人员的参考手册,随时进行查阅。

    SQL Server中修改“用户自定义表类型”问题的分析与方法

    SQL Server开发过程中,为了传入数据集类型的变量(比如接受C#中的DataTable类型变量),需要定义“用户自定义表类型”,通过“用户自定义表类型”可以接收二维数据集作为参数,在需要修改“用户自定义表类型”的...

    SQL Server 2008管理员必备指南(超高清PDF)Part1

    7.2.1 在SQL Server Management Studio中查看数据库的信息 7.2.2 使用T-SQL查看数据库信息 7.2.3 检查系统和示例数据库 7.2.4 检查数据库对象 7.3 创建数据库 7.3.1 在SQL Server Management Studio中创建数据库 ...

    SQL Server 2008管理员必备指南(超高清PDF)Part2

    7.2.1 在SQL Server Management Studio中查看数据库的信息 7.2.2 使用T-SQL查看数据库信息 7.2.3 检查系统和示例数据库 7.2.4 检查数据库对象 7.3 创建数据库 7.3.1 在SQL Server Management Studio中创建数据库 ...

    SQL Server 2008编程入门经典(第3版)

    9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 9.3.1 CREATEINDEX语句 9.3.2 创建XML索引 9.3.3 随约束创建的隐含索引 9.3.4 在稀疏列和地理空间列上创建索引 9.4 明智地选择——在何时何地使用何种...

    SQL Server 2008高级程序设计 2/6

    第1章 回顾SQL Server中的对象  1.1 数据库的构成  1.2 数据库对象概述  1.3 SQL Server数据类型  1.4 SQL Server对象标识符  1.5 小结 第2章 工具  2.1 联机丛书  2.2 SQL Server配置管理器  2.3 ...

    SQL Server2005基础教程

     3.2 SQL Server中的数据库  3.3 决定数据库系统类型  3.4 收集数据   3.5 决定要存储在数据库中的信息  3.6 外部信息和忽略的信息  3.7 建立关系  3.8 规范化  3.9 创建示例数据库  3.10 小结 ...

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

     书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中的各种问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。本书内容丰富、文字简洁明快,列举的实例具有一定的难度,而且实用性较...

    SQL Server 2008 商业智能完美解决方案(3)

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

    SQLSERVER存储过程大总结.doc

    SQLSERVER存储过程使用说明书引言首先介绍一下什么是存储过程:存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,并且这样的语句是放在数据库中的,还可以根据条件执行不同SQL...

Global site tag (gtag.js) - Google Analytics