sql语句学习笔记(5) sql语法
1.sql是一种脚本语言
2.sql可写脚本程序,但最重要的作用发挥在对数据库的操作上
3.sql server2005中的注释有两种/***/多行注释,--可以单行注释
4.sql中的自定义变量以@开头,系统变量以@@开头
5.sql中声明变量和VB类似,使用declare声明变量如:declare @i int,@j int,此语句声明了2个整形变量@i和@j
6.sql中的数据类型和数据库中的类型一样,注意区别char(固定Ascii编码长度的字符),varchar(可变的ascii编码长度),nchar(固定的unicode编码)和nvarchar(可变的unicode编码)这几个类型
比如:
declare @ s1 char(10)
declare @s2 varchar(10)
如果给以上2个变量都赋值abc,则写进数据库时,@s1写的就是abc+7个空格,而@s2写的只是abc
再比如:declare @s1 varchar(4),@s2 nvarchar(4),
set @s1='中国’正确,但set @s1=“中国人'错误 ,@s1最多可以放4个字符或2个汉字(一个汉字占2个字符)
而@s2可以最多可以放8个字符或4个汉字(这也就体现了ascii和unicode编码的区别)
7.sql中有if条件判断,无swith判断,但又case...when(较少用)
8.循环使用while,无for
9.循环体用begin开始,end结束
以下是我的学习笔记,语法部分有注释说明:(实现环境:sql server2005)
/******************************
sql脚本语言学习(1)
******************************/
--(1)
--计算1+2+3+...+100的和
declare @i int--声明一个整型变量,自定义变量均以@开头,系统变量由@@开头
declare @sum int--sql中声明变量类似VB :dim i as int
set @i=100--对变量赋初值时使用set或select(查询时赋值)
set @sum=0
while(@i>0)--sql中没有for循环,循环体使用begin开始 end结束,类似VB
begin
set @sum=@sum+@i
set @i=@i-1
end
print @sum--输出语句用print
--(2)打印三角形
/****************************************
* 2*1-1 4
*** 2*2-1 3
***** 2*3-1
相关文档:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[sp_GetRecordfromPage]
@TableName varchar(350), --表名
@Fields varchar(5000) = '*', --字段名(全部字段为*)
@OrderField varchar(5000), &nbs ......
1:当 SQL 语句引用非索引视图时,分析器和查询优化器将分析 SQL 语句的源和视图的源,然后将它们解析为单个执行计划。没有单独用于 SQL 语句或视图的计划。
2:索引视图的行以表的格式存储在数据库中。如果查询优化器决定使用查询计划的索引视图,则索引视图将按照基表的处理方式进行处理 ......
装sql 2005后对一些功能还不是很习惯,比如用sa登录数据库在很多地方都会用到,今天就sa登录数据库的一些修改与大家分享。
1.先用WINDOWS模式登陆,然后在数据库顶端右键属性;如图1-1:
2.在安全性下的WINDOWS模式改为SQL与WINDOWS模式,下面的登陆审核选项,选择为‘无’,点‘确定’;如图1-2:
3. ......
今天写一个商品的修改功能时遇到的问题
商品中重量 weight 的数据库(SQL Server2005)类型定义为 float
在mappings 中转换为c#类型的一句为
<result property="Goods_Weight" column="Goods_Weight" type="float" dbType="float"/>
按理说这个 float 是一样的,转换完全不会出现问题,
实际程序运行时,系统报错
......
--sqlserver 2000
SELECT 表名=case when a.colorder=1 then d.name else '' end,
--字段序号=a.colorder,
字段名=a.name,
--
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
/**/
主键=case when exists(SELECT 1 from sysobjects where xtype='PK' and name
in ( ......