sql关键字大小写不敏感
注释用--
insert和delete中的into和from可以省略,加上了它会提高语句的可读性
update和delete要小心使用,使用一定要搭配where,如果没有where则会对该表所有记录全部修改
中文字符前面最好加上N,以防出现乱码 ,比如N‘中国’
CRETE PROCEDURE CatalogAddDepartment
(
@DepartmentName nvarchar(50),
@DepartmentDescription nvarchar(1000)
)
AS
insert into Department(Name,Description)
values(@DepartmentName,@DepartmentDescription
)
如果存储过程已经存在,只是想修改其代码,可以使用ALTER PROCEDURE来代替CREATE PROCEDURE
字符串连接用+
sql与.net运算法用法的不同点:
比较运算符:=(c#中==),<>(!=)
字符串:'admin' ("admin")
日期型:#01/01/2005#
通配符:%,_(分别相当于windows的通配符*,?)
范围:between 2 and 20 (相当于2<=x<=20),in('Admin','bitfan')或order_num in (2007,2008)
逻辑运算符:And,Or,Not
聚集函数:Min,Max,Sum,Avg,Count,Count(*)
sql的几种联接
inner join (inner可省略)
left join (left outer join)
right join(right outer join)
full join(full outer join)
cross join笛卡尔乘积(若A表a条记录,B表b条记录,则共显示a*b条记录)
char(nchar)与varchar(nvarchar)的区别以及适用环境
在绝大多情况下,varchar无论在性能(增、改、查)还是内存占用上都有优势;只有在列很少出现null值,并且不需要在列上建立过多的索引,数据检索的需求较少时才考虑使用char,varchar需要额外2个字节来反映存储数据的长度
sql用--来注释
SQL Server中生成GUID的函数newid()。C#中Guid id=Guid.NewGuid()
create
table
CallRecords
(
id
bigint
primary
key
identity
(
1
,
1
),
caller_id
nvarchar
(
50
),
telNum
nvarchar
(
50
),
starttime
datetime
,
endtime
datetime
)
create table语法注意点:
- 数据类型放在primary key identity(1,1)之前
- 除了最后一行没有逗号,其他行都需要末尾加逗号
- 约束之间没有逗号
- check后要加(),默认值为default后加默认值如default getdate(),not null,null
CREATE PROCEDURE <procedure name>
[(
<parameter name> <parameter type> [=<default value>] [INPUT | OUTPUT],
...
...
)]
AS
<stored procedure body>
在默认情况下,所有参数都是输入参数
处理存储过程参数与处理其他SQL变量一样,它们的名字是以@开头的,如@DepartmentID,@CategoryID,@ProductName等。在存储过程里给输出参数赋值的语法如下所示:
SELECT @DepartmentID = 5