sql语句基础教程docx.docx
- 文档编号:4568024
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:22
- 大小:1.74MB
sql语句基础教程docx.docx
《sql语句基础教程docx.docx》由会员分享,可在线阅读,更多相关《sql语句基础教程docx.docx(22页珍藏版)》请在冰豆网上搜索。
sql语句基础教程docx
sql语句基础教程
SQL教程
1)SQL简介
SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。
SQL通常使用于数据库的通讯。
ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。
SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。
使用SQL的常见关系数据库管理系统有:
Oracle、Sybase、MicrosoftSQLServer、Access、Ingres等等。
虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。
但是,标准的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成绝大多数数据库的操作。
但是,不像其它的语言,如C、Pascal等,SQL没有循环结构(比如if-then-else、do-while)以及函数定义等等的功能。
而且SQL只有一个数据类型的固定设置,换句话说,你不能在使用其它编程语言的时候创建你自己的数据类型。
SQL功能强大,但是概括起来,它可以分成以下几组:
DML(DataManipulationLanguage,数据操作语言):
用于检索或者修改数据;
DDL(DataDefinitionLanguage,数据定义语言):
用于定义数据的结构,比如创建、修改或者删除数据库对象;
DCL(DataControlLanguage,数据控制语言):
用于定义数据库用户的权限。
2)SQL常用语句
2.1 SELECT语句
作用:
SELECT语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
语法:
SELECT目标表的一个或多个列名称,列名前可加表达式,如:
avg(年龄)FROM目标表的名称;
以及:
SELECT*FROM表名称;
注释:
*代表选取全部。
这个是最终的结果,可以看到只有我们要的“教师编号,姓名,性别,联系电话“列,政治面目等并没有在里面。
拓展1:
SELECTDISTINCT语句
作用:
在一个表中,可能会包含重复值。
这并不成问题,不过,有时你也许希望仅仅列出不同(distinct)的值。
关键词DISTINCT作用就是用于返回唯一不同的值。
语法:
SELECTDISTINCT列名称FROM表名称
示例:
在教师表中有两个人的名字是江小洋,这里示范只选取江小洋。
在原表中可以看到“教师编号“为09,16的两个人的名字都是江小洋。
这是SQL代码。
代码解析是:
选取列名为“姓名“中的唯一值,列的来源是”教师“这个表。
这是结果,可以看到他只选取了一个江小洋。
并没有显示两个江小洋。
拓展2:
SELECT表达式(列名)语句
作用:
往往我们在选取信息的时候希望能够直接得到一些间接信息。
如,我想要知道班级的平均分。
语法:
SELECT表达式(列名)FORM表名
示例:
这是一个“选课成绩“表里面有一个”成绩“列,我希望直接得到成绩的平均值。
这是原表。
SQL代码图,名词解释:
AVG:
为每一组中的指定字段求平均值。
(更多的函数和逻辑运算符会在附录中列出)
AS:
为指定的列或表指定一个别名。
(因为AS内容并不多就不再单独列出一个拓展了)
代码解析:
选取“成绩”列,并计算这个字段的平均值,同时为这个字段重新命名为:
成绩平均值,这个列的来源表是“选课成绩”表。
这是结果图,通过计算可以得知成绩列的平均值是72.46.
课堂作业:
为每个学生计算平均成绩和为每门课程计算平均成绩,并把结果字段更名为“平均值”。
2.2 WHERE子句
作用:
WHERE子句用于规定选择的标准。
WHERE后面接的是条件表达式,如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句
语法:
SELECT列名称FROM表名称WHERE条件表达式
示例:
例如我想知道一个名字叫“洪智伟”的学生的信息。
这是原表,里面拥有多条学生信息,我们可以看到第一个就是“洪智伟”同学的信息,我们的目的就是选取他的信息。
代码图,代码解析:
选取所有字段名,字段的来源表是“学生”表,选取的条件是“姓名”等于“洪智伟”的记录。
结果图,可以看到虽然来源表中有N条记录当选取到的记录只有一条。
其姓名叫洪智伟。
拓展:
AND&OR运算符
作用:
AND和OR运算符用于基于一个以上的条件对记录进行过滤。
AND和OR运算符AND和OR可在WHERE子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则AND运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则OR运算符显示一条
语法:
SELECT列名称FROM表名称WHERE条件AND/OR条件
注释:
AND&OR可以嵌套使用!
示例:
我想选取“所有山东省的男生”或“所有北京市的女生”
这是原表,数据非常多而且杂乱,用刷选来查找记录的话非常麻烦,所以选用SQL来查询。
代码图,代码解析:
选取所有字段,字段的来源是“学生”表。
选取的条件是“性别是男的并且简历是山东省的学生”或者“性别是女的并且简历是北京市的学生”(本来想先做一个简单AND/OR语句再做多个拓展来介绍嵌套的使用,不过觉得太浪费篇幅,并且嵌套不难理解,注意一下嵌套需要用括号()括住就可以了!
)
课堂作业:
选取是团员的男生和简历是山东省的女生。
2.3 GROUPBY子句
作用:
GROUPBY语句用于结合合计函数,根据一个或多个列对结果集进行分组。
语法:
SELECT一个或多个列名,可接函数
FROM表名
WHERE条件表达式
GROUPBY列名
示例:
要求列出“选课成绩”表中的“课程编号”从“110-120”的课程成绩平均值。
(呵呵,好像和之前的作业蛮像得=。
=!
)
原表图,原表中每个课程都有N个学生选,其成绩也有N项,为了直观的显示我们来求以整数来表达的平均值。
SQL代码图,名词解释:
INT:
将数值取整数,如把72.2显示为72,四舍五入。
BETWEEN AND:
BETWEEN操作符在WHERE子句中使用,BETWEEN...AND会选取介于两个值之间的数据范围。
这些值可以是数值、文本或者日期。
代码解析:
选取课程编号和成绩两个字段,并且计算成绩字段的整数平均值和更名为成绩平均值,字段的来源表是“选课成绩”表。
选取记录的条件是”课程编号在110–120这个区间内的记录”,然后根据课程编号来分组。
结果图,课程编号中只显示了110-120的记录,其成绩的平均值也为整数。
!
拓展:
HAVING子句
作用:
在SQL中增加HAVING子句原因是,WHERE关键字无法与合计函数一起使用。
同时HAVING都是紧跟着GROUPBY语句出现的,提供一个组的条件表达式。
语法:
SELECT一个或多个列名,可接函数
FROM表名
WHERE条件表达式
GROUPBY列名
HAVING组条件表达式
示例:
在上一个示例当中更加进一步的精确选取数据,只选取平均分超过75分的记录。
因为是延续上个示例,所以原图一样就不再列出。
SQL代码图,代码解析:
在原有的代码基础上添加了HAVING子句。
使得数据更具有精确性,为了让大家更加明确了解WHERE和HAVING的区别在这里在给大家看一个图。
可以看到如作用:
哪里所说的。
WHERE子句当中是不能使用聚合函数的!
如果我们希望得到一个平均值大于某个数的记录的话。
我们使用WHERE子句的话是做不到的,这个时候就必须使用HAVING了而需要注意的是HAVING是在GROUPBY语句后使用的。
结果图,可以看到110-120区间内只有两门课程的成绩平均值在75分以上。
2.4 oRDERBY子句
作用:
ORDERBY语句用于根据指定的列对结果集进行排序。
ORDERBY语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用DESC关键字。
语法:
SELECT一个或多个列名,可接函数
FROM表名
DRDERBY列名
示例:
让教师表里面的记录按照男女排列。
原表图,原表中是根据教师编号来排列的。
SQL代码图,代码解析:
选取全部字段,字段来源表是“教师”表,表的排序是根据表中的“性别”字段来排序。
结果图,可以看到表是根据性别来来排序的,先男后女,因为男的拼音是“nan”而女的拼音是“nv”,access中的汉字排序是根据汉字拼音的字母顺序来排序的。
拓展:
综合应用
SELECT一个或多个列名,可接函数
FROM表名
WHERE条件表达式
GROUPBY列名
HAVING组条件表达式
ORDERBY列名DESC
因为ORDERBY子句是对结果的重新排序,所以在此就不结合多个语句使用了,只是告诉大家能结合之前所学内容使用而已!
示例:
对上个示例的结果进行降序排列。
原图一样就不提供了。
SQL代码图,代码解析:
和之前的示例一样,只是按照降序排列而已。
结果图,可以看到和之前的那个结果图的排序刚刚相反,这次是女的排在前。
课堂作业:
让“教师”表按照性别降序排序,并且“学历”升序排序。
2.5 INSERTINTO语句
作用:
INSERTINTO语句用于向表格中插入新的记录
!
!
注意在添加记录之前一定要先查看被添加记录表的字段设置属性,看看字段有没有设置为不能为空或者字段最大值等等之类的。
语法:
INSERTINTO表名称VALUES(值1,值2,....)
注释:
因为插入的是一个表的全部列值所以列名可以忽略不写。
我们也可以指定所要插入数据的列:
INSERTINTO表名(列1,列2,...)VALUES(值1,值2,....)
注释:
如果插入的知识表的部分列值的话,则必须列出相应的列名。
没有的列出的列名则取空值。
示例:
向“学生”表添加一个记录
原表图,表中的记录排第一的是“洪智伟”。
SQL代码图,代码解析:
向“学生”表中的“学生编号,姓名,年龄,简历”字段添加一个新的记录,记录的内容是“学生编号为1991,姓名是黄学宇,年龄为18,简历为广东省”
注释:
因为添加记录具有不可恢复性所以access会弹出个警告框来询问你是不是确定要进行这步操作。
结果图,可以看到记录已经成功添加,没有选择的字段为空值。
拓展:
高级应用
作用:
向一个表中添加由多个表组合成的新纪录。
语法:
INSERTINTO添加记录的表名称(列1,列2……)
SELECT表1.列1,表1.列2,表2.列1,表3.列1
FROM表1,表2,表3
WHERE条件表达式;
示例:
制作一个补考人员名单。
原表图,这是个空表,在向一个表添加记录时一定要确认这个表的存在而且要确认字段的属性。
这是个我刚刚建立的新表,字段属性都是文本,没有任何限制条件。
在这里我是用SQL来建立的这个表。
关于建立新表的SQL代码大家可以使用CREATETABLE语句,因为这篇教程只是介绍基本SQL内容所以没有在这里列举。
有需要的话我会在写多一份相对高级点的教程。
SQL代码图,代码解析:
向“补考人员名单”这份表中的“学生编号,姓名,课程名称,成绩”字段添加记录。
添加的新记录来至于“学生”表中的“学生编号”,“学生”表中的“姓名”,“课程”表中的“课程名称”,“选课成绩”中的“成绩”。
选取的条件是“选课成绩”中的“成绩”小于60,且在这些表中“学生”表里面的“学生编号”等于“选课成绩“中的学生编号”,“课程”表中的“课程编号”等于“选课成绩”中的“课程编号”。
同样的,因为这个操作具有不可恢复性所以一样会弹出警告框!
在这里还可以使用INNERJOIN(内连接)语句来连接这3个表的相同字段。
在这里并没有列举,理由同上。
结果图,可以看到所有成绩低于60的记录都被选取出来。
其显示结果也很直观,联系了3个表中的数据。
课堂作业:
制作一个优秀学员名单,要求选课成绩有两门成绩上80分。
2.6 UPDATE语句
作用:
Update语句用于更新,修改表中的数据。
语法:
UPDATE表名称
SET列名称=需要改变的新值
WHERE条件表达式
注释:
WHERE子句用于确认目标列来修改数据。
示例:
修改错误数据。
这是之前的例子用INSERTINTO语句来插入的一条记录,在这里与上个例子不同的是“黄学宇”在这里是为团员,而且入校日期也没有填写,我们利用UPDATE来补齐。
SQL代码图,代码解析:
更新“学生”表,更新的设置为:
把入校日期更新为“2009-4-22”,把学生编号修改为“000000”,团员修改为“非团员”。
更新的列是姓名等于“黄学宇”的那个列。
注释:
关于“团员=false”存在疑问,因为我是通过其他语言来类比得出来的,经过王老师指导,说是错误的。
当然在SQL上使用完全没有问题,在这里只是给大家提供一个参考。
结果图,数据已经完全按照我们输入的那样来更新、修改了!
拓展:
ALTERTABLE语句
作用:
ALTERTABLE语句用于在已有的表中添加、修改或删除列。
语法:
如需在表中添加列,请使用下列语法:
ALTERTABLE表名
ADD列名字段属性(文本,时间日期等。
。
)
要删除表中的列,请使用下列语法:
ALTERTABLE表名
DROPCOLUMN列名
注释:
某些数据库系统不允许这种在数据库表中删除列的方式(DROPCOLUMN列名)。
要改变表中列的数据类型,请使用下列语法:
ALTERTABLE表名
ALTERCOLUMN列名字段属性
示例:
为选课成绩增加一个字段“评价”并把90分以上的同学的评价更新为优秀。
这是原表,里面并没有我们要的“评价”字段。
因为不能同时使用ALTERTABLE语句和UPDATE语句。
所以要分开弄两个SQL代码。
。
SQL代码图,代码解析:
向“选课成绩”表增加一个长度为255的文本字段。
需要注意的是运行这个SQL代码的时候必须确认你添加列的表并没有被打开。
结果图,可以看到评价字段已经能够添加成功。
代码图,代码解析:
向“选课成绩”表更新数据,把评价设置为“优秀”,更新字段的条件是“成绩”大于并等于“90”
结果图,“成绩”字段大于并等于“90”的记录的“评价”都已经被修改为“优秀”了!
2.7 DELETE语句
作用:
DELETE语句用于删除表中的记录。
语法:
DELETEFROM表名称WHERE条件表达式
注释:
如果没有WHERE子句的话,则代表删除表中的全部记录。
有的话则是删除满足WHERE条件的记录。
示例:
删除学生表中1990年到1992年间的所有学生记录。
原表图,入校日期都是7月份的九号。
SQL代码图,代码解析:
删除记录,来源于“学生”表,删除的条件是“入校日期”在1990年初到1992年初。
结果图,可以看到现在入校日期是1992年7月9号开始的了,之前1990-1992年间的记录都已经被删除。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql 语句 基础教程 docx