计算机程序设计

基本SQL语句

SQL标准于1992年被采用,仍在使用中。 这是他成为许多 数据库管理系统 的基准 。 当然,一些制造商使用他们对标准的解释。 但在任何系统中,都有主要的组件--SQL语句。

介绍

在数据库中的SQL语句的帮助下,管理和接收值,表和数据以进行进一步的分析和显示。 它们是一组关键字,通过该关键字系统可以了解如何处理数据。

定义几类SQL语句:

  • 数据库对象的定义
  • 价值操纵
  • 保护和管理;
  • 会话设置;
  • 有关基地的资料
  • 静态SQL;
  • 动态SQL。

用于操作数据的SQL语句

此类别包括关键字,您可以通过它们管理数据库中值的位置。

INSERT。 将行插入现有表。 它可以用于一个值或多个,由一定条件定义。 例如:

INSERT INTO

表名(列名1,列名2)

VALUES(值1,值2)。

要为多个值使用 SQL查询 运算符INSERT,语法为:

INSERT INTO

表名1(列名1,列名2)

SELECT列名称1,列名称2

FROM表名称2

WHERE表名2.列名1> 2

该查询将从表2中选择大于2的所有数据,并将其插入到第一列。

UPDATE。 顾名思义,此SQL查询运算符更新现有表中的特定特征的数据。

例如:

UPDATE表名1

SET列名称2 =“Basil”

WHERE表名1.列名1 = 1

这个结构将在第一列中遇到数字1的所有行填充Basil值。

DELETE。 从表中删除数据。 您可以指定条件或删除所有行。

DELETE FROM表名称

WHERE表name.column name 1 = 1

上述查询将从第一列中的值为1的数据库中删除所有数据。 以下是清除整个表格的方法:

删除从表的名称。

此外,有必要告诉操作符SELECT。 他是最重要的人之一,所以他将不得不分开一个章节。

SELECT语句

SELECT的主要目的是检索某些条件的数据。 他的工作结果总是一个新的选择数据表。 MS SQL SELECT语句可以在众多不同的查询中使用。 因此,您可以考虑其他相关的关键字。

要从某个表格中选择所有数据,请使用“*”符号。

SELECT *

FROM表名1

此查询的结果将是表1的精确副本。

这里是WHERE条件的一个样本,它从表1中提取了第1列中大于2的所有值。

SELECT *

FROM表名1

WHERE表名1.列名1> 2

您也可以在选择中指定只需要某些列。

SELECT表名1.列名1

FROM表名1

此查询的结果将是所有行,其值为列1。使用MS SQL语句,您可以创建自己的表,替换,计算和替换某些值。

SELECT

表名1.列名1

表名1.列名2

表名1.列名3

«=»AS EQ

表名1.列名2 *表名1.列名3 AS SUMMA

FROM表名1

这个看似复杂的查询选择表1中的所有值,然后创建EQ和SUMMA的新列。 第一个将符号“+”放在第2列和第3列数据的第二个产品中。结果可以以表的形式呈现,以了解其工作原理:

第1栏

第2栏

第3栏

EQ

SUMMA

产品1名称

10

50

+

500

产品名称2

15

100

+

1500

使用SELECT语句时,可以通过某种特性立即组织数据排序。 为此,请使用“ORDER BY”一词。

SELECT

表名1.列名1

表名1.列名2

表名1.列名3

FROM表名1

ORDER BY列名称2

结果表将如下所示:

第1栏

第2栏

第3栏

1

1

54

3

2

12

7

3

100

2

1

也就是说,所有行都按照第2列的顺序设置,值按升序排列。

数据也可以从几个表中获得。 为了清楚起见,您首先需要设想数据库中有两个,大致如下:

员工表

姓氏

1

Vasya

Vasin

2

彼佳

佩廷

表“工资”

与记

1

1

10000

2

0.5

3500

现在,您需要以某种方式链接这两个表以获取常见值。 使用基本的SQL语句,您可以这样做:

SELECT

员工人数

员工名字

Zarplata.Stavka

Zarplata.Nachisleno

从员工,工资

WHERE Employees.Number = Salary.Number

这里,选择两个不同的值表,按数字分组。 结果是以下数据集:

与记

1

Vasya

1

10000

2

彼佳

0.5

3500

更多关于SELECT。 使用聚合函数

主要的SQL SELECT语句之一可以在样本中执行一些计算。 为此,他使用某些功能和公式。

例如,要从Employees表中获取条目数,您需要使用查询:

SELECT COUNT(*)AS N

来自员工

结果是一个具有一个值和一个列的表。

ñ

2

在查询中,您可以使用计算总和,最大值和最小值以及平均值的函数。 为此,使用关键字SUM,MAX,MIN,AVG。

例如,您需要从已知的表“薪水”中进行抽样:

与记

1

1

10000

2

0.5

3500

您可以应用此查询,看看会发生什么:

SELECT

SUM(工资指定)为SUMMA

MAX(Salary.No)AS MAX

MIN(工资指定)AS MIN

AVG(Salary.No)AS SRED

从工资

决赛桌将如下:

SUMMA

