




已阅读5页,还剩166页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL SERVER高级培训 主讲人:郑维勇 数据库的概述数据库的概述 数据库对象 表、视图、存储过程、触发器、默认值、规则、 索引、用户。 SQL Server数据库的版本 个人版 标准版 开发版 企业版 Transact-SQL语言主要的4个组成部份 数据定义语言DDL 数据操作语言DML 数据控制语言DCL 共它语言元素 Transact-SQLTransact-SQL 数据定义语言DDL 用来创建数据库、数据库对象和定义列。包括: CREATE,ALTER,DROP。 数据操纵语言DML 用来操纵数据库的命令。包括: SELECT,INSERT,UPDATE,DELET。 数据控制语言DCL 用来控制数据库组件的存取许可、存取权限等的命令 包括:GRANT,DENY,REVOKE。 管理管理SQL ServerSQL Server服务服务 启动 SQL Server服务 Net start mssqlserver 暂停 SQL Server服务 Net pause mssqlserver 停止 SQL Server服务 Net stop mssqlserver SQL ServerSQL Server服务服务 SQL Server 2000的各种服务和功能说明 服务器名称文件名文件名服务说明服务说明 MSSQLSERVERMSSQLSERVERSqlserver.exeSqlserver.exe 它负责数据存取、安全配置、事务它负责数据存取、安全配置、事务 管理等管理等(Binnsqlserver.exe)(Binnsqlserver.exe) SQLSERVERAGENTSQLSERVERAGENTSqlagent.exeSqlagent.exe 负责调度定期执行的活动以及通知负责调度定期执行的活动以及通知 系统管理员服务器所发生的问题系统管理员服务器所发生的问题 (Binnsqlagent.ext)(Binnsqlagent.ext) Microsoft SearchMicrosoft SearchMssearch.exeMssearch.exe 提供数据库内全文检索的功能提供数据库内全文检索的功能 Distributed Transaction Distributed Transaction Coordinator(MSDTC) ) Msdtc.exeMsdtc.exe 是一个事务管理器,它允许客户端是一个事务管理器,它允许客户端 应用程序在一个事务中包含多个不应用程序在一个事务中包含多个不 同的数据源同的数据源 SQL ServerSQL Server服务器的注册与删除服务器的注册与删除 1、通过控制台目录 2、使用Transact-sql sp_addserver server= server ,local= local ,duplicate_ok= duplicate_ok Eg sp_addserver local 配置链接服务器配置链接服务器 在SQL Server 2000中,允许SQL Server用户访问基于SQL Server的服务器 以外的数据。通过配置链接服务器可以实现访问其他服务器上的OLE DB 数据源。链接服务器是对OLE DB数据源的抽象,是OLE DB提供程序和 连接属性的来源。 在链接服务器的边接过程中,为了使该连接有效,需要在链接服务器 之间创建登录映射。 链接服务器登录映射可以通过系统存储过程sp_addlinkedsrvlogin添加,相应地, 链接服务器登录映射可以通过系统存储过程sp_droplinkedsrvlogin删除。 配置链接服务器配置链接服务器 添加键接服务器 Sp_addlinkedserver server= server ,srvproduct= product_name ,provider=provider_name ,datasrc=data_source ,location=location ,provstr=provider_string ,catalog=catalog Eg: exec sp_addlinkedserver server=exam2, provider=Microsoft.Jet.OLEDB.4.0, srvproduct=,datasrc=d:db2.mdb sp_addlinkedserver 链接服务器名, 产品名, Microsoft.Jet.OLEDB.4.0, Access数据库路径及文件名 sp_addlinkedserver Anna, Access 2000, Microsoft.Jet.OLEDB.4.0, D:db2.mdb 配置链接服务器配置链接服务器 数据源数据源提供者名称提供者名称 Product_nameProduct_name Provider_nameProvider_nameData_sourceData_source SQL ServerSQL ServerSQL Server OLESQL Server OLE DB ProviderDB Provider SQL ServerSQL Server SQL ServerSQL Server SQL ServerSQL Server主机主机 网络名称网络名称 AccessAccessMicrosoft OLE DB Microsoft OLE DB provider for Jetprovider for Jet 任意名称任意名称 Microsoft.Jet.OLMicrosoft.Jet.OL E DB.4.0E DB.4.0 AccessAccess文件路径文件路径 和文件名称和文件名称 ExcelExcelMicrosoft OLE DB Microsoft OLE DB provider for Jetprovider for Jet 任意名称任意名称 Microsoft.Jet.OLMicrosoft.Jet.OL E DB.4.0E DB.4.0 ExcelExcel文件路径和文件路径和 文件名称文件名称 配置链接服务器配置链接服务器 创建链接服务器登录 通过系统存储过程sp_addlinkedsrvlogin可以创建或更新本地SQL Server 实例上的登录与链接服务器上远程登录之间的映射。其语法为: Sp_addlinkedsrvlogin rmtsrvname=rmtsrvname ,useself= useself ,location=location ,rmtuser=rmtuser ,rmtpassword=rmtpassword 其中,参数: (1)rmtsrvname= rmtsrvname:是应用登录映射的链接服务器名称 (2)useself=useself:决定用于连接到远程服务器的登录名称,默认 设置为ture.true值指定SQL Server验证的登录使用其自己的凭据以连接 到rmtsrvname,而忽略rmtuser和rmtpassword参数 (3)locallogin=locallogin:是本地服务器上的登录,默认设置为Null.如 果为null,则指定应用于所有连接到rmtsrvname的本地登录若不为null 则locallogin可以是SQL Server登录或windows NT用户 (4)rmtuser=rmtuser:当useself为false时,用来连接rmtsrvname的用户名, 默认设置为null. 配置链接服务器配置链接服务器 创建一个映射,使得所有到本地服务器的登录都使用其各自的用户凭据 连接到链接服务器exam Exec sp_addlinkedsrvlogin exam 或 Exec sp_addlinkedsrvlogin exam,true 使用指定的用户和密码将所有本地登录连接到链接服务器 Exec sp_addlinkedsrvlogin exam,false,null,user,password 创建一个映射,使得所有到本地服务器的登录都使用相同的登录user和 密码password连接到链接服务器exam,不使用登录和密码 Exec sp_addlinkedsrvlogin exam,false 配置链接服务器配置链接服务器 数据访问 从SQL Server 2000中访问OLE DB数据源的方法有两种:通过特殊名称 以及通过链接服务器进行数据访问。在通过特殊名称访问OLE DB数据 源的方法中,可以通过函数openrowset和opendatasource来进行。其语法: Openrowset (provider_name, datasource;user_id;password|provider_string ,catalog.schema.object |query ) Eg: SELECT * FROM OPENROWSET(Microsoft.Jet.OLEDB.4.0, d:db2.mdb; admin;, bbs) 查询分析器查询分析器 如何进入查询分析器?如何进入查询分析器? SQLSQL语言基础语言基础( (变量与常量变量与常量) ) 定义和使用局部变量 定义局部变量 Declare variable_name datatype ,.n Declare sex char(2) 为局部变量赋值 为局部变量赋值一般有两种,一种是使用select语句,另一种是使用 Set语句 Select variable_name=expression from table_name,n where clause declare bookname varchar(30) select bookname = vc print bookname GO SQLSQL语言基础语言基础( (变量与常量变量与常量) ) 定义和使用全局变量 全局变量是SQL SERVER系统内部事先定义好的变量,不 用用户参与定义,对用户而言是只读的。 identity:返回最近一次插入的identity列的数值,返回值是numeric procid:返回当前存储过程的ID标识 version:返回当前SQL Server服务器安装日期、版本以及处理器的类型 language:返回当前使用的语言名 servername:返回当前SQL SERVER服务器名称 SQLSQL语言基础语言基础( (变量与常量变量与常量) ) 使用日期和时间常量 SQL 提供的日期/时间数据类型可以存储日期和时间的组给数据。 SQL 规定日期、时间和时间间隔的常量值被指定为字符中常量。 SQLSQL语言基础语言基础( (数据类型数据类型) ) 常见的数据类型 1.整型(int,smallint,tinyint,bigint) 2.浮点数据类型(real,float,decimal) 3.二进制数据类型(binary,varbinary) 4.逻辑数据类型 5.字符型数据类型(char(n),nchar(n),varchar(n),nvarchar(n) SQLSQL语言基础语言基础( (复合语句复合语句) ) 定义复合语句(beginend) declare A int,B int,C int set A=20 set B=30 begin set C=A set A=B set B=C end print A print B SQLSQL语言基础语言基础( (条件判断语句条件判断语句) ) 使用if语句进行条件判断 If 命令行|程序块 declare x int set x=-100 if x,n ,.n log on,.n collate collation_name for load|for attach 新建数据库 create database student on ( name=学生管理数据库, filename=f:datastudent.mdf, size=1MB, MAXSIZE=50MB, FILEGROWTH=5MB ) log on ( name=学生管理日志, filename=f:datastudent.ldf, size=1MB, MAXSIZE=50MB, FILEGROWTH=10% ) 修改数据库 ALTER DATABASEALTER DATABASE命令命令 alter database student modify file( name=学生管理数据库, maxsize=unlimited ) 删除数据库 Drop DatabaseDrop Database命令命令 新建表 Create table Create table 命令命令 Create table table_name ( column_name data_type null|not null primary key|unique , ) 新建表 use student go create table stu_info ( stu_id int not null, stu_name varchar(10), gender bit, major varchar(20), address varchar(100) ) 修改表(增加字段) 增加字段增加字段 Alter table table_nameAlter table table_name Add column_name data_typeAdd column_name data_type Eg: alter table stu_info add memo text 修改表(增加主键) Alter table add primary key(column_name)Alter table add primary key(column_name) Eg: Eg: alter table stu_info add primary key(stu_id) alter table stu_info add primary key(stu_id) 修改表(更改字段) 更改字段属性更改字段属性 Alter table table_nameAlter table table_name Alter column column_name new_data_typeAlter column column_name new_data_type Eg: alter table stu_info alter column stu_name varchar(12) 修改表(删除字段) Alter table table_nameAlter table table_name Drop column column_nameDrop column column_name Eg: alter table stu drop column memo 表的重命名 Exec sp_rename old_table,new_tableExec sp_rename old_table,new_table Eg: exec sp_rename stu_info,stu 表的删除 Drop table table_nameDrop table table_name 显示数据库信息显示数据库信息 显示SQL SERVER数据库中所有数据库详细信息 Select * from sysdatabases 显示系统显示系统/ /用户表用户表 显示数据库中所有表的详细信息 use stu select * from sysobjects 显示数据库中系统表的详细信息 use stu select * from sysobjects where xtype=s 显示数据库中用户表的详细信息 use stu select * from sysobjects where xtype=u 显示表中的字段名称及属性显示表中的字段名称及属性 显示表中的字段名称 Select col_name(object_id(tbl_stu,3) 显示表中的字段长度 Select col_length(tbl_stu,stu_id) 显示表中结构 Sp_help tbl_stu Select语句(列的查询) 单列查询 Select field_name from table_name 多列查询 Select field_name1,field_name2, from table_name 查询所有列 Select * from table_name 使用列名 Select field_name as new_name from table_name Select语句(列的计算) 简单列计算 复杂列计算 执行算术组合运算 连接列值 Select 图书名称,(单价 -进价)as 利润 from tb_xsb02 Select sum(数量)as 总数量,sum(数量)%2 剩余 from tb_xsb02 Select name 姓名,(math+english+chinese)总分, (math+english+chinese)/3 平均分 from tb_score02 Select (名字+( )+姓氏) 姓名 from tb_abstu02 Select语句(Where条件) 检索单行值 不匹配检索 Select * from tb_stu02 where 学号=ID001 Select * from tb_stu02 where 学号 18 and 年龄 90 and 英语成绩 90 利用OR运算符连接where子句 Select 学生姓名,数学成绩,音乐成绩,英语成绩 from tb_StuScore03 where 数学成绩 90 or 英语成绩 90 Select语句(IN运算符) Select 教师姓名,系别,年龄,性别 from tb_TeacherInfo03 where 系别 in(计算机系,英语系,生物系) Select语句(NOT运算符) Select 房间号,房间类型,价格,房态,配置 from tb_kf03 where (房态 NOT IN (入住) and (not(价格 between 80 and 150) Select语句(like运算符) 使用%匹配字符 Like %mr%-包含字符mr的任何文本 Like mr%-以字符mr开头的任何文本 Like %mr-以字符mr结尾的任何文本 select 考生课程,考生人数,有效时间 from tb_StuExam where 考生课程 like 计算机% Select语句(like运算符) 使用_匹配任意单个字符 Select 学生编号,学生姓名,年龄,所在学院 from tb_StuInfo03 where 学生编号 like 20070101_ Select语句(like运算符) 使用匹配某一范围的字符 a-m表示a到m的所有字符 0-9表示0到9的所有数字 Select 学生编号,学生姓名,性别,年龄,所学专业 from tb_Student05 where 年龄 like 2-2_ Select语句(like运算符) 使用匹配非某一范围的字符 Select 学生编号,学生姓名,性别,年龄,所学专业 from tb_Student05 where 年龄 like 2-2_ 语句Select * from stu where name like MC 功能? Select语句(数据排序) 升序排序 Select * from tb_employee06 order by 奖金 降序排序 Select * from tb_employee06 order by 奖金 desc 列出前n条记录 Select top n * from tbl_stu 列出前n-m条记录(mn) Select top n+1 * from (select top m * from tbl_question) tbl_question order by id desc Select语句(数据排序) 列出n%条记录 Select top 10 percent * from tbl_stu 随机列出n条记录 Select top 5 * from tbl_question order by newid() 不显示重复值 Select distinct stu_name from tbl_stu Select语句(汉字排序) 按姓氏笔画排序 select * from tb_stu06 order by 姓名 collate chinese_prc_stroke_cs_as_ks_ws 按音序排序 select * from tb_stu06 order by 姓名 collate chinese_prc_cs_as Select语句(动态排序) CASECASE条件语句的语法格式条件语句的语法格式 1.1.简单简单CASECASE函数函数 Case input_expressionCase input_expression When when_expression then result_expressionWhen when_expression then result_expression nn Else else_result_expressionElse else_result_expression ENDEND 2.CASE2.CASE搜索函数搜索函数 Case Case When boolean_expression then result_expressionWhen boolean_expression then result_expression nn ELSE else_result_expressionELSE else_result_expression ENDEND Select语句(动态排序) Select 学生编号,学生名称,所在班级,学生成绩= case when 学生成绩 is null then 暂无成绩! when 学生成绩 is not null then 有成绩! end from tb_StuXueSheng03 Select语句(动态排序) select rq, sum(case when shengfu=胜 then 1 else 0 end) 胜, sum(case when shengfu=负then 1 else 0 end) 负 from match group by rq Select语句(操作字符串) 截取字符串 Select stu_id,substring(stu_name,1,4),age from tbl_stu Select stu_id,left(stu_name,1),age from tbl_stu Select stu_id,Right(stu_name,1),age from tbl_stu 去除尾部空格 Select 学号,rtrim (学号)as 去空格后, 姓名,rtrim(姓名)as 去空格后, 专业,rtrim(专业)as 去空格后 from tb_stu04 Select语句(操作字符串) 使用”+”连接字符串 select 书名,类别, (书名+ 的类别为 + 类别) as 说明 from tb_book04 Select语句(操作字符串) 使用stuff函数插入字符串 Stuff(character_expression,start,length,character_expression) Select 学号,姓名, stuff(学号,2,2,200800) as 新学号 from tb_stu04 获取字符在字符串中出现的次数 Select len(apples is in the apple tree)- len(replace (apples is in the apple tree,p,)/len(p) as a from tb_name04 Select语句(操作字符串) 替换字符串 使用replace函数将字符串中某一字符替换成另一字符 Eg: select replace(dsfsdfsfdsf*fd,d,*)as 替换后 字符串大小写转换 Uper(character_expression) Lower(character_expression) select upper(firstname)as up_firstname, lower(lastname )as low_lastname from tb_name04 SelectSelect语句语句( (格式化字符串格式化字符串) ) 在字符串查询中,可以将字符串格式化为需要的格式,以 增加结果集的可读性。 charindex函数 Charindex函数用于返回字符串中指定表达式的起始位置 语法: Charindex(expression1,expression2,start_location) Eg: select 电话号码 as 提取前, left (电话号码,charindex(-,电话号码)-1)as 区号, substring(电话号码,charindex(-,电话号码)+1, len(电话号码)-charindex(-,电话号码)as 号码 from tb_tel04 SelectSelect语句语句( (格式化字符串格式化字符串) ) 用“”代替过长的字符串显示 select str1 , case when len(str1)10 then left(str1,10)+. else str1 end as news_str from tb_tb04 求07/08级各有多少学生? select sum(case when left(stu_id,2)=07 then 1 else 0 end) 07级人数, sum(case when left(stu_id,2)=08 then 1 else 0 end) 08级人数 from tbl_stu SelectSelect语句语句( (聚合函数聚合函数) ) SUM函数(汇总) SELECT SUM(数量) AS 总数量,SUM(单价) AS 总金额 FROM tb_xsb07 AVG函数(平均) SELECT AVG(语文) AS 语文 ,AVG(代数) AS 代数 ,AVG(几何) AS 几何 ,AVG(英语) AS 英语 FROM tb_stuAchievement07 MAX函数(最大值) SELECT MAX(销售额) AS 最高销售额 FROM tb_seller07 MIN函数(最小值) SELECT MIN(销售额) AS 最低销售额 FROM tb_seller07 SelectSelect语句语句( (聚合函数聚合函数) ) COUNT函数(总计记录条数) SELECT COUNT(*) AS 日销售数量 from tb_bookSell07 where 日期=2005-10-6 SelectSelect语句语句( (分组统计分组统计) ) GROUP BY子句创建简单分组 SELECT 商品类别 FROM tb_goods07 GROUP BY 商品类别 GROUP BY子句创建多列组合列 SELECT 书名,出版社 FROM tb_bookSell07 GROUP BY 书名,出版社 GROUP BY对统计结果进行排序 SELECT 学生编号,学生姓名, sum(高数+外语+计算机文化基础+马经+数据库管理+ 数据结构+软件工程) AS 总成绩 FROM tb_StuMark07 GROUP BY 学生编号 ,学生姓名 ORDER BY 总成绩 DESC SelectSelect语句语句( (分组统计分组统计) ) Having子句 SELECT 书名,出版社,SUM(金额) AS 总计金额 FROM tb_BookSell07 GROUP BY 书名,出版社 HAVING SUM(金额)500 Having子句与WHERE子句的联合使用 Select class_name,count(*) as 人数 from tbl_stu,tbl_class where tbl_stu.class_id=tbl_class.class_id group by class_name SelectSelect语句语句( (分组统计分组统计) ) 在分组查询中使用CUBE运算符 cube运算符的主要作用是自动对Group By子句中列出的字段 进行分组汇总运算。 Select 班级,性别,avg(语文) 语文平均成绩, avg(代数) 代数平均成绩,avg(几何) 几何平均成绩, avg(英语)英语平均成绩 from tb_stuAchievement07 group by 班级,性别 with cube SelectSelect语句语句( (分组统计分组统计) ) 在分组查询中使用ROLLUP select 班级,性别,avg(语文) 语文平均成绩, avg(代数) 代数平均成绩,avg(几何) 几何平均成绩, avg(英语)英语平均成绩 from tb_stuAchievement07 group by 班级,性别 with rollup SelectSelect语句语句( (分组统计分组统计) ) 使用COMPUTE子句在同一结果集中显示明细和 汇总 compute AVG|COUNT|MAX|MIN|STDEV|STDEVP |VAR|VARP|SUM (expression),.n By expression,n select * from tb_pay07 order by 所属部门 compute avg(工资) SELECT * FROM tb_pay07 ORDER BY 所属部门 COMPUTE SUM(工资) BY 所属部门 SelectSelect语句语句( (使用子查询使用子查询) ) 简单子查询 SELECT 姓名,工资,所属部门, (SELECT AVG(工资) FROM tb_apay08) AS 平均工资, (工资-( SELECT AVG(工资) FROM tb_apay08) AS 与平均工资的差额 FROM tb_apay08 为子查询命名 SELECT * FROM (SELECT 挂账单位,SUM(欠款金额) AS 金额 FROM tb_agzmx08 GROUP BY 挂账单位)tb1 ORDER BY 金额 ASC SelectSelect语句语句( (使用子查询使用子查询) ) 在子查询中使用聚合函数 SELECT 姓名,工资,所属部门 FROM tb_apay08 WHERE 工资 ( SELECT AVG(工资) FROM tb_apay08 ) 使用子查询更新数据 UPDATE tb_aMesell08 SET 药品名称=润洁 WHERE 药品名称 IN (SELECT 药品名称 FROM tb_aMesell08 WHERE 药品编号=YB004) SelectSelect语句语句( (使用子查询使用子查询) ) 使用子查询删除数据 DELETE tb_aMesell08 WHERE 药品名称 IN ( SELECT 药品名称 FROM tb_aMesell08 WHERE 药品编号=YB001) SelectSelect语句语句( (使用子查询使用子查询) ) 在嵌套中使用EXISTS谓词 SELECT 学生姓名,所在学院,家庭住址 FROM tb_aStuInfo08 I WHERE EXISTS ( SELECT 学生姓名 FROM tb_aStuMark08 M WHERE M.学生姓名=I.学生姓名 AND 外语 80) select 学生姓名,所在学院,家庭住址 from tb_aStuInfo08 where 学生编号 in ( select 学生编号 from tb_aStuMark08 where 外语80 ) 在一些情况下,只要子查询返回一个真值和假值.只考虑 是否满足谓词条件,数据内容本身并不重要. SelectSelect语句语句( (日期查询日期查询) ) 使用between and 查询某一时间段内的数据 select * from tb_student06 where 入校时间 between 01.09.01 and 01.09.05 使用关系运算符查询某一时间段内的数据 select 姓名,入校时间 from tb_student06 where 入校时间 01.09.01 and 入校时间 1 批量插入数据 Insert into table1 (field1,field2,field3 ) select field1,field2,field3 from table2 多表查询多表查询 笛卡尔乘积查询 笛卡尔乘积查询实际上就是两表之间的交叉联接实现查询 的方式。 SELECT tb_userInfo09.*,tb_profession09.* FROM tb_userInfo09 CROSS JOIN tb_profession09 在多表联接中设置联接条件 SELECT 学生姓名,学生性别,学生年龄,课程名称,老师姓名 FROM tb_student09,tb_course09,tb_teacher09 WHERE tb_student09.自动编号=tb_course09.编号 and tb_course09.自动编号=tb_teacher09.编号 多表查询多表查询 使用表别名 SELECT 学生姓名,学生性别,学生年龄,课程名称,老师姓名 FROM tb_student09 AS a,tb_course09 AS b,tb_teacher09 AS c WHERE a.自动编号=b.编号 and b.自动编号=c.编号 在多表联接中返回某个表的所有列名 SELECT tb_student09.*,课程名称 FROM tb_student09,tb_course09 WHERE tb_student09.自动编号=tb_course09.编号 多表查询多表查询( (内联接内联接) ) 等值联接 等值联接是指在联接条件中使用等号运算符比较被联接列的值,在查 询结果中列出本联接表中的所有列,包括其中的重复列. 语法: Select fieldlist From table1INNER JOIN table2 On table1.column=table2.column SELECT tb_course09.课程名称,tb_teacher09.老师姓名 FROM tb_course09 INNER JOIN tb_teacher09 ON tb_course09.自动编号=tb_teacher09.编号 多表查询多表查询( (内联接内联接) ) 不等联接 不等联接是指在联接条件中使用等于运算符以外的其它比较 运算符比较被联接的值 SELECT tb_course09.自动编号,tb_course09.课程名称, tb_teacher09.编号,tb_teacher09.老师姓名 FROM tb_course09 INNER JOIN tb_teacher09 ON tb_course09.自动编号tb_teacher09.编号 多表查询多表查询( (内联接内联接) ) 自然联接 自然连接是一种特殊的联接,它只在两个表有相同名称的列且列的 含义相似时才能使用,并将在同名列上进行相等联接自然联接是 指在联接条件中使用等号运算符比较被联接列的值,但它使用选择 列表指出查询结果集合中所包括的列,并删除联接表中重复列 SELECT a.*,b.实发合计 FROM tb_mMRem09 AS a INNER JOIN tb_nMRpay09 AS b on a.人员编号=b.人员编号 WHERE b.工资月份=3 Select a.*,b.实发合计 from tb_mMRem09 a, tb_nMRpay09 b where a.人员编号=b.人员编号 and b.工资月份=3 多表查询多表查询( (外联接外联接) ) 左外联接(left outer join) SELECT a.部门编号,a.部门名称,a.负责人, b.人员编号,b.人员姓名,b.部门名称, b.学历,b.技术职称 FROM tb_nMRde09 a LEFT OUTER JOIN tb_mMRem09 b ON a.部门名称=b.部门名称 多表查询多表查询( (外联接外联接) ) 右外联接(right outer join) SELECT * FROM tb_nMRde09 a RIGHT OUTER JOIN tb_nMRpay09 b ON a.部门名称=b.部门名称 WHERE b.工资月份=10 多表查询多表查询( (外联接外联接) ) 完全联接(full join) SELECT * FROM tb_student09 a FULL JOIN tb_course09 b ON a.自动编号=b.编号 多表查询多表查询( (自联接自联接) ) SELECT a.员工姓名,a.基本工资,b.员工姓名,b.基本工资 FROM tb_pay09 a INNER JOIN tb_pay09 b ON a.基本工资b.基本工 多表查询多表查询( (静态交叉表静态交叉表) ) SELECT 员工姓名, SUM( CASE 所在部门 WHEN 食品部 THEN 销售业绩 ELSE NULL END) AS 食品部业绩, SUM( CASE 所在部门 WHEN 家电部 THEN 销售业绩 ELSE NULL END) AS 家电部业绩 FROM tb_sell09 GROUP BY 员工姓名 多表查询多表查询( (组合查询组合查询) ) 使用UNION运算符组合两个表的数据 SELECT 学生编号 AS 编号 , 学生姓名 AS 姓名 FROM tb_StuMark07 WHERE 高数85 UNION SELECT 编号 ,姓名 FROM tb_stuScore09 WHERE 高数85 使用UNION ALL保留重复行 SELECT * FROM tb_nemployee09 UNION ALL SELECT * FROM tb_nemployee09 INSERTINSERT语句语句 INSERTINSERT语句语法语句语法: : INSERT INTO VALUES(column value,., lastcolumn value) INSERTINSERT语句语句 插入单行数据 INSERT INTO tb_em11 VALUES (WY003,王三,女,1981-01-03,本科,长春理工大学, 长春市春城大街) 特定字段数据插入 INSERT INTO tb_em11 (员工编号,员工姓名,员工家庭住址) VALUES (WY004,王三,长春市自由大街) NULL值的插入 INSERT INTO tb_em11 VALUES (NULL,NULL,NULL,1981-01-04,本科,东北师范大学, NULL) INSERTINSERT语句语句 插入日期数据 INSERT INTO tb_goods11 VALUES (LZW003,明日数码相机,数码设备,500万像素,50, Getdate() ) 使用UNION ALL语句批量插入数据 INSERT tb_employee11 SELECT WY005,王五,男,1981-04-05,专科,长春工程学院,长春市大经路 UNION ALL SELECT WY006,王六,女,1982-04-05,专科,长春中医学院,长春市大马路 UNION ALL SELECT WY007,王七,男,1985-04-05,专科,长春工程学院,长春市解放大路 INSERTINSERT语句语句 使用INSERT SELECT语句批量插入数据 INSERT INTO tb_employee11 SELECT * FROM tb_em11 创建数据表之后插入数据 CREATE TABLE tb_sell11( 编号 CHAR(20),产品名称 CHAR(50),销售单价 MONEY ) GO INSERT INTO tb_sell11 VALUES (XS001,办公用品,60) UPDATEUPDATE语句语句 UPDATEUPDATE SETSET = .,=expression WHEREWHERE UPDATEUPDATE语句语句 UPDATE语句更新列值 UPDATE tb_Student12 SET 学号=LEFT(学号,2)+1+RIGHT(学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国管理咨询行业人才发展战略与团队建设研究报告
- 2025-2030中国稀土产业链整合与国际定价权争夺研究
- 2025-2030中国磁悬浮列车商业运营评估报告
- 八年级物理上册 第三章 第一节 温度说课稿 (新版)新人教版
- 2.4 过不共线三点作圆教学设计初中数学湘教版2012九年级下册-湘教版2012
- 八年级英语上册 Unit 6 I'm going to study computer science第2课时说课稿 (新版)人教新目标版
- 第5节 透镜成像公式 教学设计高中物理人教版选修2-3-人教版2004
- 云南省专职安全员题库及答案解析
- 安全月培训考试题及答案解析
- 个性化内容分发-洞察与解读
- 汽车电驱系统讲解
- 房地产开盘活动主持词及流程模板
- 医院感染暴发的识别与处置
- 2025年期权开户考试题库及答案
- 超声引导下置管技术规范与临床应用
- 大阪驾照考试题库及答案
- 2025年中国智慧教育白皮书
- DB32/ 4439-2022工业涂装工序大气污染物排放标准
- 疼痛护理新进展
- 2025北京高三一模语文汇编:写作1
- 土地出售协议合同
评论
0/150
提交评论