数据库视频总结及其(二)

简介: 数据库视频总结及其

在UPDATE语句使用FROM子句:


Select * from studentInfo
Update studentInfo set s sex=b。性别,s_address=b.家庭住址,s_id=b.学号
From studentinfo a join 学生信息 b on a.s_name=b.姓名
Where b.性别=‘女’ 插入数据更新。从其他表找出单列指定数据


DELETE语句:


删除操作:DELETE FROM 
                    [WHERE ]
SELECT * FROM 学生信息1????????????????????


TOP关键字和Top表达式:


语法:

[                                                   返回记录,前几条
TOP(expression)[PERCENT]
[WITH TIES]                                        最后一个值相等返回
]

实操:

Select top 10 peercent * from 成绩信息              查询前十条记录,百分比查询记录
Declare @i int
Set @i=20
Select top (6)* from 成绩信息 order by 分数  排序显示
Select top (6)with ties * from 成绩信息 order by 分数  排序显示
当数据相同时,会多出现几个
Update top(6)学生信息 set 民族=‘满足’         修改
Select * from 学生信息                  修改前六行数据

COMPUTE子句:


语法格式:

[
COMPUTE
{{AVG|COUNT|MAX|MIN|STDEV|STDEVP|VAR|VARP|SUM}
(expression)}[,…n]
[ BY expression [,….n]
]


实操:


Select * from 成绩信息 where 课程编程=2   ORDER BY 考试编号    排序(筛选数据)
Compute sum(分数),AVG(分数),MIN(分数)             查询分数总 平均 最大 最小,

Where子句中使用运算符:


实操:

Select * from成绩信息 where 考试编号=‘0802’ AND 课程编号=1
Select * from成绩信息 where 考试编号=‘0802’ AND (分数 between 90 and 95)
Select * from成绩信息 where 考试编号=‘0802’ AND (分数 % 5=0)
In (85,90)查询规定值  not in () 指定之外的数据

第七章  连接


基本链接


多表查询,多表链接。


规则:SELECT子句列表中,每个目标列前都要加上基本表名称。FROM子句应该包裹所有使用的基表。WHERE子句应定义一个同等连接。


实操:

SELECT A.姓名,A。性别,A。出生日期,A。民族
FROM 学生信息 a,班级信息 B
WHERE A.所属班级=B.班级班号

两个表的信息连接到共同的一个临时表中。以方便查看。这个属于一个表内的一个信息等于另一个表内的信息


内连接


格式:

SELECT select list
FROM table1 INNER JOIN table2 [ON join conditions]
[WHERE search_conditions]
[ORDER BY order_expression]


实操:

SELECT A.班级名,A.班级人数, B.姓名
FROM 班级信息 A inner[A1]  join 辅导员信息 B
ON A.辅导员=B.辅导员编号 AND B.=’女’ [A2]


两个表的信息组件一个临时表,各自抽取一列信息,并一个表内的信息等于另一个表的信息。可以为后者添加条件限制。


左外连接:


外连接与内连接的区别:内连接消除另一个表的任何行不匹配的行。仅为,在外连接中参与连接的表有主从之分,以主表为主。


实操:


SELECT A.班级名,A.班级人数, B.姓名
FROM 班级信息 A LEFT outer  [A3] join 辅导员信息 B


ON A.辅导员=B.辅导员编号 AND A.班级人数>20[A4]    会出现空值,不符合数据也返回 即使加上规则条件也一样


右外连接


SELECT A.班级名,A.班级人数, B.姓名


FROM 班级信,a RIGHT outer  [A5] join 辅导员信息.b


ON A.辅导员=B.辅导员编号


作用基本相同,主从表互换。


全外连接


SELECT A.班级名,A.班级人数, B.姓名


FROM 班级信,b FULL outer  [A6] join 辅导员信息.a


ON A.辅导员=B.辅导员编号


可以出来全部信息。不匹配的也会出现。


SELECT A.班级名,A.班级人数, B.姓名


FROM 班级信,a FULL outer  [A7] join 辅导员信息.b


ON A.辅导员=B.辅导员编号


顺序排列,先出现匹配,在出现不匹配


交叉连接


不带WHERE子句。顺序连接1,2.a,b  会出现1a,1b,2a,2b


语法格式:


SELECT select_list
FROM table1 CROSSJOIN table2
[WHERE search_conditions]
[ORDER BY ORDER_expression]


实操:


SELECT A.班级名称,A.人数,B.姓名
FROM 班级信息 A CROSS JOIN[A8]  辅导员信息 B                    符合情况全排列出现。
WHERE A.辅导员=B.辅导员编号   符合条件的留下,不在全排列。


自连接

SELECT A.班级名,A.班级人数,B.班级名
FROM 班级信息 A,班级信息 B                    AND A.班级班号<>b.班级班号(添加后,去重)
WHERE A.班级人数=B.班级人数 AND A.班级名=‘艺术系2班’(只查询=后相符的班级)    人数相等班级出现,但是同一个班重复出现


联合查询


多个查询合并。使用UNION查询时,连接的连个结果集必须有相同数目的表达式,且数据内容尽量保持一致。


语法格式:


SELECT select_list
FROM table_source
[WHERE search_conditions]
{union[all]
SELECT select_list
FROM table_source
[WHERE search_conditions]}
[ORDER BY order_expression]


实操:


SELECT A.成绩编号,A.分数,B.姓名
FROM 成绩信息 A.学生信息 B
WHERE A.学生编号=B.学号 AND A.课程编号=‘2’ AND A. 考试编号=‘0801’    
UNION                             联合上下数据成一个表
SELECT SUM(分数),’合计’
FROM 成绩信息 A.学生信息 B
WHERE A.学生编号=B.学号 AND A.课程编号=‘2’ AND A. 考试编号=‘0801’
UNION       可以继续联合(视频添加了一个平均)
ORDER BY 分数               排序
使用子查询
包含在where之下。


实操:


SELECT A.成绩编号,A.分数,B.姓名
FROM 成绩信息 A.学生信息 B
WHERE A.学生编号=B.学号 AND A.课程编号=‘2’ AND A. 考试编号=‘0801’
AND A.分数<(     (可以使用in,用学号,班级编号,所属班级,)
SELECT ABG(分数) FROM 成绩信息 A.学生信息 B
WHERE A.学生编号=B.学号 AND A.课程编号=‘2’ AND A. 考试编号=‘0801’
)个性化需求 在多个数据中通过限制多个条件,精确查找其中所需数据
嵌套子查询


直接实操:


SELECT A.成绩编号,A.分数,B.姓名
FROM 成绩信息 A.学生信息 B
WHERE A.学生编号=B.学号 AND A.课程编号=‘2’ AND A. 考试编号=‘0801’
AND B.学号 IN(
SELECT 学号 FROM 班级信息 A.学生信息 B
WHERE A.班级编号=B.所属班级 AND A.辅导员=(
SELECT 辅导员编号 FROM 辅导员信息 WHERE 姓名=’王艳’
)
)多个查询,好比一个地址,每一次查询缩小一次范围,例如:中国河北省石家庄市,第一个查询中国,第二个查询河北省,第三个是石家庄,每一次所需要的范围不断的缩小。

Xml查询


查询具体信息。


CREATE TABLE STUDENT

CREATE TABLE STUDENT
(
S_IF INT,
S_data xml
)
INSERT INTO STUDENT VALUES(
1,
‘<学生信息><姓名>刘倩</姓名><性别>女</性别><班级>计算机科学与技术1班</班级>
<职位>班长</职位></学生信息>’
前期准备
SELECT * FROM STUDENT
Declare @data xml
Set @data=(SELECT S_data FROM STUDENT where S_ID=1)
SELECT @data.query(‘学生信息/姓名’_,@data.query(‘学生信息/’性别’) ,@data.query(‘学生信息/姓名’)
————————————————
版权声明:本文为CSDN博主「李金轩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_37081112/article/details/100140858



FOR XML子句


可以将从表中检索出来的数据自动表示成XML格式。

SELECT A.班级名,A.班级人数,B.姓名,B.联系方式
FROM 班级信息 A,辅导员信息 B
WHERE A.辅导员= B.辅导员编号
FOR XML RAW   (AUOT)

EXISTS关键字查询


判断子查询。


实操:


Select a.* from 成绩信息 a
Where exists(select * from 考试安排 b where b.考试编号=a.考试编号 and b.考试编号=’0801’  筛选一个,
Declare @username varchar(20)
Declare @pwd varchar(20)
Set @username=’2005040102’
Set @pwd=’苏某某’
If exists(select * from 学生信息 where 学号=@username AND 姓名=@pwd)
Print ‘登录成功’
Else
Print’登录失败’


交查询INTERSECT

Select a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b
Where a.学生编号=b.学号 and a.课程编号=2 and a.考试编号=’0801’              分类查询
INTERSECT
SELECT a.成绩编号,a.分数,A.姓名 FROM
(
Select top 10 a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b
Where a.学生编号=b.学号 and a.考试编号=‘0801’ order by a.分数 DESC
)A     分类查询
组合查询
差查询EXCEPT


列必须固定和相同。语句与前几个基本相同。


Select a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b
Where a.学生编号=b.学号 and a.课程编号=2 and a.考试编号=’0801’              分类查询
EXCEPT
INTERSECT
SELECT a.成绩编号,a.分数,A.姓名 FROM
(
Select top 10 a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b
Where a.学生编号=b.学号 and a.考试编号=‘0801’ order by a.分数 DESC
)A


第八章   函数


Transact-SQL概述


结构化查询语言(被定义的语言,被Microsoft公司对其实现)

这是SQL的增强版。在关系数据库管理系统中实现检索,操纵,和添加功能

分类:


T-SQL语言基本分为三类


数据定义语言

数据操纵语言DML

数据控制语言

其他常用类型


事务管理语言

流程控制语言

附加的语言元素

常量与变量


变量声明:

DECLADE(声明)
{@名称[AS]数据类型
|@cursor_variable_nameCURSOR
}[,…n]
局部变量赋值
SET@local_variable=expression
SELECT@local_variable=expression[,...n]
运算符
+-*/%(取模)&(为与逻辑运算。同1为1,不同取0)|(位或逻辑运算同0为0,不同为1)^(位异或运算。相同为同,不同为1)。= <>  < > !=


逻辑运算符:两组相对ALL和ANY  AND 和OR  not 去反值  in匹配等true。


赋值=。链接+。一元:+正,-负,~返回数字的逻辑非


表达式


变量和常量也是表达式。

DECLARE @STR NVARCHAR(50)
SELECT @STR=’姓名:’+ 姓名+’性别:’+性别 FROM 学生信息 WHERE 学号=’2005050101’
SELECT @STR


注释


养成良好的开发习惯。为了同别人合作开发或转移工作时方便别人接受。不被执行的文本执行,注释方法1,(--)。2,(/*…*/)在SQL中使用。


IF…ELSE语句


流程控制语句。


语法格式:

IF Boolean_expression
{sql_statement|statement_block}
ELSE
{sql_statement|statement_block}


实操:

Declare @num int    ‘定义类型数字
Select @num=AVG(分数)   ‘求分数平均值
From 成绩信息                       ‘从成绩信息中提取数据
WHERE 考试编号=’0802’ AND 课程编号=’2’   ‘子查询规则
SELECT @num
IF @num>80                     ‘当平均分大于80时
BEGIN                                ‘开始
         PRINT ‘老师教课非常成功。’                ‘打印出 ’&’
END
ELSE
         PRINT ‘还需要继续努力。’                     ‘打印出 ‘&’
IF…ELSE语句嵌套

实操:

DECLARE @NUM INT               ‘声明变量
SELECT @num=AVG(分数)     ‘求平均数
FROM 成绩信息                     ‘从成绩信息提出数据
Where 课程编号=’2’ AND 考试编号=’0802’       ‘子查询规则
IF @NUM>=60                  ‘如果大于等于60
BEGIN                                ‘开始
         IF @NUM<70           ‘如果小于70
         PRINT ‘成绩刚刚及格,还要继续努力’                ‘打印
         ELSE IF @NUM<80          ‘如果小于80
         PRINT ‘成绩中等’            ‘打印
         ELSE IF @NUM<90          ‘如果小于90
         PRINT ‘成绩良好’            ‘打印
         ELSE PRINT ‘成绩优秀’   ‘或者-打印
END          ‘结束
ELSE         ‘或者小于60
PRINT’这个老师教学方法需要改进’             ‘打印


Case语句


语法格式:


CASE input_expression
WHEN when_expression THEN result_expression
[…n]
[ELSE else_result_expression]
END

Case语句示例


实操:


SELECT * 员工姓名,所在职位,员工职称=   ‘选中表中的列
case 所在职位                        ‘判断职位
when ‘经理’ then ‘高级职称’         ‘在经理时,高级
when ‘主管’ then ‘中级职称’
when ‘职员’ then ‘初级职称’
else ‘其他职称’                                 ‘或者不是以上三者时
end
FROM 员工信息                     ‘从员工信息表中提取数据


While语句


语法格式:

WHILE Boolean_expression
{sql_statement | statement_block}
[BREAK]
{sql_statement | statement_block}
 [CONTINUE]
{sql_statement | statement_block}


实操:

DECLARE @i int,@num int               ‘声明
SET @i=1                  ‘赋值
Set @num=1
While @i<10            ‘在这段时间内
Begin
         @num=@num*@i
         @i=@i+1
End
Print @num


While语句示例


实操:


可以从公司级别中挑选选中级别。并分等级。用While语句控制


While语句中使用其他语句


实操:

Declare @i int                   ‘定义变量i,j为整数
Declare @j int
Set @i=3                            ‘赋值
While @i<=100                ‘当i≤100
Begin                                  ‘开始
         Declare @bol int     ‘定义bo1为整数
         Set @bo1=1             ‘赋值
         Set @j=2
         While @j<=SQRT(@i)      ‘当j≤平方根j时
         Begin                         ‘开始
                  If @i%@j=0     ‘整除为0时
                  Begin                ‘开始
                  Set @bo1=0     ‘所以不是素数
                  Break                ‘跳出循环
                  End
                  set@j=@j+1    ‘变量递增
         end
         if @bo1=1 print @i          ‘如果是1,则输出
         set @i=@i+1            ‘外部循环
end


WAITFOR延迟语句


语法格式:

WAITFOR
{
DELAT time
|TIME time
}

实操:


Waitfor delay ’00:00:05’          ‘5秒后执行
Exec sp_help                              ‘存储过程
Waitfor time ’21:11:05’           ‘到点执行
Exec sp_help                              ‘存储过程
Select GETDATE



相关文章
|
4月前
|
NoSQL Java 关系型数据库
基于Java swing和mysql实现的学生选课管理系统(源码+数据库+运行指导视频)
基于Java swing和mysql实现的学生选课管理系统(源码+数据库+运行指导视频)
|
4月前
|
Java 关系型数据库 MySQL
基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
|
4月前
|
NoSQL Java 关系型数据库
基于java swing和mysql实现的汽车租赁管理系统(源码+数据库+文档+运行指导视频)
基于java swing和mysql实现的汽车租赁管理系统(源码+数据库+文档+运行指导视频)
|
4月前
|
NoSQL Java 关系型数据库
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
|
4月前
|
前端开发 IDE Java
基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)
基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)
171 0
|
4月前
|
NoSQL Java 关系型数据库
基于java Swing 和 mysql实现的飞机订票系统(源码+数据库+ppt+ER图+流程图+架构说明+论文+运行视频指导)
基于java Swing 和 mysql实现的飞机订票系统(源码+数据库+ppt+ER图+流程图+架构说明+论文+运行视频指导)
249 0
|
4月前
|
NoSQL Java 关系型数据库
基于java Swing 和 mysql实现的购物管理系统(源码+数据库+说明文档+运行指导视频)
基于java Swing 和 mysql实现的购物管理系统(源码+数据库+说明文档+运行指导视频)
|
4月前
|
NoSQL Java 关系型数据库
基于java swing和mysql实现的学生选课成绩信息管理系统(源码+数据库+ER图文档+运行指导视频)
基于java swing和mysql实现的学生选课成绩信息管理系统(源码+数据库+ER图文档+运行指导视频)
|
4月前
|
NoSQL Java 关系型数据库
基于java swing和mysql实现的电影票购票管理系统(源码+数据库+运行指导视频)
基于java swing和mysql实现的电影票购票管理系统(源码+数据库+运行指导视频)
|
4月前
|
NoSQL Java 关系型数据库
基于Java swing和mysql实现的员工工资管理系统(源码+数据库+运行指导视频)
基于Java swing和mysql实现的员工工资管理系统(源码+数据库+运行指导视频)