MAX

MIN

SRED

13500

10000

3500

6750

这样,您可以从数据库中选择所需的值,即时执行各种功能的计算。

统一,交集和差异

将多个查询合并到SQL中

SELECT Employees.Name

来自员工

WHERE Employees.Number = 1

UNION

SELECT Employees.Name

从员工,工资

WHERE Salary.Number = 1

应该考虑到,通过这种组合,表必须兼容。 也就是说,具有相同数量的列。

SELECT语句的语法及其处理顺序

第一件事就是决定数据采集的区域。 FROM关键字用于此。 如果没有指定,究竟要选择什么。

那么可能有一个SQL WHERE子句。 在其帮助下,SELECT运行在表的所有行中,并检查数据是否符合条件。

如果查询具有GROUP BY,则根据指定的参数对这些值进行分组。

运算符比较数据

有几种类型。 在SQL中,比较运算符可以检查不同类型的值。

  • “=”。 正如你所猜想的那样,表示两个表达式的平等。 例如,它已经在上面的例子中使用 - WHERE Salary。Number = 1。

  • “>”。 标志较大。 如果表达式左侧的值较大,则返回逻辑TRUE并满足条件。

  • “<”。 标志较小。 反转上一个语句。

  • 符号“<=”和“> =”。 它与简单的运算符越来越不同,因为当操作数相等时,条件也将成立。

  • “<>”。 不平等 只有当一个操作数不等于另一个操作数时,条件才被视为TRUE。 他还有一个解释 - “!=”。

LIKE

将此关键字翻译成“相似”。 SQL中的LIKE语句的使用方式大致相同 - 它对模板执行查询。 也就是说,它允许您使用正则表达式从数据库中扩展数据的选择。

例如,已经设置了以下任务:从已知的“员工”基础,获取所有以“I”结尾的人。 那么查询可以写成如下:

SELECT *

来自员工

WHERE名称为“%I”

在这种情况下,百分号是指一个掩码,即任何符号及其数字。 并且通过字母“I”SQL将确定最后一个字符应该是这样的。

CASE

这个SQL Server语句是多项选择的实现。 它类似于许多编程语言中的开关设计。 SQL中的CASE语句在几个条件下执行操作。

例如,您需要从“薪资”表中选择最大值和最小值。

与记

1

1

10000

2

0.5

3500

那么查询可以写成如下:

SELECT *

从工资

选择最大值(应计)THEN Maximum

选择最小值(应计)最小值

END总计

在此上下文中,系统将在“应计”列中查找最大值和最小值。 然后,使用END,创建“total”字段,根据条件的结果,将记录“Maximum”或“Minimum”。

顺便说一下,在SQL中还有一个比较紧凑的形式CASE - COALESCE。

数据定义运算符

此视图允许您对表进行各种更改 - 创建,删除,修改和使用索引。

第一个要考虑的是CREATE TABLE。 它只做了一个表。 如果您只是键入CREATE TABLE,则不会发生任何事情,因为您仍然需要指定一些参数。

例如,要创建一个已经熟悉的“Employees”表,您可以使用以下命令:

创建表员工

(号码(10)NOT NULL

名称varchar(50)NOT NULL

姓氏varchar(50)NOT NULL)

在此查询中,字段名称及其类型立即在括号中定义,以及它是否可以为NULL。

DROP TABLE

执行一个简单的任务 - 删除指定的表。 有一个额外的参数IF EXISTS。 它在删除时吸收错误,如果表不存在。 使用示例:

DROP TABLE IF EXISTS的员工。

创建索引

SQL有一个索引系统,可以加快数据访问速度。 一般来说,它是一个指向特定列的参考。 创建索引可以是一个简单的查询:

CREATE INDEX index_name

ON tbl_name(column_name)

该操作符用于T-SQL,Oracle,PL SQL和许多其他技术的解释。

ALTER TABLE

功能强大的运营商,众多的选择。 一般来说,改变产生的结构的定义和分配表。 运营商是Oracle SQL,Postgres的,和许多其他人使用。

现在将参考使用ALTER TABLE各种选项呈现。

  • ADD。 执行在表中添加列。 语法他这个:ALTER TABLE ADD nazvanie_tablitsy nazvanie_stolbtsa tip_hranimyh_dannyh。 能有一个参数IF NOT EXISTS,如果列已经创造了其抑制错误;

  • DROP。 删除列。 IF EXISTS也完成,这将产生一个错误,指出所请求的列不存在;

  • CHANGE。 用于重命名指定的字段名。 实例:ALTER TABLE CHANGE nazvanie_tablitsy OLDNAME NEW_NAME;

  • 修改。 此命令将改变的特定列和附加属性的类型。 它这样使用:ALTER TABLE MODIFY nazvanie_tablitsy nazvanie_stolbtsa数据类型属性;

CREATE VIEW

在SQL中,有这样的事,作为一个主意。 总之,它是一种虚拟表中的数据。 它使用的语言SQL SELECT语句作为样品的结果形成。 视图可以限制对数据库的访问隐藏起来,以取代真正的列名。

创建的过程中出现由一个简单的查询:

CREATE VIEW视图名AS选择*表名

取样可能发生的整个数据库作为一个整体,并在一定的条件。

一些关于特征

在SQL查询经常使用不同的内置功能,让您与数据进行交互,并将它们转换的飞行。 这是值得考虑他们,因为他们是一个结构化语言的一个组成部分。

  • 计数。 在产生特定的表计算行或条目。 作为一个选项,你可以指定列名,那么数据就会从他身上取。 SELECT COUNT * FROM员工;

  • AVG。 此功能仅适用于数字数据列。 其结果是所有值的算术平均值的决心;

  • MIN和MAX。 这些功能已经在这篇文章中被使用。 他们定义的最大值和所述列的最小值;

  • SUM。 这很简单 - 函数计算的列值的总和。 它是专门用于数字数据类型。 添加DISTINCT请求参数,将仅添加到唯一值;

  • ROUND。 功能舍去小数小数。 通过列名和小数的数量使用的语法;

  • LEN。 一个简单的函数计算所述柱的长度。 其结果将是表示字符的数目的新表;

  • NOW。 此关键字用于计算当前的日期和时间。

另外运营商

SQL语句的许多例子是执行小任务,但仍然大大简化样品或数据库活动的关键词。

  • AS。 当你想直观地安排分配指定的名称得到一个表的结果时使用。

  • BETWEEN。 采样用的非常方便的工具。 它表示的值的范围,包括需要获取数据。 输入参数从和向数范围用于接收。

  • 不是。 操作者给出的表达式的对面。

  • TRUNCATE。 去除所述基部的数据。 从那些其使用后无法恢复数据运营商不同。 值得一提的是,在不同的SQL某个特定关键字的实现可以有不同的解释。 所以,你尝试使用截形,与背景信息更好地了解前。

  • 限制。 设置的输出线的数目。 运营商的特点是,它总是位于末端。 这需要一个强制的和一个可选的参数。 第一个表示与所选择的数据有多少行显示。 而如果第二个,然后操作员操作值的两个范围。

  • UNION。 非常人性化的操作到多个查询组合。 他已经这样本文中的例子中得到满足。 您可以从多个表中显示的行,UNION将它们组合起来更方便使用。 语法他这个:SELECT列名FROM表UNION选择imya_drugogo_stolbtsa imya_drugoy表。 其结果是美国需求的汇总表。

  • PRIMARY KEY。 翻译成“主键”。 实际上,这样的术语在参考材料中使用。 他是该行的唯一标识符。 创建表时,表明将包含它的领域它是用来作为一项规则。

  • DEFAULT。 正如前面的操作中,创建一个查询的实现中使用。 它定义的默认值,这将在本领域中创建时被填充。

一些提示,以建立一个平台,让SQL工作

  1. NULL。 初学者而不仅仅是程序员的要求编制往往忽视了NULL值的可用性。 其结果是,该代码误差逐渐在,这是难以跟踪在调试过程。 因此,创建表时,重新计算或样本值需要停下来思考,以及是否发生NULL考虑在查询区域。

  2. 内存。 在本文中,我们示出了多种功能,能够执行某些任务。 在外壳与数据库工作的发展,你可以“超过”简单表达对数据库系统的计算。 在某些情况下,这给在性能上显著提升。

  3. 限制。 如果你想从数千只两行的数据库得到的,它是需要使用运营商,如限价或顶部。 无需用语言发展的外壳的手段来获取数据。

  4. 连接。 一旦收到来自几个表的数据,许多程序员开始减少他们一起信封存储装置。 但是,为什么? 毕竟,你可以在其中悉数到场的请求。 你不必编写一次代码,并在系统中保留更多的内存。

  5. 排序。 如果有可能应用在监管的要求,那就是,在DBMS的力量,就必须使用它。 这将大大节省资源的程序或服务时。

  6. 许多要求。 如果你需要插入大量的顺序记录,那么优化应该考虑的分组数据插入一个请求。 这也将提高整个系统的性能。

  7. 数据的仔细放置。 制定基本结构之前需要考虑如何以及是否这样一些必要的表和字段。 也许有一种方法将它们结合起来,或者放弃一些。 很多时候,程序员使用已无处从未使用过的数据过量。

  8. 类型。 为了节省空间和资源,需要注册后才能使用的类型的数据很敏感。 如果你可以采取的较“重”的内存类型的优势,你必须用自己的名字。 例如,如果已知在该领域是数字值将不超过255,为什么使用4字节INT的,如果存在TINYINT 1个字节。

结论

总之,应该指出的是,语言的结构SQL查询现在使用几乎无处不在 - 网站,Web服务,桌面软件,移动应用程序。 因此,SQL知识将帮助发展的所有部门。

然而,本地语言标准修改有时彼此不同。 例如,PL SQL运营商可能有不同的语法比在SQL Server中。 在开始使用此技术的发展做之前,有必要的话,被指引熟悉它。

在未来的同行,这可能超过了SQL的功能和性能,这是不太可能出现,所以这个范围为任何程序员非常有前途的利基。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhcn.birmiss.com. Theme powered by WordPress.