时间:2021-07-01 10:21:17 帮助过:19人阅读
? T-SQL (Microsoft Transact-SQL) 是微软在国际标准结构化查询语言(SQL)的基础上,为SqlServer定义的新的语言。
? 数据库操纵语言 DML (Data Manipulation Language) SQL允许用户或应用程序通过添加新数据、删除旧数据和修改以前存储的数据对数据库更新
语句 | 功能 | 示例 |
---|---|---|
SELECT | 从数据库表中检索数据行和列 | SELECT * FROM TABLE |
INSERT | 把新的数据记录添加到数据库中 | INSERT INTO TABLE VALUES(val1,val2...) |
DELETE | 从数据库中删除数据记录 | DELETE TABLE WHERE ID=1 |
UPDATE | 修改现有数据库表中的数据 | UPDATE TABLE SET NAME=‘HELLO‘ WHERE ID=1 |
? 数据库定义语言 DDL (Data Definition Language) SQL让用户定义存储数据的结构和组织,以及数据项之间的关系
语句 | 功能 |
---|---|
CREATE TABLE | 在一个数据库中创建一个数据库表 |
DROP TABLE | 从数据库中删除一个表 |
ALTER TABLE | 修改一个现存表的结构 |
CREATE VIEW | 把一个视图添加到数据库中 |
DROP VIEW | 从数据库中删除视图 |
CREATE INDEX | 为数据库表中的一个字段构建索引 |
DROP INDEX | 从数据库表中的一个字段中删除索引 |
CREATE PROEDURE | 在一个数据库中创建一个存储过程 |
DROP PROEDURE | 从数据库中删除存储过程 |
CREATE TRIGGER | 创建一个触发器 |
DROP TRIGGER | 从数据库中删除触发器 |
CREATE SCHEMA | 向数据库添加一个新模式 |
DROP SCHEMA | 从数据库中删除一个模式 |
CREATE DOMAIN | 创建一个数据值域 |
ALTER DOMAIN | 改变域定义 |
DROP DOMAIN | 从数据库中删除一个域 |
? 数据库控制语言 DCL (Data Control Language) 可以使用SQL来限制用户检索,添加修改数据的能力,保护存储的数据不被未授权的用户所访问。
语句 | 功能 |
---|---|
COMMIT | 定义查询游标 |
ROLLBACK | 中止当前事务 |
SET TRANSACTION | 定义当前事务数据的访问特征 |
? 数据库检索语言 DRL (Data Retrieval Language) [官方没有这个叫法,写在这里纯属为了整齐] SQL允许用户或应用程序从数据库中检索存储的数据并使用它。
语句 | 功能 |
---|---|
DECLARE | 定义查询游标 |
EXPLAN | 描述查询描述数据访问计划 |
OPEN | 检索查询结果打开一个游标 |
FETCH | 检索一条查询结果记录 |
CLOSE | 关闭游标 |
PREPARE | 为动态执行准备SQL语句 |
EXECUTE | 动态地执行SQL语句 |
DESCRIBE | 描述准备好的查询 |
1. 必须写在括号内
2. 必须包含select和from子句
3. 不可以使用conpute和forbrowe
4. 只有使用了top才可以使用orderby
5. 最多嵌套32个级别的查询
-- 返回自增id
1. select @@IDENTITY
2. select scope_identity()
-- 分页
select * from tduser order by [u_id] desc offset 0 rows fetch next 100 rows only;
-- 查询合并结果集 INION
-- UNION 操作符用于合并两个或多个SELECT 语句的结果集, 如需要查询出所有用户和企业的id与name
select [a].[u_id], [a].[u_name] from tbuser a union select [b].[c_id], [b].[c_name] from tbcompany b;
-- 分组后排序 ROW_NUMBER()与PARTITION
select [u_id],[u_name],ROW_NUMBER() OVER(PARTITION BY [u_id] ORDER BY [u_id]) as num from tbuser where [u_removed]<>0;
-- 示例:根据tbuser表的type字段排序表的order字段
update tbuser set [a].[u_order]=[b].[num] from tbuser as a inner join
(select [u_id],ROW_NUMBER() OVER(PARTITION BY [u_id] ORDER BY [u_id]) as num from tbuser where [u_removed]<>0) as b
on [a].[u_id]=[b].[u_id];
T-SQL复习大纲
标签:_id 修改 upd 删除索引 exp serve str ack desc