SQL 语法
SQL语法是什么
SQL遵循一组称为语法的独特规则和准则。本教程通过列出所有基本的SQL语法来帮助您快速入门。
所有SQL语句都以SELECT、INSERT、UPDATE、DELETE、ALTER、DROP、CREATE、USE、SHOW等关键词开头,所有语句都以分号(;)结尾。
大小写敏感性
这里最重要的一点是SQL不区分大小写,这意味着 SELECT 和 Select 在SQL语句中具有相同的含义。然而,MySQL区分表名的大小写。因此,如果您使用MySQL,请使用数据库中的表名。
SQL表格
让我们考虑一个名为CUSTOMERS的表格,如下所示,并将其用作演示所有相同SQL语句的参考。
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
SQL语句
本教程列出了各种SQL语句。其中大多数与MySQL、Oracle、Postgres和SQL Server数据库兼容。
所有的SQL语句都需要在每个语句的末尾使用分号作为结束符号。分号是分隔不同SQL语句的标准方法,可以在一行中包含多个SQL语句。
本教程中提供的所有SQL语句都在Linux和Windows上的MySQL服务器上进行了测试。
SQL CREATE DATABASE语句
要在数据库中存储数据,首先需要创建数据库。这是将数据归属于一个组织的必要步骤。
您可以使用以下语法创建数据库:
让我们尝试使用 CREATE DATABASE 语句在 SQL 中创建一个名为 sampleDB 的示例数据库。
SQL USE语句
数据库创建完成后,需要使用该数据库开始按需存储数据。以下是将当前位置更改为所需数据库的语法:
我们可以使用SQL中的 USE 语句,将先前创建的sampleDB设置为默认数据库。
SQL DELETE DATABASE语句
如果不再需要一个数据库,您可以删除它。要删除一个数据库,使用以下语法-
您还可以使用SQL中的 DROP DATABASE 语句删除样本数据库sampleDB –
SQL CREATE TABLE语句
在SQL驱动的数据库中,数据以结构化的方式存储,即以表的形式。要创建一个表,使用以下语法:
下面的代码块是一个示例,它创建一个上述的CUSTOMERS表,其中包括一个ID作为主键和NOT NULL作为约束,表明在创建该表的记录时,这些字段不能为NULL。
SQL DESC 语句
每个数据库中的表都有自己的结构。为了显示数据库表的结构,我们使用 DESC 语句。以下是语法-
DESC语句只在少数关系型数据库管理系统中可用;因此,让我们通过在MySQL服务器中使用DESC语句来看一个例子。
SQL INSERT INTO 语句
SQL INSERT INTO 语句用于向数据库表中插入数据。以下是语法:
下面的示例语句将在空的CUSTOMERS表中创建七条记录。
SQL SELECT语句
为了从数据库表中检索存储数据的结果集,我们使用SELECT语句。以下是语法-
要从CUSTOMERS表中检索数据,我们使用如下所示的SELECT语句。
SQL UPDATE语句
当数据库表中的存储数据已过时并且需要更新而不必删除该表时,我们使用UPDATE语句。以下是语法-
为了看一个例子,以下查询将会更新表中ID号为6的客户的地址字段。
SQL DELETE 语句
不需要将整个表从数据库中删除,您也可以通过应用条件删除某一部分数据。这可以使用 DELETE FROM 语句来完成。以下是语法示例:
以下代码中有一个查询,将删除ID为6的客户。
SQL DROP TABLE语句
当数据库中不再需要一个表时,可以使用以下语法完全删除该表:
这个查询将从数据库中删除CUSTOMERS表。
SQL TRUNCATE TABLE语句
TRUNCATE TABLE语句在SQL中用于删除表的数据,但不删除表本身。当使用此SQL语句时,表会保留在数据库中,就像一个空表一样。以下是语法:
以下查询会删除CUSTOMERS表的所有记录:
SQL ALTER TABLE语句
ALTER TABLE语句用于修改表的结构。例如,您可以使用此语句添加、删除和修改列的数据。以下是语法−
以下是使用ALTER TABLE命令向CUSTOMERS表添加新列的示例:
SQL ALTER TABLE语句(重命名)
ALTER TABLE语句还可用于更改表名。使用以下语法−
以下是使用ALTER TABLE命令重命名CUSTOMERS表的示例
SQL DISTINCT子句
数据库中的DISTINCT子句用于识别列中的非重复数据。使用SELECT DISTINCT语句,您可以从列中检索唯一的值。以下是语法:
作为一个例子,让我们使用 DISTINCT 关键词与一个SELECT查询。重复的工资2000.00只会被检索一次,而其他记录将被忽略。
SQL WHERE子句
WHERE子句用于通过应用条件来过滤表中的行。以下是从表中检索过滤行的语法:
以下查询是一个从CUSTOMERS表中检索所有薪水大于2000的记录的示例,使用SELECT语句:
SQL的AND / OR运算符
AND / OR运算符用于在WHERE子句中应用多个条件。以下是语法−
下面的查询是一个例子,从CUSTOMERS表中检索所有薪水大于2000并且年龄小于25的记录,使用SELECT语句:
SQL IN运算符
IN运算符用于通过使用WHERE子句检查数据是否存在于列中。以下是语法 –
举个例子,我们想要使用 IN 运算符来显示名称等于 ‘Khilan’、’Hardik’ 和 ‘Muffy’(字符串值)的记录,如下所示 –
SQL BETWEEN 子句
BETWEEN 操作符用于使用 WHERE 子句检索落在某个范围内的表中的值。以下是语法:
让我们尝试使用BETWEEN 运算符来检索 年龄在20到25之间的 CUSTOMERS 记录。
SQL LIKE语句
LIKE操作符用于通过WHERE子句检索与特定模式匹配的表中的值。以下是语法:
举个例子,让我们试着显示所有CUSTOMERS表中,薪水以200开头的记录。
SQL ORDER BY子句
ORDER BY子句用于将列值按照给定/指定的顺序排列。以下是语法-
在下面的示例中,我们尝试通过客户名称的字母顺序对结果进行升序排序。
SQL GROUP BY子句
GROUP BY子句用于将一个列的值分组在一起。以下是语法:
我们试图根据客户的年龄对他们进行分组,并使用以下查询计算每个年龄组的平均工资 –
SQL COUNT函数
COUNT函数可以获得指定列中非空值的数量。以下是语法:
让我们看一个例子 −
SQL HAVING 子句
HAVING 子句也用于通过应用条件来筛选一组行。以下是语法 −
在下面的示例中,我们试图从CUSTOMERS表中检索所有记录,其中他们的薪水总和小于4540 –
SQL CREATE INDEX语句
为了在数据库表上创建索引,SQL提供了CREATE INDEX语句。以下是语法 –
让我们使用以下查询在现有的CUSTOMERS表中为名为’NAME’的列创建索引 −
SQL删除索引语句
使用DROP INDEX语句可以从表中删除索引。以下是语法-
让我们使用以下查询在现有的CUSTOMERS表中删除之前创建的名为’NAME’的列的索引。