今天有需求说在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 属性分配给 tinyint、smallint、int、bigint、decimal(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 还是有很多有意思的地方