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
相关文档:
--------检测数据库是否存在
use master
go
if exists(select * from sysdatabases where name='DBName')
drop database DBName
-----创建数据库
create database DBName
on
(
/*数据文件的具体描述*/
name='DBName_data', -----主数据文件的逻辑名称
filename='D:\project\DBName_data.mdf', ......
bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。 Int64
int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。 Int32
smallint 从 -2^15 (-32,768) 到 ......
这里使用的数据库和数据表分别来自Sql语句学习笔记(1)——创建数据库和Sql语句学习笔记(2)——创建数据表
use RetalDB
go
--插入数据到表tb_movie_type
insert tb_movie_type values(0,'普通片','Regular')
insert tb_movie_type values(1,'新片','NewRelease')
insert tb_movie_type values ......
这里使用的数据库和数据表分别来自Sql语句学习笔记(1)——创建数据库和Sql语句学习笔记(2)——创建数据表
use RetalDB
/********************
单表查询
*********************/
--查询tb_user中的数据:无条件查询
--(1)
select * from tb_user--查询所有信息
--(2)
select top 2 * from ......
新建表:
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)
删除表:
Drop table [表 ......