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

花心王010

花心王010

2016-02-19 12:27

下面是个SQL的基本操作(3.表的相关操作)教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!
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的形式查询。因此,应该为列起个别名。
  ☆这种方法多用在对列进行各种计算的情况。
  例子:
  Selectnumber,name
  Intonewcust1
  Fromstudents
  创建新的表newcust1,插入students表中的number和name字段的所有数据。
  补充:如果要插入所有字段的记录,则“Select*”,也可在“Fromstudents”后加条件,方法和上个例子一样。
  
  (6)用UPdate语句修改表中的数据
  Update语句用来修改表中已存在的数据。Update语句既可以一次修改一行数据,也可以一次修改许多行,甚至可以一次修改表中的全部数据。Update语句使用Where子句指定要修改的行,使用Set子句给出新的数据。新数据可以是常量,也可以是指定的表达式,还可以是使用From子句来自其他表的数据。
  Update语句的语法如下:
  Update{table_name|view_name}
  Set{column_list}=expression[,...]
  [Whereclause]
  在使用Update语句时,如果没有使用Where子句,那么就对表中所有的行进行修改。如果使用Update语句修改数据时与数据完整性约束有冲突,那么修改就不会发生,整个修改事务全部滚回。例如,这种冲突可能是所输入的值是错误的数据类型,或者所输入的值违背了在该列定义的规则约束,等等。
  例子:
  Usecust
  Updatestudents
  Setname=name "007"
  Wherenumber100
  打开cust数据库,修改students表,使number100的数据的name的值全部加"007"。
  
  4.用Delete语句删除表中的数据
  当数据库中的数据不需要的进修可以删除。一般情况下,删除数据使用Delete语句。Delete语句可以一次从一个表中删除一条或者多条数据行。
  Delete语句的语法如下:
  Delete[From]table_name
  Wheresearch_conditions
  在Delete语句中如果使用了Where子句,那么就从指定的表中删除满足Where子句条件的数据行。
  例子:
  Usecust
  Deletestudents
  Wherenumber100
  删除students中,number100的数据
  补充:
  如果在Delete语句中没有指定Where子句,那么就将表中所有的记录全部删除,即Deletestudents语句删除表中的全部记录。
  在删除表中的全部数据时,还可以使用TruncateTable语句。TruncateTable语句和Delete语句都可以将表中的全部数据删除,但是,两条语句又有不同的特点。当用户使用Delete语句删除数据时,被删除的数据要记录在日志中。并不将对数据的变化记录在日志中。因此,使用TruncateTablestudents语句删除记录的速度快于使用Deletestudents语句删除表中记录的速度。
  
  5.用DropTable命令删除表
  当数据库中的表不需要时可以删除。删除表可以使用DropTable语句。删除表就是删除表的定义以及表的全部数据、索引、触发器、约束和指定该表的许可。当删除表时,基于表的视图不能被删除,必须使用DropView语句删除视图。
  DropTable语句的语法如下:
  DropTabletable_name
  例子:
  Usecust
  DropTablestudents
  删除cust数据库中的students表。
  补充:
  不能使用DropTable语句删除正在被约束参考的表,必须首先要么删除外键约束,要么删除参考表。表的所有者可以删除表。当删除表是时,绑定在该表上的规则或者默认则失掉了绑定,该表的约束或者触发器则自动被删除。如果重新创建表,必须重新绑定相应的规则和默认、重新创建触发器和增加必要的约束。另外,系统表不能删除。
  删除表的许可属于表的所有者。然而,数据所有者(DBO)、系统管理员(SA)和DLL管理员可以删除数据库中的任何对象。->

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
SQL的基本操作(3.表的相关操作)

Sql表数据操作

SQLServer
Sql表数据操作

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL server 表操作介绍

编程语言 网络编程
SQL server 表操作介绍

SQL的基本操作(4.数据的检索)

编程语言 网络编程
SQL的基本操作(4.数据的检索)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

VC 操作 SQL Server 主从表

编程语言 网络编程
VC 操作 SQL Server 主从表

Freehand 10 基本操作(3)

Illustrator
Freehand 10 基本操作(3)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VisualBasic设计多媒体应用程序

VisualBasic设计多媒体应用程序

AJAX防止页面缓存的代码

AJAX防止页面缓存的代码
下拉加载更多内容 ↓