本章知识点: T-Sql的基本语法 C#与SQL数据类型对比 T-SQL的基本知识点: SQL的四种语言: DDL: 概念:指的是数据库定义语言。 作用:定义SQL模式、基本表、视图、和索引的创建和撤销操作 包含: CREATE:在数据库中创建新的数据对象 ALTER:修改数据库中对象的数据结构 DROP:删除数据库中的对象 DISABLE/ENABLE TRIGGER:修改触发器的状态 UPDATE STATISTIC:更新表/视图统计信息 TRUNCATE TABLE:清空表中的数据 COMMENT:给数据对象添加注释 RENAME:更改数据库对象名称 DML: 概念:数据操纵语言 类别: 数据查询 数据更新: 插入 删除 修改 DCL: 概念:数据库控制语言 作用:授权、角色控制 包括对基本表和视图的授权 完整性规则的描述 事务控制 TCL: 概念:事务控制语言 作用:涉及到SQL语言潜入在宿主语言程序中使用的规则 SAVEPOINT:设置保存点 ROLLABCK:回滚 SET TRANSACTION 子查询: 单行子查询: SELECT ENAME,DEPTNO,SAL FROM EMP WHERE DEPTNO=(SELECT DEPTNO FROM DELPT WHERE LOC =’NEW YORK’) 多行子查询 SELECT ENAME,JOB,SAL FROM EMP WHERE DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE DNAME LIKE ‘A%’) 内联视图子查询 A、SELECT ENAME,JOB,SAL ROW_NUMBER() OVER(ORDER BY ENAME) FROM (SELECT ENAME,JOB,SAL FROM EMP ORDER BY(SAL)) B、SELECT ENAME,JOB,SAL,ROW_NUMBER() OVER(ORDER BY ENAME)AS ROWNUM FROM (SELECT ENAME,JOB,SAL FROM EMP OREDER BY SAL) T ALL与DISTINCT查询 ALL关键字: 指定在结果集中可以显示重复的行,这是默认的关键字。 这两个语句是等价的 SELECT * FROM [#TEMPTB] SELECT ALL* FROM [#TEMPTB] 关键字:DISTINCT 关键字:IN 和NOT IN 关键字:EXISTS和NOT EXISTS子查询 使用EXISTS和NOT EXISTS引入的子查询可用于两种集合原理 交集: 差集: EXISTS:指定一个子查询,检测行的存在 NOT EXISTS:与EXISTS相反 EXISTS与IN 的区别: EXISTS:后面可以是整句的查询语句 IN:后面只能是对单列 多表查询: 内外连接 外连接分为 左连接 右连接 完整外部连接 交叉连接: 概念:没有用where子句的交叉连接将产生连接所涉及的笛卡尔积第一个表的行数乘以第二个表的行数等于笛卡儿积和结果集的大小 SQL语法:SELECT * FROM TABLE1 CROSS JOIN TABLE2 SELECT * FROM TABLE1 CROSS JOIN TABLE 2 WHERE TABLE1.列名 = TABLE2.列名 UNION查询 UNION 用于合并两个或多个SELECT 语句的结果集,消去表中重复行。 UNION 内部的SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。每条SELECT 语句中的列的顺序必须相同。 注:默认UNION操作符选取不同的值。如果允许重复的值,请使用UNION ALL 当ALL随UNION一起使用时不消除重复行 使用SELECT INTO 查询、INSERT INTO SELECT 语句 INSERT INTO SELECT 语句 语句形式:INSERT INTO TABLE2(FIELD1,FIELE2…) SELECT VALUE1,VALUES2…FROM TABLE1; 要求:目标TABLE2存在所除了插入源表TABLE1的字段外,还可以插入常量。 SELECT INTO FROM 语句 语句形式:SELECT VALUE1,VALUE2 INTO TABLE2 FROM TABLE1; 要求:目标表TABLE2不存在,在插入时会自动创建TABLE2,并将TABLE1中指定字段数据复制到TABLE2中。