Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->ViualBasic ->正文

SQL的基本操作(3.表的相关操作)

来源:Linuxdby.com 作者:Webmaster 时间:2007-06-05 点击: [收藏] [投稿]
1.创建表
(1)用CreateTable命令创建表
语法:
CreateTabletabl_name
({
}column_nameAscomputed_column_expression
}
}[,...n]
)
[On{fiegroup|Default}]
[Textimage_On{fiegroup|Default}]

例子:
打开cust数据库,创建一个表,该表包含了学生的有关信息,即有学号、姓名、性别、出生日期、籍贯、联系电话、住址和备注信息。
Usecust
CreateTablestudents
(
numberintnotnull,
namevarchar(10)notnull,
sexchar(2)null,
birthdaydatetimenull,
hometownvarchar(30)null,
telphone_novarchar(12)null,
addressvarchar(30)null,
othersvarchar(50)null
)
在这个表中number表示学生代号,数据类型为int,不允许为空;name表示学生姓名,数据类型为varchar,长度为10,不允许为空;sex表示学生的性别,数据类型为char,长度为2,允许为空;birthday表示学生的出生日期,数据类型为datetime,允许为空;hometown表示学生的籍贯,数据类型为varchar,长度为30,允许为空;telephone_no表示学生的联系电脑,数据类型为varchar,长度为12,允许为空;address表示学生的住址,数据类型为varchar,长度为30,允许为空;others表示学生的备注信息,长度为50,允许为空。

2.修改表的结构
(1)使用T-SQL语句增加和删除一个新列
语法:
AlterTabletable
{
ADO
{[]
|colun_nameAscomputed_column_expression
|[]
}[,...n]
|Drop
{Columncolumn
}[,...n]
}

例子:打开cust数据库,修改其中的表students的结构,增加一个新字段,字段名为ying,数据类型是varchar,长度是10,没有默认值,充许为空。
Usecust
AlterTablestudentsAddyingvarchar(10)null

打开cust数据库,修改其中的表students的结构,删除一个字段,字段名为ying。
Usecust
AlterTablestudentsDropColumnying

3.向表中插入数据
(1)用Insert语句
语法如下:
Insert[Into]
{table_name|view_name}[(column_list)]
{Values|values_list|select_statement}
注意:在插入数据时,字符数据和日期数据要使用引号引起来。
例子:
Usecust
InsertIntostudents
Values(11,"影子","男","1999-12-12","湖北","83779805","武汉市桥口区","VB爱好者")
打开cust数据库,向students表中插入数据

(2)用Default选项
在插入数据时,可以使用Default选项。Default选项有两种形式,一种形式是DefaultValues,另一种是Default。
DefaultValues形式为表中的某一行的所有列插入默认值。使用这种形式的前提条件是表中的所有列必须是这四种类型之一:Identity属性,Timestamp数据类型,允许为Null,或者有一个指定的默认值。否则,会错误信息。
例子:
Usecust
InsertIntostudentsDefaultValues
这个例子会出现错误,因为students表的number字段是设置为不允许为空的。

Default形式是为表中的某一列插入默认值。要插入的该列必须具备一定的条件,即该列要么是Timestamp数据类型,要么是允许为Null,要么是有一个指定的默认值,否则,会出现错误信息。
例子:
Usecust
InsertIntostudentsValues(11,"影子",Default,Default,Default,Default,Default,Default)
由天前2个字段不能为空,所以要赋值,否则会出现错误,而后面的6个字段允许为空,因此可以调用Default默认。

(3)插入部分数据
在使用Insert语句插入数据是,还可以插入部分数据,也就是可以为每一行的指定的部分列插入数据。在插入部分数据时,应该注意以下三个问题:
☆在Insert子句中,指定要插入数据的列名。
☆在Values子句中,列出与列名对应的数据。列名的顺序和数据的顺序应该完全对应。
☆在Insert子句中,没有列出的列应该至少具有这四种类型之一:Identtty属性,Timestamp数据类型,允许为Null,或者有一个指定的默认值。否则,会出现错误信息。
例子:
Usecust
InsertIntostudents(number,name)
Values(110,"影子")
打开cust数据库,向students表中插入一行数据
注意:如用下例语句将发生错误,因为name字段是不允许为空的(在创建数据库时设定的)
InsertIntostudents(number)
Values(110)

(4)用Select语句插入多条数据
Insert语句插入数据的特点是每一次只能插入一行数据。相反,Select也可以用在Insert语句中,并且可以一次插入多条数据。使用Select语句插入数据的语法形式如下:
Inserttable_name
Selectcolumn_list
Fromtable_list
Wheresearch_conditions
在使用Select语句插入数据时,应该注意下面几点:
☆在Insert语句中使用Select时,他们参考的表既可以是相同的,也可以是不同的。
☆要插入数据的表必须已经存在。
☆要插入数据的表必须和Select的结果集兼容。兼容的含义是列的数量和顺序必须相同,列的数据类型或者相同,或者SQLServer可以自动转换。
例子:
Usecust
Insertstudents
Selectnumber,name,sex,birthday,hometown,telphone_no,address,others
Fromstudents
注意:
Select后面的字段要输完整,这个例子是自己向自己插入多条数据(自己向自己插入是被允许的)
补充:
你还可以“Fromstudents”后面加上“Wherename="影子"”,只插入name等于影子的记录,可以用And和Or加上多个条件。

(5)使用SelectInto插入数据到一个新表中
带有Into子句的Select语句允许用户定义一个新表并且把数据插入到新表中。这种方法不同于前面讲述的那些方法。在前面的那些方法中,一个共同的特点,是在数据输入之前表已经存在。而使用SelectInto插入数据的方法,是在插入数据的过程中建立新表。
SelectInto语句的语法如下:
Selectselect_list
Intonew_table_name
Fromtable_list
Wheresearch_conditions
在使用SelectInto插入数据时,要注意下面几点:
☆在某个数据库中使用SelectInto插入数据时,设置该数据库的SelectInto/BulkCopy为真。
☆新表不能存在,否则会产生错误信息。
☆新表中的列和行是基于查询结果集
☆要插入的数据不记录在日志中。
☆在select_list中出现的列应该使用别名,否则,新表中的列没有列名。没列名的表只能通过Select*Fromnew_table_name的形式查询。因此,应该为列起个别名。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:SQL的基本操作(2.数据库的相关操作)   下一篇:SQL的基本操作(4.数据的检索)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号