SQLServer语句查询

<html>
<head>
<title>sqlserver语法查询^^^肖永鑫制作</title>
</head>
<body link="#0000ff" alike="#ff000" vlike="0000ff">
<a name="返回">
			<center>	 <font color=red><h1>数据库常用语句</h1></font></center>
<br><marquee behavior=alternate><font color=blue>小鑫制作</font></marquee><br><hr><br></a>
<center>
<a href="#数据库">数据库</a> 
<a href="#数据表">数据表</a>

<a href="#索引">索引</a>
<a href="#视图">视图</a>
<a href="#transact-sql">transact-sql</a>
<a href="#事务">事务</a>
<a href="#触发器">触发器</a>
<a href="#游标">游标</a>
<a href="#存储过程">存储过程</a>
<a href="#xml">xml</a>
<a href="#select语句">select语句</a>

<a href="#完整性">完整性</a>
<a href="#数据类型">数据类型</a>
</center>
<pre><a name="数据库"><font color=blueviolet><h4>
					创建数据库
					语法:
</h4></font></a><a href="#返回">返回</a>
<h3>
			create database database_name 
			[ on 
    			[ < filespec > [ ,...n ] ] 
   			[ , < filegroup > [ ,...n ] ] 
			] </center>
			[ log on { < filespec > [ ,...n ] } ] 
			[ for attach ] 

			< filespec > ::=
			[ primary ]
			( [ name = logical_file_name , ]
    			filename = 'os_file_name'
  	  		[ , size = size ]
    			[ , maxsize = { max_size | unlimited } ]
    			[ , filegrowth = growth_increment ] )

			< filegroup > ::=
			filegroup filegroup_name < filespec > 

</h3><b>
			解释:
</b>
			on:指定数据文件 
			log on:指定日志文件 
			for attach:附加数据库 
			primary:指定主文件 
			name:指定文件的逻辑名称
			filename:指定文件的物理名称
			size:指定文件的大小
			maxsize:指定文件最大的大小 
			filegrowth:文件的增长增量
			filegroup:指定文件组
<b><font color=blueviolet><h4>
			修改数据库
			语法:
</h4></font></b><h3>
			alter database database 
			{ add file < filespec > [ ,...n ] [ to filegroup filegroup_name ] 
			| add log file < filespec > [ ,...n ] 
			| remove file logical_file_name 
			| add filegroup filegroup_name 
			| remove filegroup filegroup_name 
			| modify file < filespec > 
			| modify name = new_dbname 
			| modify filegroup filegroup_name {filegroup_property | name=new_filegroup_name 			}}
</h3>
			解释:
			add file:指定要添加文件
			to filegroup:指定要将指定文件添加到的文件组
			add log file:指定要将日志文件添加到指定的数据库
			remove file:从数据库系统中删除文件
			add filegroup:指定要添加文件组
			remove filegroup:从数据库中删除文件组:
			modify file指定要更改给定的文件:
			modify name:重命名数据库
			modify filegroup:指定要修改的文件组 

<b><font color=blueviolet><h4>
			删除数据库
			语法:
</h4></font></b><h3>
			drop database database_name [ ,...n ]
</h3><hr><b><a name="数据类型"><font color=blueviolet><h4>
			数据类型:
</h4></font></a><a href="#返回">返回</a></b>
<center> 
<table border="1">
<tr><th>			分类</th>	<th>数据类型</th></tr>

<tr><td>			整数数据类型</td>	<td>bit、tinyint、smallint、int、bigint</td></tr>
<tr><td>			货币数据类型</td>	<td>smallmoney、money</td></tr>
<tr><td>			浮点数据类型</td>	<td>decimal、numeric、real、float</td></tr>
<tr><td>			日期/时间数据类型	</td><td>smalldatetime、datetime</td></tr>

<tr><td>			字符数据类型</td>	<td>char、varchar、nchar、nvarchar</td></tr>
<tr><td>			二进制数据类型</td>	<td>binary、varbinary</td></tr>
<tr><td>			图像和文本数据类型</td>	<td>text、ntext、image</td></tr>
</table>
</center> 

<hr><b><a name="完整性"><font color=blueviolet><h4>
			数据完整性的机制:
</h4></font></a><a href="#返回">返回</a></b>
<h3>
			特定标识属性(identity)
			默认值(default)
			约束
			主键约束(primary key)
			外键约束(foreign key)
			惟一约束(unique)
			检查约束(check)
			非空约束(not null)
</h3><hr><b><a name="select语句"><font color=blueviolet><h4>
			select语句的基本结构:
