Transact-SQL语言-DDL

Transact—SQL是结构化查询语言(SQL)的增强版本,与许多ANSI SQL标准兼容,Transact-SQL代码已成为SQL Server的核心
 
DDL
数据定义语言(DDL)是指用来定义和管理数据库以及数据库中各种对象的语句,这些语句包括CREATE、ALTER和DROP等。在SQL Server 2005中,数据库对象包括表、视图、触发器、存储过程、规则、默认、用户自定义的数据类型等。这些对象的创建、修改和删除等都可以通过使用CREATE,ALTER,DROP等语句来完成。
例3-1 创建数据库表
Code
/*下面的例子将创建表S。*/
CREATE TABLE S
(
   sno  
char(10)  NOT NULL       /*学号字段*/
         
CONSTRAINT PK_sno PRIMARY KEY CLUSTERED/*主键约束*/
         
CHECK (sno like '31300501[0-9][0-9]')/*检查约束*/,
   sname      
char(8)     NULL/*姓名字段*/
   sex     
char(2)   NULL/*性别字段*/
   age    
int  NULL/*年龄字段*/
   dept   
varchar(20)   NULL/*系别字段*/
  )
 
例3
-2 修改S表,增加一个班号列
ALTER TABLE S 
ADD
CLASS_NO 
CHAR(6
 
例3
-3 删除S表
   
DROP table S
 
INSERT
INSERT语句用于向数据库表或者视图中加入一行数据。INSERT语句的语法形式如下:
   INSERT [INTO] table_or_view [(column_list)] VALUES(data_values)
在进行数据插入操作时须注意以下几点:
(1)必须用逗号将各个数据分开,字符型数据要用单引号括起来。
(2)INTO子句中没有指定列名,则新插入的记录必须在每个属性列上均有值,且VALUES子句中值的排列顺序要和表中各属性列的排列顺序一致。
(3)将VALUES子句中的值按照INTO子句中指定列名的顺序插入到表中。
(4)对于INTO子句中没有出现的列,则新插入的记录在这些列上将取空值,如上例的SCORE即赋空值。但在表定义时有NOT NULL约束的属性列不能取空值。
例3-5   创建SC表(学生选课表),并向SC表中插入一条选课记录(’S7’,’C1’)。
Code
CREATE TABLE SC
(
   sno  
char(10)  NOT NULL
   cno 
char(2)    NULL/*课程编号字段*/
  score  numerical(
4,1NULL  /*成绩字段*/
  )
          
Go
INSERT INTO SC (sno,cno) VALUES ('3130050101''c1')
Go
 
的语法格式为:
INSERT INTO table_or_view [(column_list)] 子查询
例3-7   求出各位学生的平均成绩,把结果存放在新表AVGSCORE中。
程序清单如下:
Code
/*首先建立新表AVGSCORE,用来存放学号和学生的平均成绩。*/
CREATE TABLE AVGSCORE
(SNO 
CHAR(10),
AVGSCORE 
SMALLINT
Go
/*利用子查询求出SC表中各位学生的平均成绩,把结果存放在新表AVGSCORE中。*/
INSERT INTO AVGSCORE
SELECT SNO,AVG(SCORE)  --AVG求平均运算
FROM SC
GROUP BY SNO --是求每个学生的,而不是全班成绩平均
 
UPDATE
UPDATE语句用于修改数据库表或视图中特定记录或者字段的数据,其语法形式如下:
   UPDATE table_or_view SET <column>=<expression>[,<column>=<expression>>]…
   [WHERE <search_condition>]
其中:table_or_view是指要修改的表或视图;SET子句给出要修改的列及其修改后的值,其中column为要修改的列名,expression为其修改后的值;WHERE子句指定待修改的记录应当满足的条件,WHERE子句省略时,则修改表中的所有记录。
 
例3-8 一个带有WHERE条件的修改语句。
程序清单如下:
Code
use adventureworks
go
update person.address 
set city='Boston' where  addressid=1
posted @ 2007-12-30 12:19  湘西小刁民  阅读(312)  评论(0编辑  收藏  举报