1、数据表的基本概念数据表就是相关联的行列数据集合。 1. 字段 数据表中的一列称为一个字段。 每个字段的标题名称称为列名或字段名,一个数据表中的字段名必须是唯一的。 一个字段中存放同一类型的数据,不同字段存放的数据类型可以不同。 一个字段中所存放的数据类型 、数值大小及字段长度成为该字段属性。 2. 记录 数据表中的一行成为一个记录。 每个表都有一个主键,主键字段的数据可以唯一标识表中的一条记录。 设置了主键的数据表中,各条记录是唯一的。,3.用T-SQL语句创建数据表及约束对象,3.1 用Create Table 语句创建表的结构,语法格式: Create table 表名( 列名1 列属性
2、,列名2 列属性 ,列名n 列属性),注意: 列的定义必须放在圆括号中。 语法中参数顺序不能改动。 最多可以设置1024个字段,列属性:如数据类型、null、默认值等,例:建立一个“student”表,CREATE TABLE Student(fCode varchar(9) NOT NULL ,fName varchar(10) NOT NULL ,fSex char(2) NOT NULL ,fClass varchar(4) NOT NULL,fBirthday datetime),1.字段属性 定义格式: 数据类型(长度) identity(初始值,步长值)null | not nul
3、l,默认长度的数据类型 “(长度)”不允许指定;需要指定长度时圆括号不能省略 identity用于指定该列为自动编号字段(标识列) null | not null 用于指定该列允许空值(默认)或不允许空值,2.字段约束 定义格式: constraint 约束名 primary key (主键列名) constraint 约束名 unique (惟一列名) constraint 约束名 foreign key (外键列名)references 引用表名(引用列名) constraint 约束名 check (检查表达式) constraint 约束名 default 默认值,1. 约束名为以后修
4、改管理时使用,省略为系统默认的约束名。2. 字段约束也可以在创建表结构以后另外单独设置3. 定义字段同时定义所绑定的约束时,可以省略列名。,3.2用ALTER TABLE 语句修改表的结构,修改表结构的语句 ALTER TABLE 的语法格式:ALTER TABLE 表名add 列名 数据类型(长度 )null | not nulldefault 默认值 | alter column 列名 数据类型(长度)null | not null | drop column 字段名 ,n | add constraint 约束名 约束类型定义 ,n for 列名 | drop constraint 约束
5、名 ,n,1 使用add子句添加列 Alter table 表名add 列名 数据类型(长度 )null | not nulldefault 默认值,新增加字段时可以同时设置空值约束、默认值约束 若不允许为空时则必须给新增加的列指定默认值,否则语句出现执行错误,注意: 添加的字段若不允许为空则必须设置默认值,如果不允许为空又不需要设置默认值,可在添加字段时先允许为空,再用 alter column 子句修改为不允许为空,这样就没有默认值了。,2、使用alter column子句修改字段属性 ALTER TABLE 表名alter column字段名 数据类型(长度)null |not null
6、,将一个原来允许为空值的列设置为不允许为空时,必须保证表中已有记录中该列没有空值,而且该列没创建索引 改变数据类型时,如果原来设置了默认值约束,一般应先解除或删除约束后再修改,否则很容易发生错误。,例: Use diannaoxs Alter table 供货商表 alter column 联系电话 char(20),3 用add constraint 子句添加列约束 ALTER TABLE 表名add constraint 约束名约束类型及定义for 列名,n,该语句添加约束必须指定约束名,而且必须是惟一 可以用FOR指定列名,若约束类型及定义中已包含了列名,则不允许使用FOR子句 如果只允
7、许有一个约束的列已经设置了约束,则原有约束未解除时不能添加新的约束,使用一个约束名可以为不同字段添加多个约束设置主键约束:primary key(列名)设置惟一约束:unique(列名)设置外键约束:foreign key(列名) references 主表(列名)设置检查约束:check(表达式)设置默认值约束:default 默认值,5 用 drop constraint 子句删除列约束ALTER TABLE 表名drop constraint 约束名,n,6 用 drop column 子句删除字段 ALTER TABLE 表名drop column 字段名,nAlter table 供
8、货商表 drop column 联系电话,ALTER TABLE 表名 ADD 列名 列名属性 |DROP COLUMN 列名 |ALTER COLUMN 列名 列名属性 ,Alter table student add fEmail varchar(30) Alter table student drop column fEmail Alter table student alter column fid int,添加或删除表的列,(3)删除表,使用DROP TABLE 语句删除表,语法:DROP TABLE 表名 例如: 删除整个student表DROP TABLE student,3.6
9、 查看表信息,输入数据,编辑和删除记录,3.6.1 查看表信息1. 用企业管理器查看表的信息(1)查看表结构(2)查看表约束(3)查看表与表之间的相关性(4)查看其他对象的信息2. 使用T-SQL系统存储过程sp_help语句显示表结构及相关性 EXECUTE sp_help 表名3. 使用查询分析器的对象浏览器查看表的结构,1. 使用insert语句向表中插入记录Insertinto表名 (字段列表) values(值列表)(1)字段列表可以是任意列,但数据的个数、 顺序和类型必须保持一致。 (2)给表中全部字段提供数据时字段列表可以省略, 但此时提供数据的顺序(个数)必须与表中字段 顺序一
10、致。 (3)自动编号标识列不允许提供数据允许为空的字段不提供数据时必须使用NULL,4.6.2 向数据表输入数据,(4)一个insert values 语句只能向表中添加一条新记录 (5)只给表中部分字段提供数据时,必须指定字段列 表,不为空字段不能省略 (6)设置了默认值的字段使用默认值时,用default代表默认数据 (7)字符型和日期型数据要用单引号扩起来 (8)值列表中可以嵌套使用子查询的数据,但必须用圆括号括起来,例 Insert into 商品表 (货号,货名,规格,单位,参考价格)values(1003, 计算机 ,FZ,套,5500) Insert into 商品表 value
11、s(1003,计算机 ,FZ,套,default,5500,default),2)用insert select 语句向表中添加记录 格式: Insert 表名1 字段列表1select * | 字段列表2 from 表名2 where 条件表达式,表2的字段列表2中字段个数、顺序和类型 (*表示全部字段)必须与表1的字段列表1的个数、顺序和类型相兼容。 若给表1 中全部字段提供数据,则字段列表1可以省略,但表2的字段列表2不能省略并且其顺序必须与表1字段的定义顺序一致。 若给表1中部分字段赋值,字段列表1必须给出要添加数据的列名,但要保证不提供数据的列必须是允许为空的。,添加记录 例: Use
12、 diannaoxs Insert 厂家地址表 select 供货商,厂家地址 from 供货商表,4.6.5 数据表数据的更新,编辑修改和删除,1 使用企业管理器管理修改更新数据 2 使用update语句修改更新数据 格式:Update 表名1 set 列名=表达式,nfrom 表名2|表名列表及连接方式where 条件表达式 例: Use diannaoxs Update 商品表 set 参考价格=参考价格*0.97 where 货号=1003,3 数据表记录的删除 格式: Delete 表名 from 其它表名 where 条件表达式 例: delete aa表 where Is null,1 删除数据表 格式: Drop talbe 表名,n 2 删除规则 格式: Drop rule 规则名 ,n 3 删除默认值 格式: Drop default 默认名称,n,总结:,使用CREATE DATABASE 语句创建数据库,使用DROP DATABASE 语句删除数据库,使用CREATE TABLE 语句创建表,使用ALTER TABLE 语句修改表,使用DROP TABLE 语句删除表,