数据库表的操作
目录
一、创建表
二、修改表
三、列约束和表约束
四、表数据的操作
一、创建表
1、为什么要创建表: 我们建好数据库后,相当于建了一个仓库,物理上是创建了几个操作系统文件(数据和日志人间),我们要存入数据才算是数据库。然而数据用表存放,所以我们要在建好的数据库中先建表,再放入数据
2、数据类型:
数据类型决定了数据的存储格式,代表不同的信息类型。为数据库中的字段和编程中的变量指定一个数据类型和划分合适空间。例如:char(2)和int型
(1)、字符型:
- char(n)数据类型: 存储固定长度的字符串。不满的自动填补空格,n在1到8000字节之间
- varchar(n)数据类型: 存储可变长度 字符串。有几个存几个,超出n的部分截断后存储,不满的存储实际的大小,所以当不确定长度又怕空间浪费时可以使用
- text数据类型: 存储很大的数据,抄错8kb的ASCII数据可以使用
(2)、整型:
- bigint(大整数): 所有数字,存储大小为8kb
- int(整型): 存储大小为4kb
- smallint(短整型): 存储大小为2kb
- tinyint(微短整型): 从0-255的整形数据,存储大小为1kb
(3)、精确数值型: 由整数部分和小数部分构成
- decimal(整数部分个数,小数部分个数),不能用于带有identity关键字的列
- numeric(整数部分个数,小数部分个数),可以用于带有identity关键字的列
(4)、近似数值类型:
- float(n): n为进度(尾数的位数),n是从1到53的整数
- real: 存储大小为4kb
(5)、日期时间型
- datetime类型: 范围从1753年1月1日到9999年12月31日,需8kb存储大小
- smalldatetime类型: 范围从1900年1月1日到2079年6月6日,需4kb存储大小
(6)、货币型
- money: 存储大小为8kb
- smallmoney: 存储大小为4Kb
(7)、二进制类型
- binary(n): 存储空间固定的数据类型
- varbinary(n): 存储可变长二进制数据
- image 数据类型可以存储2的31次方减1个字节的二进制
(8)、Unicode字符型:
- nchar(n): n必须是介于1-4000之间的数值
- nvarchar(n): 可变长度的字符数据,n在1-4000之间
- ntext: 存储2的30次方减1个字节的Unicode字符数据
(9)、其他数据类型:
cursor、SQL-varint、table、timestamp、uniqueidentififr及XML等数据类型
3、使用T-SQL创建表
(1)、建库、建表和插入数据
扫描二维码关注公众号,回复:
6537689 查看本文章
use master
go
--判断数据库是否存在
if exists(select * from sysdatabases where name='Inventory')
drop database Inventory
go
--创建数据库
create database Inventory
on primary
(
name ='Inventory_data',
filename='D:\DB\Inventory_data.mdf',
size=20mb,
filegrowth=20%
)
log on
(
name='Inventory_log',
filename='D:\DB\Inventory_log.ldf',
size=10mb,
filegrowth=20%
)
go
--创建商品表
if exists(select * from sysobjects where name='Goods')
drop table Goods
create table Goods
(
Gno char(6) primary key,--商品编号
Price int not null,--单价
GName varchar(20) not null,--商品名称
Producer varchar(30) not null--生产商
)
go
--创建仓库表
if exists(select * from sysobjects where name='Store')
drop table Store
create table Store
(
Stno char(6) primary key,
Address varchar(20) default('地址不详'),
Telephone varchar(11),
Capacity int not null
)
go
--创建库存表
if exists(select * from sysobjects where name='Invent')
drop table Invent
create table Invent
(
Stno char(6) constraint fk_Stno foreign key references Store(Stno),
Gno char(6) constraint fk_Gno foreign key references Goods(Gno),
Number int ,
constraint pk_SG primary key(Stno,Gno)
)
go
--创建管理员表
if exists(select * from sysobjects where name='Manager')
drop table Manager
create table Manager
(
Mno char(3) not null primary key,
Mname varchar(20) not null,
Pwd varchar(10) not null
)
go
--插入数据
insert into Goods(gno,gname,price,producer) values('bx-179','冰箱',3200,'青岛海尔'),('bx-340','冰箱',2568,'北京雪花'),('ds-001','电视',1580,'四处长虹')
insert into Store(stno,address,telephone,capacity) values('001','1号楼105','12345679120',67),('002','1号楼106','12356789540',78),('003','1号楼101','12348578120',56)
insert into Invent(stno,gno,number) values('001','bx-179',5),('002','bx-340',12),('003','ds-001',10)
insert into manager(mno,mname,Pwd) values('101','张力','123456')
--查询数据
select * from goods
select * from store
select * from invent
select * from manager
(2)、约束类型:
- null,允许我空值
- not null,不允许为空值
- primary key:主键,非空且唯一
- unique:唯一
- check:检查约束
- default:默认约束
- foreign key:外键约束
二、修改表
1、使用T-SQL修改表
alter table table_name
[alter column {column_name new _date_type [<column_constraint>]}] /*修改已有列的属性*/
| add {column_name column_type [<column_constraint>]} /*增加新列*/
| drop {[constraint] constraint_name | column column_name} /*删除列或约束*/
三、列约束和表约束
1、主键约束
/*添加主键约束*/
alter table table_name
add constraint constraint_name primary key(column_name)
/*删除主键约束*/
alter table table_name
drop constraint constraint_name
2、unique约束
/*添加约束*/
alter table table_name
add constraint constraint_name unique
/*删除约束*/
alter table table_name
drop constraint constraint_name
3、foreign key约束
/*创建外键约束*/
alter table table_name
add constraint constraint_name foreign key(column_name) references reference_table(column_name)
/*删除约束*/
alter table table_name
drop constraint constraint_name
四、表数据的操作
1、插入数据
insert into Goods(gno,gname,price,producer) values('bx-179','冰箱',3200,'青岛海尔'),('bx-340','冰箱',2568,'北京雪花'),('ds-001','电视',1580,'四处长虹')
2、修改数据
update table_name set column_name=expression
3、删除数据
delete from table_name where condition_expression
4、有truncate table清空表格
truncate table table_name
5、用T-SQL删除表
drop table table-name