SQL Server数据表的基础知识与增查删改
由张晨辉(学生) 于19天 前发表 | 阅读94次
一、常用数据类型
1、整型:bigint、int、smallint、tinyint
2、小数:decimal、numeric
3、近似数字数据:float、real
4、货币数据:money、smallmoney
5、日期和时间:datetime、smalldatetime
6、字符数据:char、varchar、text
7、Unicode字符数据:nchar、nvarchar、ntext
8、二进制数据:binary、varbinary、ntext
9、其他:timestamp等
10、自定义用户类型的创建与删除:sp_addtype {type_name},[base_type] [,[‘NULL’|‘NOT NULL’]] [,’拥有者’]
Sp_droptype type_name
二、选择数据类型的指导原则
1、若列的值的长度相差很大,使用变长数据类型
2、谨慎使用tinyint数据类型
3、对于小数数据来说,多使用decimal数据类型
4、若行的存储量超过8000字节,使用text或者image
5、若不大于8 000字节,可使用char、varchar或者binary数据类型
6、货币数据,使用 money 数据类型
7、不要使用类型为 float 或者 real 的列作为主键
三、临时表
1、--创建全局临时表
CREATE TABLE ##GlobalTable
(
cola INT
)
2、--创建局部临时表
CREATE TABLE #LocationTable
(
cola INT
)
四、表
1、创建表
create table sales
(
order_no int not null,
order_date datetime not null,
ship_date datetime not null
)
2、修改表
exec sp_rename sales,ssaless
3、删除表
drop table sales
4、创建计算列的表
CREATE TABLE Sells
(
price money,
number int,
amount as price*number
)
5、创建函数列的表
CREATE TABLE TestTable
(
indate as getdate(),
id int,
usename AS USER_NAME()
)
6、修改表employee
ALTER TABLE employee
ADD telephone int null, --添加列:电话号码 telephone_no,添加列:字符列email为char
email char(29) null
ALTER TABLE employee --修改列类型:email为varchar
ALTER COLUMN email varchar(20) null
ALTER TABLE employee --修改列空为非空列
ALTER COLUMN email varchar(20) not null
Exec sp_rename ‘架构名.表名.旧字段名 ‘,新字段名,’column’ --修改字段名
ALTER TABLE employee --删除列
DROP COLUMN email
五、约束:约束是一种限制。在列或表的层次设置约束,确保数据符合某种数据完整性规则。
1、主键约束
(1)在创建表时加主键约束
create table customers
(
CustomerNo int identity not null primary key,
CustomerName varchar(30) not null
)
(2)在现有表中添加主键
alter table customers
add constraint PK_CustomerNo
Primary key (CustomerNo)
2、外键约束
(1)create table orders
(
OrderID int identity not null primary key,
CustomerNo int not null Foreign key references CUSTOMERS(customerno)
)
(2)在已存在的表中添加外键
alter table orders
add constraint FK_EmployeeCreatesOrder
Foreign key (customerno) references customers(customerno)
3、唯一约束:列上有一个唯一的值。
(1)创建表时创建唯一约束
create table shippers
(
shipperid int identity not null
primary key ,
phoneno varchar(14) not null unique
)
(2)在已存在的表中创建唯一约束
alter table shippers
add constraint AK_ShippersPhoneNo
Unique(phoneno)
4、Check约束:Check约束比较好的方面是不限制于一个特定的列。Check约束使用与where子句一样的规则定义。
(1)添加Check约束
alter table customers
Add constraint cn_customerdateinsystem
Check
(DateInSystem<=GetDate())
(2)删除Check约束
alter table testtable
drop constraint cn_customerdateinsystem
5、Default
(1)创建默认值
create table shippers
(
shipperid int identity not null primary key,
dateinsystem smalldatetime not null default GetDate()
)
(2)在已存在的表上加默认值
Alter table customers
Add constraint cn_customerdefaultdateinsystem
Default getdate() for dateinsystem