1. 城镇大全网
  2. 综合百科

sql数据库常用功能(SQL是功能强大的数据库语言)

SQL(结构化查询语言)是一种功能强大的数据库语言。SQL通常用于数据库通信。ANSI(美国国家标准协会)宣称SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库操作任务,如更新数据库中的数据或从数据库中检索数据。常用的使用SQL的关系数据库管理系统有:Oracle、Sybase、Microsoft SQL Server、Access、Ingres等。尽管大多数数据库系统使用SQL,但它们也有自己的系统专有扩展函数。然而,诸如“选择”、“插入”、“更新”、“删除”、“创建”和“删除”之类的标准SQL命令通常用于完成大多数数据库操作。

但是,与C、Pascal等其他语言不同,SQL没有循环结构(如if-then-else、do-while)和函数定义等函数。而且SQL只有一个固定的数据类型设置,换句话说,在使用其他编程语言时,你无法创建自己的数据类型。

SQL功能强大,但简而言之,它可以分为以下几组:

DML(数据操作语言):用于检索或修改数据;

DDL(数据定义语言):用于定义数据的结构,如创建、修改或删除数据库对象;

DCL(数据控制语言):用于定义数据库用户的权限。

这是原始表(教师表),包含教师编号等信息。在这个表中,工作时间,政治面貌等等都是我们不需要知道的信息,所以我们要有选择性的选择。

这是在SQL视图中输入的代码(这里不列出如何打开SQL视图)。

代码的含义是:选择“教师编号、姓名、性别、联系电话”四列,列的来源是“教师”的表。

这是最终结果。我们可以看到只有“教师编号、姓名、性别、联系电话”这一栏和我们想要的政治面貌不在其中。

扩展1:

SELECT DISTINCT语句

Role:在一个表中,可能包含重复的值。这不是问题,但有时您可能希望只列出不同的值。关键字DISTINCT功能是返回一个唯一的值。

语法:

从表名中选择不同的列名

示例:

老师名单里有两个人名字叫蒋晓阳,这里只选蒋晓阳示范。

在原表格中,我们可以看到“教师编号”为09和16的两个人的名字都是蒋晓阳。

这是SQL代码。代码分析是:在名为“姓名”的列中选择唯一值,列的来源是表“教师”。

这就是结果。可见他只选择了一个蒋晓阳。没有第二个蒋晓阳。

扩展2:

SELECT表达式(列名)语句

功能:我们在选择信息时,往往希望直接获得一些间接信息。比如我想知道班级的平均分。

语法:

SELECT表达式(列名)FORM表名

例:这是一个“选课成绩”表,有一个“分数”栏,希望直接得到平均分。

这是原表。

SQL代码图,名词解释:AVG:对每组中的指定字段进行平均。(附录中列出了更多的函数和逻辑运算符。)

AS:为指定的列或表指定别名。(因为AS没有太多内容,一个扩展就不单独列出来了。)

代码分析:选择“等级”这一列,计算该字段的平均值,将该字段重命名为“等级平均值”。本栏目来源表为“选修成绩”表。

这是结果图。通过计算,我们可以知道分数栏的平均值是72.46。

