Sqlserver 学习笔记
--触发器str_trigger创建后往std_table中添加数据
INSERT std_TABLE(姓名,专业方向,系部代码) VALUES('浅忆','计算机',02)
--出错,当IDENTITY_INSERT 设置为OFF时,不能为表'std_table1' 中的标识列插入显式值。
--解决办法,把目标表中的标识列改为非标识列,然后执行如下语句
右击std_table1表[表设计]。。。。[是标识]那边设置为否,保存
INSERT std_table(姓名,专业方向,系部代码) VALUES('浅忆','数学','02')
--触发器往std_table1表插入数据时同样受到表std_table1的约束。
SELECT * FROM std_table
SELECT * FROM std_table1
--创建删除触发器【更新也是一样的道理】
CREATE TRIGGER tri_delete
ON std_TABLE
FOR DELETE
AS
DECLARE @a CHAR(20), @name CHAR(20), @major VARCHAR(20)
SELECT @a = 学号, @name = 姓名, @major = 专业方向 FROM DELETED
INSERT std_TABLE(姓名,专业方向,系部代码) VALUES('浅忆','数学','02')
INSERT std_TABLE(姓名,专业方向,系部代码) VALUES('浅忆','数学','02')
DELETE FROM std_TABLE WHERE 姓名= '浅忆'
SELECT * FROM std_table
SELECT * FROM std_table1
--查看触发器的信息
EXEC sp_helptrigger std_table
--删除触发器
DROP TRIGGER tri_insert
DROP TRIGGER tri_delete
--查看触发器的信息
exec sp_helptrigger std_table
30 常用数据类型
数据类型 | 类型 | 描述 |
bit | 逻辑数据类型 | 用于存储只有两种可能值的数据,如(0,1,false,ture) |
int | 整数数据类型 | 可以存储从-2147483618到2147483647之间的整数(每个值占用4个字节) |
float | 浮点数据类型 | 一种近似值类型,可以存储从-1.79E+308到1.79E+308的任意数 |
char | 字符数据类型 | char(n)按固定长度存储字符串,n必须从1-8000,若输入的数不足n字节,则补足后存储,若输入的数据超过n字节,则截断后存储(每一个字符占一个字节) |
varchar | varchar(n)按输入字节的实际长度存储字符串,n必须从1-8000,char数据类型长度固定,比varchar类型的处理数度快(每一个字符占一个字节) | |
nchar | 固定长度的字符数据(每个字符占两个字节) | |
nvarchar | 可变(每个字符占二个字节) | |
datatime (sql里面只能小写) | 日期时间类型 | 用来表示时间和日期。可以存储从1753年1月1日到9999年12月31日间的所有的日期和时间数据,精确到3.33毫秒(y-m-d h:m:s y/m/d h:m:s) |
text | 文本 | 用于存储大量文本数据 ,其容量理论上为1到2的31次方个字节,在实际应用时需要视硬盘的存储空间而定。 |
image | 图像 | 用于存储图像数据类型 |
money | 十进制货币值 | 00.0000 |
1 清空数据
TRUNCATE TABLE <</span>表名>
举例:
TRUNCATE TABLE orders
=
DELETE FROM orders
注意:TRUNCATE和DELETE都可以删除表中的数据,但是TRUNCATE 效率更高,不记录在日志文件中,不可以恢复。
2 数据查询列列名
<1>使用 = 来命名列
SELECT 'name' = 姓名+ '.' FROM 学生
举例:
SELECT 'name' = 姓名+ '.' FROM 学生
<2>使用常量列
SELECT Sname = 姓名 , Snum = 学号 , 'birthday' AS 出生年月 FROM 学生
<3>使用AS
SELECT 姓名 AS Sname, 学号 AS Snum FROM 学生
<4> 不使用任何(=,常量列,as)
SELECT 姓名 Sname, 学号Snum FROM 学生