数据表基础

基本数据类型
学习char:固定长度的非Unicode字符数据;varchar:可变长度的非Unicode字符数据;nchar:固定长度的Unicode数据;nvarchar:可变长度的Unicode字符数据
char和varchar:汉字占两个字节,英文、数字或字符占一个字节。
例性别男,女:用char(2)或varchar(2)
nchar和nvarchar:无论汉字,数字或字符都占一个字符
例性别男,女:用nchar(1)或nvarchar(1)
固定长度与非固定长度
身份证号:18位长度固定,char(18)或nchar(18)
住址:varchar(255)/nvarchar(255)
小说或新闻:TEXT或NTEXT


T-SQL语句创建表,例:
在E_Market中创建表 CommodityInfo

USE E_Market
GO
CREATE TABLE CommodityInfo
(
CommodityId int IDENTITY(1,1) NOT NULL,
SortId int  NOT NULL,
CommodityName varchar(50) NOT NULL,
Ficture image,
InPrice float not null,
OutPrice float not null,
Amount  INT NOT NULL
)
GO

使用ALTER TABLE 语句修改表结构

use db_2012
ALTER TABLE mingri ADD  Sex char(2)                    --向db_2012数据库中的mingri表中添加Sex字段
ALTER TABLE   mingri DROP COLUMN Sex           --删除db_2012数据库中mingri中的Sex字段

使用DROP TABLE语句删除表

DROP TABLE mingri                      --删除表mingri

管理数据

  1. 使用INSERT 语句添加数据
INSERT INTO table_or_view_name VALUES (expression)
INSERT INTO Employee (ID,Name,Sex,Age) VALUES (12,'余杭','nv',24,null)
INSERT INTO Employee  VALUES (12,'余杭','nv',24,null)
  1. 使用UPDATE语句修改数据
    修改数据表中不符合要求的数据或时错误的字段时,可以使用UPDATE语句进行修改
UPDATE Employee SET Sex='女' WHERE Name='肖一子'                          --将Employee中“肖一子”的性别改为女
UPDATE Employee SET Age=Age+2                                                           --将Employee表中所有员工的年龄加2岁

使用DELETE语句上删除数据
DELETE 语句用于从表或视图中删除行。

语法:
DELETE FROM <table_source> WHERE{search_condition}
例:DELETE FROM Employee EHERE ID=7                                      --如果不指定where子句时,则删除表中所有记录

创建、删除和修改约束

约束的类型:
(1) 主键约束:要求主键列不能为空,要求主键列唯一
(2)非空约束:要求该列不能存在空值
(3)唯一约束:要求该列的值必须唯一,允许为空,但只能出现一个空值
(4)检查约束:限制某列取值的范围是否合适,控制放入列中的值
(5)默认约束:设计某列的默认值
(6)外键约束:用于在两表之间建立关系,需要指定引用主表是哪一列
T-SQL语句添加约束
语法: ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明。
约束名的取名规则推荐采用:约束类型_约束列
(1) 主键 (Primary Key):如PK_UserId
(2) 唯一 (Unique Key):如UQ_UserCardld
(3) 默认 (Default Key):如DF_UserPasspwd
(4) 检查 (Check Key):如CK_Gender
(5) 外键 (Foreign Key):如FK_Dortld
(6)非空


主键约束:
1.创建主键约束
在创建表时创建主键约束:例

USE db_2012 
CREATE TABLE Employee5
(
ID INT CONSTRAINT PK_ID PRIMARY KEY                  --ID字段设为主键约束
)

在现有表中创建主键约束

USE db_2012 
ALTER TABLE mingri
(
ID INT CONSTRAINT PRM_son PRIMARY KEY(ID)          --对ID字段添加主键约束
)

2.修改主键约束
若要修改主键约束,必须先删除现有的主键约束,然后再用新定义重新创建该约束
3.删除主键约束

ALTER TABLE table_name DROP CONSTRAINT constraint_name

唯一约束
1.创建唯一约束
在创建表时创建唯一的约束

USE db_2012
CREATE TABLE Employee6
( 
ID INT CONSTRAINT UQE_ID UNIQUE            --设置为唯一约束
)

在现有表中创建唯一约束

ALTER TABLE  Employee6
ADD CONSTRAINT unique1_ID UNIQUE(ID)         --将 Employee6表中的ID字段设置为唯一约束

2.修改唯一约束
若要修改唯一约束,必须先删除现有的唯一约束,然后再用新定义重新创建该约束
3.删除主键约束

ALTER TABLE Employee6  DROP CONSTRAINT  unique1_ID

检查约束
在创建表时创建检查约束

CREATE TABLE Employee7
(
SEX CHAR(2) CONSTRAINT CK_Sex check(sex in('男','女‘)          --性别直接受男女
)

在现有表中创建检查约束

ALTER TABLE Employee5 ADD CONSTRAINT Check_Sex Check(Sex='女')

2.修改检查约束
若要修改检查约束,必须先删除现有的检查约束,然后再用新定义重新创建该约束
3.删除检查约束

ALTER TABLE Employee5 DROP CONSTRAINT Check_Sex

默认约束
1.创建默认约束
在创建表时创建默认约束

CREATE TABLE Employee8
(
Sex char(2) CONSTRAINT Default_Sex Default '女'                --将字段Sex设置为默认约束’女‘
)

在现有表中创建默认约束

ALTER TABLE table_name
ADD CONSTRAINT constraint_name DEFAULT constant_expression  FOR column_name

2.修改默认约束
修改表中列的Default约束使用的表达式,首先删除现有的Default约束,然后使用新定义重新创建,才能修改Default约束
3.删除默认约束

ALTER TABLE table_name
DROP CONSTRAINT constraint_name

外键约束
通过定义FOREIGN KEY 约束来创建外键。在外键引用中,当一个表的列被引用作为另一个表的主键值的列时,就在两表之间创建了链接。
注意:外键约束注意类型,长度必须与引用的主键列的类型,长度完全一样;外键约束注意引用的表中必须有主键列
1.在创建表时创建外键约束
例;创建表mrsoft,并为mrsoft表创建外键约束,该约束把mrsoft中的编号(ID)字段和表Employee中的编号(ID)字段联系起来,显示mrsoft中的编号(ID)字段的取值要参照表Employee中编号(ID)字段的数据值。

CREATE TABLE mrsoft
(
ID INT,
CONSTRAINT FKEY_ID FOREIGN KEY (ID) REFERENCES Employee(ID)
)

在现有表中创建默认约束

ALTER TABLE table_name
ADD CONSTRAINT constrain_name                            --外键约束名称
FOREIGN KEY (columna_name,...)                              --所选字段
REFERENCES ref_table(ref_column_name,...)           --约束所引用的表,约束表中的字段

2.删除默认约束
例;删除Employee表中的外键约束

ALTER TABLE mrsoft
DROP CONSTRAINT FKEY_ID
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值