[/h 2.2 WHERE子句

Role:WHERE子句用于指定选择标准。WHERE后跟一个条件表达式。如果希望有条件地从表中选择数据,可以在SELECT语句中添加WHERE子句。

语法:

从条件表达式所在的表名中选择列名

例:比如我想知道一个叫“洪志伟”的学生的信息。

这是原始表,包含了很多条学生信息。我们可以看到,第一个是“洪志伟”的信息,我们的目的是选取他的信息。

代码图,代码分析:选择所有字段名称,字段的源表是“学生”表,选择条件是“姓名”等于“洪志伟”记录。

结果图显示,虽然源表中有n条记录,但只选择了一条记录。他叫洪志伟。

扩展:和&;OR运算符

Role:AND和OR运算符用于根据多个条件筛选记录。AND和OR运算符AND和OR可以在WHERE子语句中组合两个或多个条件。如果第一个条件和第二个条件都为真,AND运算符将显示一条记录。如果第一个条件和第二个条件中只有一个成立,则OR运算符显示一个。

语法:从表名中选择列名,WHERE条件和/或条件。

注:和&;或者可以嵌套!

例:我想选择“山东省所有男生”或“北京所有女生”。

这是原始表,数据很多,很乱。刷选择查找记录很麻烦,所以选择SQL查询。

代码图,代码分析:选择所有字段,字段的来源是“学生”表。选择标准为“性别为男,简历为山东省学生”或“性别为女,简历为北京市学生”(本想先做个简单的AND/OR陈述,再做几个扩展介绍嵌套的使用,但觉得太浪费,嵌套也不难理解。请注意,嵌套需要用括号()括起来!)

2.3 GROUP BY子句

函数:GROUP BY语句与total函数结合使用,根据一个或多个列对结果集进行分组。

语法:选择一个或多个列名,可以用函数连接。

FROM表名

WHERE条件表达式

按列名分组

例:要求在“选课成绩”表中列出“课程号”从“110-120”的平均课程成绩。

在原表中,原表中的每门课程都有n个学生的选择,其分数也有n项。为了直观显示,我们来求用整数表示的平均值。

SQL代码图,名词解释:INT:取数值为整数,如果72.2显示为72,四舍五入。

WHERE子句中使用了[/h BETWEEN AND: BETWEEN运算符,并且BETWEEN...并选择两个值之间的数据范围。这些值可以是数值、文本或日期。

代码分析:选择课程号和年级两个字段,计算年级字段的整数平均值,重命名为年级平均值。该字段的源表是“选课成绩”表。选择记录的条件是“课程号在110–120范围内的记录”,然后按照课程号分组。

成绩图中,课程号只显示110-120条记录,平均分也是整数。!

扩展:HAVING子句

函数:在SQL中添加HAVING子句的原因是WHERE关键字不能与total函数一起使用。同时,HAVING后面是GROUP BY语句,它提供了一个组的条件表达式。

语法:选择一个或多个列名,可以用函数连接。

FROM表名

WHERE条件表达式

按列名分组

具有组条件表达式

例:上例进一步精确选取数据,只选取平均分在75分以上的记录。

因为是上一个例子的延续,原图不再列出。

SQL代码图,代码解析:在原代码基础上增加HAVING子句。为了让数据更准确,为了让大家更清楚的知道WHERE和HAVING的区别,这里给大家一张图。

可以看看上面写的什么。在WHERE子句中不能使用聚合函数!如果我们想得到一个平均值大于某个数字的记录。我们不能使用WHERE子句,所以这个时候必须使用HAVING,而且需要注意的是,HAVING用在GROUP BY语句之后。

在成绩图中可以看到,110-120区间只有两门课的平均分在75以上。

[/h 2.4 oRDER BY子句

Role:ORDER BY语句用于根据指定的列对结果集进行排序。默认情况下,ORDER BY语句按升序对记录进行排序。如果你想按降序排列记录,你可以使用desc关键字。

语法:

选择一个或多个列名,可以用函数连接。

FROM表名

按列名排序

例:让教师表中的记录按男女排列。

原表,按老师号排列。

SQL代码图,代码分析:选择所有字段,字段的源表是“教师”表,表的排序基于表中的“性别”字段。

在结果图中,我们可以看到表格是按照性别排序的,男性排在前面,因为男性的拼音是“nan”,女性的拼音是“nv”,access中的汉字是按照汉语拼音的字母顺序排序的。

扩展:综合应用

选择一个或多个列名,可以用函数连接。

FROM表名

WHERE条件表达式

按列名分组

具有组条件表达式

ORDER BY列名DESC

因为ORDER BY子句是对结果的重新排序,所以这里没有和多个语句结合使用,只是告诉大家可以和之前学过的结合使用!

示例:按降序对上一个示例的结果进行排序。

原图未按原样提供。

SQL代码图,代码分析:同上例,只是降序排列。

结果图,我们可以看到前面结果图的顺序正好相反,这次是女方先来。

[/h 2.5插入到语句中

函数:INSERT INTO语句用于向表中插入一条新记录。

!!注意,在添加记录之前,必须先检查添加的记录表的字段设置属性,查看字段是否设置为not be 空或字段的最大值等。

语法:

插入到表名值(值1,值2,...)

注意:因为插入了表的所有列值,所以可以忽略列名。

我们还可以指定要插入数据的列:

插入到表名(第1列,第2列,...)值(值1,值2,...)

说明:如果插入的知识表的某些列有值,则必须列出相应的列名。未列出的列名采用空的值。

示例:向Students表中添加记录。

原图中,表中第一条记录是“洪志伟”。

SQL代码图,代码分析:在“学生”表中的“学号、姓名、年龄、简历”字段添加一条新记录,记录内容为“学号1991,姓名黄,年龄18,简历广东省”

注意:由于添加的记录是不可恢复的,access会弹出一个警告框,询问您是否确定要这样做。

结果图表显示记录已成功添加,未选中的字段为空值。

扩展:高级应用程序

功能:向一个表中添加一条由多个表组成的新记录。

语法

将添加的记录的名称插入到表中(第1列,第2列...)

选择表1。第1栏,表1。第2栏,表2。第1栏,表3。第一栏。

来自表1、表2和表3

WHERE条件表达式;

例:做一个补考清单。

原表图,是一个空表。向表中添加记录时,必须确认该表的存在以及字段的属性。这是我刚刚创建的一个新表。字段属性都是文本,没有任何限制。我使用SQL在这里构建了这个表。可以使用CREATE TABLE语句关于创建新表的SQL代码,因为本教程只介绍基本的SQL内容,所以这里不列出。如果有必要,我会再写一篇相对高级的教程。

SQL代码图,代码解析:在“补考人员列表”中的“学号、姓名、课程名称、成绩”字段添加记录。添加的新记录来自学生表中的学生编号、学生表中的姓名、课程表中的课程名称以及课程选择分数中的年级。选择条件是选课成绩中的分数小于60,并且这些表中的学生表中的学号等于选课成绩中的学号,课程表中的课程号等于选课成绩中的课程号。同样,因为这个操作是不可恢复的,所以会弹出一个警告框!在这里,您还可以使用INNER JOIN语句来连接这三个表的相同字段。出于同样的原因,这里没有列出。

结果图显示所有分数低于60的记录都被选中。显示结果也很直观,三个表的数据是链接的。

[/h 2.6更新语句

函数:Update语句用于更新和修改表中的数据。

语法:

更新表名

SET column name =要更改的新值。

WHERE条件表达式

注意:WHERE子句用于确认要修改数据的目标列。

示例:修改错误数据。

这是上一个示例中由INSERT INTO语句插入的记录。这里与前一个例子不同的是,“黄”在这里是团员,没有填写入团日期。我们使用UPDATE来填充它。

SQL代码图,代码分析:

更新“学生”表,更新后的设置为:将入学日期更新为“2009年4月22日”,学号改为“000000”,团员改为“非团员”。更新的列是名称等于“黄”的列。

注:对“团员=假”有疑问,因为我通过其他语言打了个比方,在王老师的指导下,错了。当然,使用SQL完全没有问题,在这里只是给大家一个参考。

结果图,数据在我们进入时已经完全更新修改!

扩展:ALTER TABLE语句

函数:ALTER TABLE语句用于添加、修改或删除现有表中的列。

语法:

若要向表中添加列,请使用以下语法:

更改表表名

添加列名字段属性(文本、时间和日期等。。)

若要删除表中的列,请使用以下语法。

更改表表名

删除列列名

注意:有些数据库系统不允许这种删除数据库表中列的方法(DROP COLUMN name)。

若要更改表中某列的数据类型,请使用以下语法:

更改表表名

更改列名字段属性

例:在选课评分中增加一个字段“评价”,将90分及以上学生的评价更新为优秀。

这是原表,里面没有“评估”字段。因为不能同时使用ALTER TABLE语句和UPDATE语句。所以我们必须分别得到两个SQL代码。。

SQL代码图,代码分析:在“选课得分”表中增加一个长度为255的文本字段。应该注意的是,在运行这个SQL代码时,必须确保添加了列的表没有打开。

结果图显示评估字段已成功添加。

代码图,代码分析:更新“选课结果”表中的数据,设置评价为“优秀”,以“结果”大于等于“90”为条件更新字段。

在结果图表中,“得分”字段大于或等于“90”的记录的“评估”已更改为“优秀”!

[/h 2.7删除语句

函数:DELETE语句用于删除表中的记录。

语法:

从表名中删除条件表达式

注意:如果没有WHERE子句,则意味着删除表中的所有记录。如果是,删除满足WHERE条件的记录。

示例:删除student表中从1990年到1992年的所有学生记录。

原图中,入院日期为7月9日。

SQL代码图,代码解析:删除记录,该记录来自“学生”表,删除条件是“开学日期”为1990年初至1992年初。

在成绩图中,我们可以看到入学日期从1992年7月9日开始,之前1990年到1992年的记录已经被删除。

你学过什么SQL知识吗?欢迎分享和转发您的关注。谢谢大家!

,

猜你喜欢:综合百科

综合百科sql数据库常用功能(SQL是功能强大的数据库语言)

转载请注明:原文链接 | http://www.nnxc.com.cn/10043348288.html