U8+V16.1产品培训-MSSQL刘 永 铭2 0 2 2 年 3 月中端客户成功部“MSSQL,是U8数据存储的仓库,所有业务数据都将通过写入归集于此,并通过查询、优化,整理等处理,重新呈现到不同的业务场景。通过学习SQL,会让您更好的理解业务数据的走向,对于处理U8的相关问题起到很大的辅助作用。“综述目录SQL的基本语句1SQL的简单函数及实用命令2SQL Server Profiler 基础运用3SQL语句实例4PART1SQL的基本语句SQL Select语句、SQL中的子句、表的联合、内嵌的SQL子句、数据更新语句SQL Select语句SQL的基本语法Select 列名称 from 表名称OrSelect * from 表名称注:Select 语句用于从表中选取数据,结果被存储在一个结果表中;Select 语句对大小写不敏感,select 等同于 SELECT;SQL中的子句1、Where条件子句与、或、非 (and \ or \ not)Select …From …Where …Update…Where…Delete…Where…SQL中的子句2、Order by 排序子句[ ORDER BY { order_by_expression [ ASC | DESC ] }[ ,...n ] ]Select …From …Where …Order by …SQL中的子句3、Group by 分组条件子句[ GROUP BY [ ALL ] group_by_expression [ ,...n ][ WITH { CUBE | ROLLUP } ] ]Select …From …Where …group by …SQL中的子句4、Having 分组条件子句[HAVING ]Select …From …Where …group by …Having …注:WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。GROUP BY 子句用来分组 WHERE 子句的输出。HAVING 子句用来从分组的结果中筛选行。表的联合(Join)表的联合[INNER] join指定返回每对匹配的行。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。FULL [OUTER] join指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由INNER JOIN 返回的所有行的补充。LEFT [OUTER] join指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为 NULL。RIGHT [OUTER] join指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。表的联合(Join)内连接(Inner Join)[INNER] JOIN 语法:Select <要选择的字段>From <主要资料表> <次要资料表> [On ]例子:Select * From rdrecord 01Inner Join rdrecords01On rdrecord01.id = rdrecords01.id 表的联合(Join)外连接(Outer Join)Select <要查询的字段>From [Outer] Join On 例子:1、左连接:Select * From rdrecord 01left [outer] Join rdrecords01On rdrecord01.id = rdrecords01.id 2、右连接:Select * From rdrecord 01right [outer] Join rdrecords01On rdrecord01.id = rdrecords01.id 表的联合(Union运算符)将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接给合两个表的列不同SELECT expression1, expression2, ... expression_nFROM tables[WHERE conditions]UNION [ALL ]SELECT expression1, expression2, ... expression_nFROM tables[WHERE conditions];规则: 所有查询列的顺序必须一致; 所有查询列的数据类型必须一致;内嵌的SQL语句在SQL中,通配符与SQL LIKE 操作符一起使用。SQL中,可使用以下通配符:SQL语句的通配符SELECT distinct pub_name FROM publishersWHERE pub_idIN (SELECT pub_id FROM titles WHERE type = 'business') IN的用法:Exists的用法:SELECT distinct pub_name FROM publishersWHEREExists (SELECT pub_id FROM titles WHERE type = 'business') 数据更新语句1、插入语句:INSERT INTO titles (title_id, title, type, pub_id, price...