</h4></font></a><a href="#返回">返回</a></b>
<h3>
			select[top n] [distinct(去掉重复)]select_list[as 别名]
			from table_source 
			[group by 要分组的列名]
			[compute {{ avg|count|max|min|sum}(expression)}[,...n][by expression [,...n]]
			[having 可以加集合函数的类似where语句 ]
			[ where search_condition(比较,范围,类表,模式,复合) ] 
			[ order by {order_expression [ asc | desc ]}[,...n] ] 
</h3>

			select:指定由查询返回的列
			from:指定从其中检索行的表
			where:指定用于限制返回的行的搜索条件
			order by:指定结果集的排序

			示范
			select 学号,avg(课程成绩) as 平均成绩 from 成绩表 where 学号 is not null group by 
			学号 having avg(课程成绩)>92 order by 平均成绩
<b>
			示例中sql语句的执行顺序
			首选执行from子句,从成绩表组装数据源的数据
			执行where子句,筛选成绩表中所有不为null的数据
			执行group by子句,把成绩表按学号列进行分组
			计算avg()聚合函数,按课程成绩求出平均成绩的具体数值
			执行having子句,筛选平均成绩大于92分的学生信息
			执行order by子句,把最后的结果按平均成绩进行排序
</b><hr><b><a name="数据表"><font color=blueviolet><h4>
			创建数据表
</h4></font></a><a href="#返回">返回</a></b>
<h3>
			create table 表名
			(
			 列名 数据类型 [约束],
			 列名 数据类型 [约束],
			 …
			)[on 文件组]
</h3><b><font color=blueviolet><h4>
			修改数据表
</h4></font></b><h3>

			alter table 表名
			{
 			add 列名 数据类型 [约束] |
			 alter column 列名 新数据类型 [约束] |
 			drop column 列名
			}
</h3><b><font color=blueviolet><h4>
			删除数据表
</h4></font></b><h3>
			drop table table_name
</h3><b><font color=blueviolet><h4>			
			向表插入数据
			语法:
</h4></font></b><h3>
			insert [into] 表名(字段名[,n]) values(数据[,n])
</h3><b><font color=blueviolet><h4>
			修改表修改数据
			语法:
</h4></font></b><h3>

			update 表名 set 字段名=新数据 [where 条件]
</h3><b><font color=blueviolet><h4>
			删除表数据
			语法:
</h4></font></b><h3>
			delete [from] 表名 [where 条件]
</h3><hr><b><a name="索引"><font color=blueviolet><h4>
			索引的创建
			语法:
</h4></font></a><a href="#返回">返回</a></b><h3>
			create [ unique ] [ clustered | nonclustered ] 
			index index_name
			on { table | view } ( column [ asc | desc ] [ ,...n ] ) 
</h3>
			参数:
			[ unique ] [ clustered | nonclustered ]
			指定创建索引的类型,参数依次为惟一索引、聚集索引和非聚集索引。
			当省略 unique 选项时,建立非惟一索引。
			当省略 clustered|nonclustered 选项时,建立非聚集索引

<b><font color=blueviolet><h4>
			索引的删除
			语法:
</h4></font></b><h3>
			drop index 'table.index | view.index' [ ,...n ]
</h3><hr><b><a name="视图"><font color=blueviolet><h4>
			使用transact-sql创建视图
			语法:
</h4></font></a><a href="#返回">返回</a></b><h3>
			create view view_name 
			as select_statement
</h3>
			参数:
			view_name:视图的名称
			as:视图要执行的操作
			select_statement:定义视图的查询语句
<b><font color=blueviolet><h4>

			视图的修改
			语法:
</h4></font></b>
<h3>
			alter view view_name 
			as select_statement
</h3>
			参数:
			view_name:要更改的视图的名称
			as:视图要执行的操作
			select_statement:定义视图的查询语句
<b><font color=blueviolet><h4>
			视图的删除
			语法:
</h4></font></b><h3>
			drop view view_name[,…n]
</h3> 
			参数:
			view_name:要删除的视图的名称


<hr><b><a name="transact-sql"><font color=blueviolet><h4>
			transact-sql可以使用两种变量
</h4></font></a><a href="#返回">返回</a></b><h3>
			声明局部变量
			declare @局部变量名 数据类型 [,…n]
			declare @x int
			为局部变量赋值
			set @x=500
			select @x=max(课程成绩) from 成绩表
</h3><b>			
			常用的全局全量
			@@connections:返回自上次启动sql server以来连接或试图连接的次数 
			@@error:返回最后执行的transact-sql语句的错误代码
			@@identity:返回最后插入的标识值
			@@rowcount:返回受上一语句影响的行数
			@@version:返回sql server当前安装的日期、版本和处理器类型 
</b>
<b><font color=blueviolet><h4>
			流程控制
</h4></font></b>
<center>
<table border="1">
<tr><td>			begin…end</td>	<td>if…else</td><td>	case</td></tr>

<tr><td>			while	</td><td>continue</td><td>	break</td></tr>
<tr><td>			return	</td><td>goto</td><td>	waitfor</td></tr>
</table>
</center><hr><b><a name="事务"><font color=blueviolet><h4>
			事务
</h4></font></a><a href="#返回">返回</a></b>

<h3>
			显式事务的应用
			--开始事务
			begin transaction
			--向班级表中插入正确的数据
			insert into class(class_id,class_name,class_place) values('1','三班','101')
			--向班级表中插入错误的数据
			insert into class(class_id,class_name,class_place) values('1','四班','102')
			--判断当前事务中的t-sql语句是否出错
			if(@@error!=0)
				--回滚事务
				rollback transaction
			else
				--提交事务
				commit transaction



			隐式事务的应用
			--将连接设置为隐式事务模式
			set implicit_transactions on
			--向班级表中插入正确的数据
			insert into class(class_id,class_name,class_place) values('1','三班','101')

			--向班级表中插入错误的数据
			insert into class(class_id,class_name,class_place) values('1','四班','102')
			--判断当前事务中的t-sql语句是否出错
			if(@@error!=0)
				--回滚事务
				rollback transaction
			else
				--提交事务
				commit transaction
			--取消隐式事务模式,恢复为自动提交事务模式
			set implicit_transactions off
</h3><hr><b><a name="触发器"><font color=blueviolet><h4>
			触发器
</h4></font></a><a href="#返回">返回</a></b>
<h3>
			触发器的创建
			create trigger trigger_name 
			on { table | view } 
			{ after | instead of } 
			{ [ insert ] [ , ] [ update ] [ , ] [ delete ] } 
			as { sql_statement }
			触发器的删除
			drop trigger trigger_name [ ,...n ]
</h3><hr><b><a name="游标"><font color=blueviolet><h2>
			游标
</h2></font></a><a href="#返回">返回</a></b><font color=blueviolet><h4>
			声明游标

</h4></font><h3>
			declare cursor_name cursor
			[ local | global ]
			[ forward_only | scroll ]
			[ static | keyset | dynamic | fast_forward ]
			[ read_only | scroll_locks | optimistic ]
			for select_statement [ for update [ of column_name [ ,...n ] ] ]
</h3>

			local:当前游标只限于局部使用
			global:当前游标可全局使用
			forward_only:游标指针只能向下移动
			scroll:游标指针可任意移动
			static:静态游标
			keyset:键集游标
			dynamic:动态游标
			fast_forward:只进游标
			read_only:禁止通过该游标进行更新
			scroll_locks:指定通过游标进行的更新或删除保证会成功
			optimistic:如果游标读入的行已更新,则更新或删除不会成功
			for update [ of column_name [ ,...n ] ] :定义游标中可更新的列

<font color=blueviolet><h4>
			打开游标
</h4></font><h3>
			open { [ global ] cursor_name } 
</h3>

			open 语句用来将它所引用的记录填充到游标中。
			打开游标后,可以使用 @@cursor_rows 在上次打开的游标中接收合格行的数目	

<font color=blueviolet><h4>
			提取游标
</h4></font><h3>
			fetch  
			[ next | prior | first | last | absolute n | relative n ] 
			from 
			{ { [ global ] cursor_name }
			[ into @variable_name [ ,...n ] ]
</h3>
			解释:
			next:下一行
			prior:上一行
			first:第一行
			last:最后一行
			absolute n:从游标头开始的第 n 行
			relative n:从当前行开始的第 n 行
			into @variable_name [ ,...n ]:将提取的列数据放到局部变量中 

			@@fetch_status 报告上一个 fetch 语句的状态
<font color=blueviolet><h4>
			关闭游标
</h4></font><h3>
			close { [ global ] cursor_name } 
</h3>
			释放当前结果集,然后解除定位游标的行上的游标锁定,从而关闭一个开放的游标 

<font color=blueviolet><h4>
			删除游标
</h4></font><h3>
			deallocate { [ global ] cursor_name } 
</h3><hr><b><a name="存储过程">
			存储过程
</a><a href="#返回">返回</a></b><font color=blueviolet><h4>
			创建存储过程
			语法:
</h4></font><h3>
				create procedure procedure_name
				[ { @parameter data_type } [ = default ] [ output ]] [ ,...n ] 
				[ with encryption ]
				as sql_statement [ ...n ]
</h3>

			参数:
			procedure_name:存储过程的名称
			@parameter:存储过程的参数
			data_type:参数的数据类型
			default:参数的默认值
			output:表明参数是返回参数
			with encryption:加密当前的存储过程
			as:指定存储过程要执行的操作 
			sql_statement:过程中要包含的任意数目和类型的sql语句
<font color=blueviolet><h4>
			执行存储过程
			语法:
</h4></font><h3>
			execute procedure_name [ @parameter ]
</h3><font color=blueviolet><h4>
			删除存储过程
			语法:
</h4></font><h3>
			drop procedure procedure_name
</h3><hr><a name="xml"></a><a href="#返回">返回</a>
<h3>

			创建xml数据类型的变量和列
			--创建xml数据类型的变量
			declare @x xml
			set @x='<address id="1"><country>中国</country><city>北京</city></address>'
			select @x

			--创建xml数据类型的列
			create table xmltest
			(
			 id int primary key,
			 address xml,
			)
</h3>
</pre>
</body>
</html>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值