黑马程序员--SQL编程
来源:互联网 发布:amazon.it 编辑:程序博客网 时间:2024/06/07 15:49
SQL语法代表了另一种编程体系在这个体系里:
>不使用“{}”定义语句块
>定义变量时类型放后面
>通常不区分大小写
一、使用变量
1、局部变量
1> 语法:
>declare @变量名变量类型(varchar)
2> 例如:
>declare @name varchar(18)
>declare @number int
3> 局部变量的赋值方法
>set @name='你是猪'
>select @name=name from Student where stuNo=1001
4> set和select赋值语句的异同
>set赋值语句一般用于赋给变量指定的数据常量
>select赋值语句用于从表中查询数据,然后再赋值给变量。需要注意的是,select语句需要确保筛选的记录不多于一条,如果查询的记录多于一条将把
最后一条记录的值赋给变量
>set语句和select的区别
set select
-----------------------------------------------------------------------------------------------------------
同时对多个变量赋值不支持支持
表达式返回多个值时出错将返回的最后一个值赋给变量
表达式未返回值时变量被赋null值变量保持原值
-----------------------------------------------------------------------------------------------------------
>建议使用set,原因是因为set语句没有结果集,占用资源少,因此,给一个变量赋值时,使用set效率更高
5>使用变量进行模糊查询的语法:
>select * from Student where name like '%'+@name+'%'
2、全局变量
1> 常用的全局变量
变量含义
-------------------------------------------------------------------------------------------
@@error 最后一个T-SQL错误的错误号
@@identity(max费时,易错)最后一次插入的标识值
@@language 当前使用语言的名称
@@max_connections 可以创建的同时连接的最大数目
@@rowcount 受上一次SQL语句影响的行数
@@servername 本地服务器的名称
@@servicename 该计算机上的SQL服务的名称
@@timeticks 当前计算机上没刻度的微妙数
@@transcount 当前连接打开的事物数
@@version SQL Server的版本信息
2> @@indentity实例
> insert Student values('你是猪','青岛')
print '最后插入标识列为:'+convert(varchar(20),@@identity)
> SqlConnection conn = new SqlConnection("server=.;database=MyText;integrated security=SSPI");
conn.Open();
string sql = string.Format("insert Student values('{0}','{1}');select @@identity;"
,textBox1.Text
,textBox2.Text);
SqlCommand cmd = new SqlCommand(sql,conn);
int res = Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
MessageBox.Show(res.ToString());
二、输出语句
1、print语句和select语句
1> 语法:
>print 局部变量或字符串
>select 局部变量 as自定义列名
2> 转换函数
>int值转换为字符串
>print '最后插入标识列为:'+convert(varchar(20),@@identity)
>print语句要求以单个变量或字符串表达式作为参数,而‘+’运算符作为连接两个字符串的连接符,要求‘+’运算符两侧的操作数的数据类型必须一致
3> print和select的异同
>用print语句输出的结果将在消息窗口中以文本方式显示
>用select语句输出的结果将在结果窗口以表格方式显示
三、数据类型转换
1、cast()和convert()函数
1> 语法:
>cast(表达式 as数据类型)
>convert(数据类型[(长度)],长度[,样式])
2> 异同
>cast()和convert()基本类似,convert()函数与cast()不同的是,在将日期时间类型/浮点类型的数据转换为字符串数据时,convert()函数可以通过第三个参数指定转换后的字符
样式,不同的样式使转换后字符数据的显示格式不同。convert()函数的第三个参数可以省略
>一般建议使用convert()函数
四、逻辑控制语句
1、begin-end语句
1> 概述:
>begin-end语句的作用类似于C#语言的"{ }"符号,它经常在分支结构语句和循环语句中出现,表示语句块的开始和结束。在一个语块中可以包含另一个语句块
2> 规范:
>在if-end语句和while语句中,begin和end应放置在新的一行。当begin和end之间有多行SQL语句时,可以在end语句后添加注释以使他么能够很好的匹配起来,提高代码可读性
3> 语法:
beign
语句和语句块
end
2、if-else条件语句
1> 概述:
>if-else语句属于分支结构,它与C#编程语言的if语句类似,也是根据条件是否成立来确定程序的执行方向
2> 语法:
if(条件)
语句或语句块1
else
语句或语句块2
3、case多分支语句
1> 概述:
>等同于C#中的switch
2> 语法:
case
when 条件1 then结果1
4、while循环语句
1> 概述:
>while循环语句可以根据某些条件重复执行一条SQL语句或一个语句块
2> 语法:
while(条件)
begin
语句或语句块
[break | continue]
end
五、批处理
1、GO指令
1> 概述:
>以一条命令的方式来处理一组命令的过程称为批处理
2> 其他
>由于每个批处理之间是独立的,因此,在一个批处理出现错误时,并不会影响其他批处理中SQL代码的运行
>GO关键字标志着批处理的结束
>批处理的好处是能够简化数据库的管理
>本节说的是SQL批处理,而不是命令行批处理,SQL批处理只能保存在后缀为sql的文本文件中,但可通过OSQL-iSQL文件名,命令被自动执行
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------- 黑马程序员--SQL编程
- 黑马程序员-SQL
- 黑马程序员-SQL事务处理
- 黑马程序员-SQL入门
- 黑马程序员-SQL
- 黑马程序员-SQL入门
- 黑马程序员--SQL基础
- 黑马程序员--SQL基础
- 黑马程序员SQL函数
- 黑马程序员-Sql Server
- 【黑马程序员】网络编程
- 黑马程序员 网络编程
- 黑马程序员:网络编程
- 黑马程序员-------网络编程
- 黑马程序员-网络编程
- 黑马程序员:网络编程
- 黑马程序员--网络编程
- 黑马程序员--网络编程
- LeetCode : Search in Rotated Sorted Array
- ios软件
- 如何学习GLSL
- 栈实现迷宫的较完善 程序
- U3D笔记---关于场景烘焙
- 黑马程序员--SQL编程
- 2012-12-06京东面试题
- 内存管理
- 思科第二本教材 第七章 RIPv2 个人总结
- 关于java.io.FileNotFountException:C:\...(拒绝访问)
- JAVA多线程相关总结
- Oracle Storage参数
- 慎用敏捷开发
- 内存池