1、数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。
2、系统数据库提供了3种数据完整性规则:实体完整性规则、参照完整性规则、用户定义完整性规则。
3、整数数据类型:bigint(8字节)、int(4字节)、smallint(2字节)、tinyint(1字节)。
4、浮点数据类型:real(4字节)、float(8字节)、decimal[(p[,s])]、numeric[(p[,s])]
如:decimal(10,5)表示有10位数,小数有5位,整数也有5位。
5、字符数据类型:char(n)、varchar(n|max)nchar(n)、nvarchar(n|max)
如:char(1)若输入数据的字符串小于n,则系统自动在其后添上空格来填满设定好的空间;若输入的数据过长,将会截断超出部分。
6、日期和时间数据类型:date、time、datetime1、datetime2、smalldatetime、datetimeffset
(1)date数据格式为‘YYYY-MM-DD’,占3个字节
(2)time数据格式为'hh:mm:ss[.nnnnnnn],占5个字节
7、文本和图形数据类型:text、ntext、image
8、货币数据类型:money(8字节)、smallmoney(4字节)
money数据类型中整数部分包括包含19个数字,小数部分包含4位数字。
9、位数据类型:bit
10、二进制数据类型:binary(n)、varbinary(n|max)
其他:rowversion 计数器 、timestamp 时间截数据类型、uniqueidentifier 、cursor游标数据类型、sql_variant、table、xml
sp_addtype HomeAddress2,'varchar(128)','not null'
【例3.2】使用T-SQL语句创建数据表authors,输入语句如下:
CREATE TABLE authors
(
auth_id int identity PRIMARY KEY, --数据表主键
auth_name VARCHAR(20) NOT NULL unique, --作者名称,不能为空
auth_gender tinyint NOT NULL DEFAULT(1) --作者性别:男(1),女(0)
);
【例3.3】 在authors表中添加名称为auth_note的新字段,字段数据类型为varchar(100),允许空值,输入语句如下:
ALTER TABLE authors
ADD auth_note VARCHAR(100) NULL
【例3.4】在authors表中修改名称为auth_phone的字段,将数据类型改为varchar(15),输入语句如下:
ALTER TABLE authors
ALTER COLUMN auth_phone VARCHAR(15)
GO
ALTER TABLE authors
ADD CONSTRAINT uq_phone UNIQUE (auth_phone)
【例3.5】删除authors表中的auth_phone字段,输入语句如下:
ALTER TABLE authors
DROP COLUMN auth_phone
【例3.6】定义表table_emp,并表中e_id字段为主键列,输入语句如下:
CREATE TABLE table_emp
(
e_id CHAR(18) PRIMARY KEY,
e_name VARCHAR(25) NOT NULL,
e_deptId INT,
e_phone VARCHAR(15) CONSTRAINT uq_name UNIQUE
);
【例3.7】删除member表中的主键约束和唯一约束,T-SQL语句如下:
ALTER TABLE member
DROP CONSTRAINT PK_member, UQ_firstname
【例3.8】删除test数据库中的authors表,输入语句如下:
USE test
GO
DROP TABLE authors
课后练习
create database Market
use Market
create table customers
(
c_id int primary key not null,
c_name varchar(50),
c_contact varchar(50),
c_city varchar(50),
c_birth datetime not null
)
--修改c_name字段数据类型
alter table customers
alter column c_name Varchar(70)
--重命名c_contact
exec sp_rename 'customers.[c_contact]','c_phone','column'
--增加c_gender字段
alter table customers
add c_gender char(1)
--重命名表名
exec sp_rename 'customers','customers_info'
--删除字段c-city
alter table customers_info
drop column c_city
create table orders
(
o_num int primary key ,
o_date date not null,
c_id int not null
)
--增加外键
alter table orders
add constraint c_id foreign key(c_id) references customers_info(c_id)
--删除外键
alter table orders
drop constraint c_id