设为首页 加入收藏

TOP

史上最全的MSSQL复习笔记(二)
2015-11-21 02:09:59 来源: 作者: 【 】 浏览:8
Tags:史上 最全 MSSQL 复习 笔记
除主键表数据
?
?
-- 级联的操作:不建议使用:会破坏数据完整性
-- 不执行任何操作:该报错就报错,该删除就删除
-- 级联:删除主表记录,从表引用该值的记录也被删除
-- 设置null:删除主表记录,从表对应的字段值设置为null,前提是可以为null
-- 设置为default:删除主表记录,从表对应的字段值设置为default,前提是可以为default
?
主键约束(PK Primary key) 唯一键约束(UQ unique) 外键约束(FK foreign key) 默认值约束(DF default) check约束(CK check)
?
语法:
alter table 表名
add constraint 前缀_约束名称 约束类型 约束说明(字段 关系表达式 值)
?
?
use School
if exists(select * from sysobjects where name='PK_Classes_Classid')
?alter table classes ?drop constraint PK_Classes_Classid
alter table classes?
add constraint PK_Classes_Classid primary key(classid)
--为id添加主键
alter table teacher?
add constraint PK_teacher_id primary key(id)
--为name添加唯一键
alter table teacher
add constraint UQ_Teacher_Name unique(Name)
--同时创建salary的默认约束和age的check约束
alter table teacher
add constraint DF_Teacher_Salary default(5000) for salary,
constraint CK_Teacher_Age check(age>0 and age<=100)
--为teacher表的classid字段创建主外键
if exists(select * from sysobjects where name='FK_Teacher_Classes_Classid')
?alter table teacher ?drop constraint FK_Teacher_Classes_Classid
alter table teacher
with nocheck --不检查现有数据
add constraint FK_Teacher_Classes_Classid foreign key(classid) references classes(classid)
--on delete set default ?级联操作
--不执行任何操作:该报错就报错,该删除就删除 ?--no action --默认选择
--级联:删除主表记录,从表引用该值的记录也被删除 --cascade
--设置null:删除主表记录,从表对应的字段值设置为null,前提是可以为null ? --set null
--设置为default:删除主表记录,从表对应的字段值设置为default,前提是可以为default ?--set default
?
?
5.四中基本字符类型说明
?
?
--len(参数) --获取指定参数内容的字符个数
select LEN('abcd') 【4】运行结果
select LEN('中华人民共和国') 【7】
?
--DataLength(参数):获取指定内占据的字节数--空间大小
select DataLength('abcd') 【4】
select DataLength('中华人民共和国') 【14】
?
--char类型:当空间分配后,不会因为存储的内容比分配的空间小就回收分配的空间。但是如果存储的内容超出了指定的空间大小,就会报错,当你存储的内容的长度变化区间不大的时候可以考虑使用char
select LEN(char) from CharTest 【2】
select DataLength(char) from CharTest 【10】
?
--varchar ?var--变化的:当你存储的内容小于分配的空间的时候,多余的空间会自动收缩。但是如果存储的内容超出了指定的空间大小,就会报错 当存储的内容波动区间比较大时候使用varchar
select LEN(varchar) from CharTest 【2】
select DataLength(varchar) from CharTest 【2】
?
--nchar-- ?n代表它是一个unicode字符。规定不管什么样的字符都占据两个字节。 ?char:空间是固定的
select LEN(nchar) from CharTest 【10】
select DataLength(nchar) from CharTest 【20】
?
--nvarchar ?n ?var ?char?
select LEN(nvarchar) from CharTest 【2】
select DataLength(nvarchar) from CharTest 【4】
?
?
?
?
6.SQL基本语句
?
数据插入
调用方法 一 一对应原则:类型对应,数量对应,顺序对应
语法: 形参 实参?
insert into 表名([字段列表]) values(值列表) --数据必须要符合数据完整性
插入操作是单个表的操作
插入操作insert一次只能插入一条记录
?
?
?
use School
--插入teacher所有字段的数据.如果在表后没有指定需要插入的字段名称,那么就默认为所有字段添加值
--但是一定需要注意的是:标识列永远不能自定义值--不能人为插入值
--仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Teacher'中的标识列指定显式值。
insert into Teacher values('张三',5,1,30,4000,'1984-9-11')
insert into Teacher(Name,ClassId,Gender,Age,Salary,Birthday) values('张三',5,1,30,4000,'1984-9-11')
--不为可以为null的字段插入值 ?:可以null的字段可以不赋值?
--列名或所提供值的数目与表定义不匹配
insert into Teacher(Name,ClassId,Gender,Age,Salary) values('李四',5,1,30,4000)
--非空字段一定需要赋值 :不能将值 NULL 插入列 'Gender',表 'School.dbo.Teacher';列不允许有 Null 值。INSERT 失败
insert into Teacher(Name,ClassId,Age,Salary) values('李四',5,30,4000)
--为有默认值的字
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL存储过程将符合条件的大量记录.. 下一篇SQL 查询所有表名、字段名、类型..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: