欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

数据库视频教程总结及第二部分

最编程 2024-01-13 14:15:07
...

在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(‘学生信息/姓名’)
————————————————
版权声明:本文为****博主「李金轩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.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关键字查询


判断子查询。


实操:


推荐阅读