sql小知识笔记

版权声明:转载请注明出处 https://blog.csdn.net/doubleguy/article/details/89709791

1.浮点型常用numeric,用法 numeric(m,n),m代表连上小数位总共有多少位(即这个浮点数的总位数),n代表小数点后的位数。如果省略n写成numeric(m)可以表示整数。float也有一种用法,float(n),其中n是浮点数的精度。

2.isnull(列名,整数n)函数,他的作用是当该列为null时返回整数n。

3.identity(m,n),自增函数.

从m开始,每次自增1。

用个例子展示。

首先要插入一条数据

insert into test (testName,testPass) values('zhang','bin')

然后一直用下面这个,他可以使当前数据翻一倍。当数据更新时,我们不用管testId这一列,他会自增。

insert into test (testName,testPass) select testName,testPass from test

 完整代码为:

--identity(1,1),表示该testId字段自增,从1,每次+1
create table test(
testId int primary key identity(1,1),
testName varchar(30),
testPass varchar(30))

insert into test (testName,testPass) values('zhang','bin')

insert into test (testName,testPass) select testName,testPass from test

 结果如下:

我们可以用这种方法快速使数据库的数据量变得非常大,用这种方法来测自己代码的效率。

4.分页查询,当数据量过大时,用单页查询非常耗时,而用分页就可以减轻电脑负担。我们还用第3题的表,要求test表按照id排序,取出其中的第6-10条记录。子查询查询的数据量越大,他相较于单页查询效率高的优势就越能体现出来。

 select top 5 * from  test where testId not in
(select top 5 testId from test)

结果如下: 

5.default约束,设定列的默认值。当某一列没有插入值时,他会自动填充值,如果用户插入了值,那么他会优先按用户插入的值。

create table mes(
mesId int primary key identity(1,1),
mesCon varchar(50) not null,
mesDate datetime default getdate()) 

insert into mes (mescon) values('fuck you!')
insert into mes (mescon,mesdate) values('you such a bitch!','2010-10-01')

select * from mes

 执行结果如下:

猜你喜欢

转载自blog.csdn.net/doubleguy/article/details/89709791