SQL SERVER命令总结
查询语句:
SELECT [ALL/DISTINCT][TOP]
<目标列> [as 别名][,<目标列1> as 别名]? FROM <表名或视图名>[as 别名]? [WHERE 条件表达式?]
[GROUP BY <列名1>[HAVING<条件表达式>]] [ORDER BY<列名2>[ASC/DESC]] 应该注意:SELECT语句的顺序:
SELECT-->FROM-->WHERE-->GROUP BY-? HAVING ?ORDER BY SELECT INTO:生成新表格 DISTINCT:唯一 GROUP BY:分组汇总
ORDER BY:排序,默认情况下为升序. ASC:升序 DESC:降序 AS:起别名
HAVING:筛选分组汇总后的行
SELECT TOP n
IN:用于返回给定的值与列表中的值相匹配的行 BETWEEN?AND?: 在...之间查询 IS NOT NULL:查询不为空的数据
查询中使用的常量:一般与 “+”连用.起到一个组合的目的 注意
1. SELECT后面的字段如果不包括聚合函数,必须参加分组(GROUP BY 2. GROUP BY后面不能使用聚合函数 3. 查询时,可以使用2个聚合函数
使用INSERT插入数据
? 添加完整记录:
INSERT [INTO]<目标表名>VALUES
INSERT [INTO]<目标表名>(字段名列表)VALUES<字段值列表>
特别的记住:字段名列表和字段值列表是一一对应的.即后面的字段值随着前面的字段名的改变而改变. 另一种方法:
语法:INSERT<表名>SELECT
语法:INSERT INTO Sales(Stor_id)SELECT stor_id FROM Stores
UPDATE语句
更新一行:
UPDATE<新表名>SET<目标列=值>[WHERE<条件>](范围) 更新多行:
UPDATE<表名>SET<目标列=值>;{<---没有WHERE} 更新一行和更新多行的区别在于有没有WHERE的存在
DELETE语句
1:删除一行:
语法:DELETE FROM<表名>[WHERE<条件>] 2:删除多行:
语法:DELETE FROM<表名>
删除一行和删除多行区别在于有没有WHERE的存在 3: TRUNCATE TABLE
用于删除表中所有行的命令.DROP删除表
与DELETE的区别在于:TRUNCATE不写日值文件,无法恢复数据
JOIN语句 联接信息:
Table_a AS table_alias_a JOIN table_b AS table_alias_b On
table_alias_a .
A:内联接
INNER JOIN:查询两个表中的公共部分 B:外联接
左外联接:left OUTER JOIN 右外联接:right OUTER JOIN 完整联接:FULL OUTER JOIN C:自联接
创建表的结构
1.名称:表名 字段名 2.数据类型: 系统定义的
用户定义的: exec sp_addtype 用户定义的数据类型名 , 数据类型(系统有的),not null(是否允许为空) 3.大小: 4.约束:
主键约束 PRIMARY KEY create table 表名(字段 数据类型 primary key /
primary key(字段?))
唯一约束 UNIQUE create table 表名(字段 数据类型 unique)
默认约束DEFAULT create table 表名(字段 数据类型 default ‘值/表达式’) 检查约束 CHECK create table 表名(字段 数据类型 check (字段的表达式)
外键约束 FOREIGN KEY create table表名(字段 数据类型 foreign key references(应用) 另一个表名(字段))
更新表的结构
1.修改数据类型:alter table 表名 alter column 列名 数据类型 2.添加一列: alter table 表名 add 列名 数据类型 3.删除一列: alter table 表名 drop column 列名
4.增加约束: alter table 表名 add constraint 约束名 约束表达式 主键约束: primary key(列名列表) 唯一约束: unique(列名)
默认约束: default ‘值’for 列名
检查约束: check (列的检查约束表达式)
外键约束: foreign key(列名)references 表名(列名)
删除表的结构
drop table 表名
子查询
Select 字段 from 表(select查询)
子查询就是内层查询产生一个用于外层查询的条件 子查询经常使用的是条件运算符(>,<,<=,>=,=,!=) 子查询与in联合使用经常用于判断一列数据
子查询与exists联合使用经常用于判断一张表的字段
触发器
1。触发器:是一种特殊存储过程,它能对有触发器的表中的数据进行保护. 2。触发器主要通过操作事件(insert,update,delete)进行触发而被自动执行, 不能被调用,也不能传递参数
3。a)触发器根据数据修改语句可分为:insert触发器,update触发器,delete触发器
b)根据引起触发时刻可分为after触发器,instead触发器。 i.after触发器是在执行数据操作之后激发 ii.instead of 触发器是在执行数据操作之前激发
iii.一个表可以建立多个after触发器,可以建立一个instead of触发器
触发器中的inserted表和deleted表
1。触发器运行后在内存中自动创建。
2。他们用于对触发器执行后某些数据的测试条件