sql sqlserver 创建数据库 数据表 循环 合并表的几个例子

时间:2021-07-06 06:37:10

今天有需求说在visual foxpro中合并几个现成的表格,顺便操作了下sqlserver 之前面试的时候被问起建立temp表没做个这里也顺便试了一下

关于sql中使用注释

第一种:单行注释。是用两个连字符(--)来注释内容的,它又换行符终止


第二种:多行注释。是用(/*……*/)来注释内容的,前面的/*表示注释的开


        始,后面*/表示注释的结束。它们必须成对使用,倘若不配对的就


        会产生错误。

这两种注释都没有长度限制,需要注意的是在注释中不能包含go关键字,如果

包含了go关键字,在进行编译时会产生错误。


建立数据库

create database test  --数据库名称

建立表格

use test

 create table student(ID int identity(1,1) not null,studentID int primary key not null,studentName varchar(20),age int)

看msdn关于建表的函数 有好多的选项 挑了几个用到的 

http://msdn.microsoft.com/zh-cn/library/ms174979.aspx

/*identity 

指示新列是标识列。 在表中添加新行时,数据库引擎将为该列提供一个唯一的增量值。 标识列通常与 PRIMARY KEY 约束一起用作表的唯一行标识符。 可以将 IDENTITY 属性分配给 tinyintsmallintintbigintdecimal(p,0) 或 numeric(p,0) 列。 每个表只能创建一个标识列。 不能对标识列使用绑定默认值和 DEFAULT 约束。 必须同时指定种子和增量,或者两者都不指定。 如果二者都未指定,则取默认值 (1,1)。

*/

/*

NULL | NOT NULL

确定列中是否允许使用空值。 严格来讲,NULL 不是约束,但可以像指定 NOT NULL 那样指定它。 只有同时指定了 PERSISTED 时,才能为计算列指定 NOT NULL。

PRIMARY KEY

是通过唯一索引对给定的一列或多列强制实体完整性的约束。 每个表只能创建一个 PRIMARY KEY 约束。

*/

循环操作

use test
declare @i int
declare @city varchar(10) 
declare @phone varchar(15) 
set @city='qingdao';
set @phone='13296759199';
set @i=1
while(@i<11)
begin
insert into students(studentID,city,phone) values(@i,@city,@phone)
set @i=@i+1
end

-- 这里有个问题就是2005还不能在变量定义时候初始化,不然会报错

--期间不小心掉了结束条件 然后插入无数行 结果使用 truncate table 表名 没有反应 不知道是不是 没有刷新的原因 这个是来测试函数效果的

use test
go
select count(*) as BeforeTruncateCount from dbo.student
go
truncate table dbo.student
go
select count(*) as AfterTruncateCount from dbo.student
go


--合并两个有索引的表生成新表

use test
create table fullInfo(studentID int,studentName varchar(20),age int,gender nchar(10),city varchar(20),phone varchar(20))
insert into fullInfo (studentID,studentName,age,gender,city,phone)
select student.studentID,student.studentName,student.age,student.gender,students.city,students.phone from student,students where student.studentID=students.studentID 

--好了 发现 sql 还是有很多有意思的地方