SQL 介绍
SQL(Structured Query Language)叫作结构化查询语言,专门用于管理关系型数据库的。用于对数据库中的数据进行查询、更新等操作。
SQL这个语言是1970年由IBM开发的,后来慢慢的SQL就成为了关系型数据库管理的事实标准,被几乎所有的关系数据库系统支持。
后来搞了一个SQL国际化标准,由国际标准化组织(ISO)和美国国家标准学会(ANSI)共同维护。
虽然 SQL 有一个基本的标准集,这个标准被大多数数据库系统遵循,但不同的数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server)也会添加自己独特的扩展或者对某些功能有不同的实现方式。这种特定于数据库系统的扩展或变体通常被称为“SQL 方言”。
例如:MySQL中查看数据库的SQL语句:show databases 就是MySQL的SQL方言,因为它不是 SQL 标准的一部分,因此在其他数据库系统中可能不适用或有不同的命令实现相同的功能。
SQL 分类
标准的SQL 语句可以分为DDL、DML、DQL、DCL、TCL这几类。
1、DDL
Data Defination Language,数据定义语言。这类 SQL 语句用于定义或修改数据库结构。
主要的 DDL 操作包括 CREATE(创建新表或数据库)、ALTER(修改现有数据库对象的结构)和 DROP(删除表、视图或其他数据库对象)。
对DDL的理解:
在数据库术语中,DDL 不仅涉及到从无到有的创建(如 CREATE)和从有到无的删除(如 DROP),还包括修改现有数据库对象结构的操作。ALTER 命令正是用来修改数据库中已经存在的对象(例如表、索引、列等)的结构。
这里的“定义”或“定义语言”并不限于创建新的数据库对象,而是涉及到对数据库结构的任何形式的定义或重新定义。因此使用ALTRT修改表结构,实际上也是在重新定义这个表的结构。这就是为什么 ALTER 也被归类为 DDL 的原因。
2、DML
Data Manipulation Language 数据操纵语言,用于数据的增加、删除、更新等操作。包括 INSERT(向表中插入新数据)、UPDATE(修改表中的数据)和 DELETE(从表中删除数据)。
3、DQL
Data Query Language 数据查询语言,DQL 主要是指 SELECT 语句,用于从数据库中查询数据。它允许用户指定特定的数据检索要求。
4、DCL
Data Control Language 数据控制语言。用于控制对数据的访问。主要的 DCL 操作包括 GRANT(授予用户访问和操作数据库的权限)和 REVOKE(撤销用户的数据库权限)。
5、TCL
Transaction Control Language 事务控制语言。用于管理数据库中的事务,保证数据的完整性。这包括 COMMIT(提交当前事务中的所有更改)、ROLLBACK(撤销当前事务中的更改)和 SAVEPOINT(设置事务中的回滚点)。
SQL 语句
SQL语句其实就是由于若干个关键字,每个关键字与相应的参数一起构成子句,进而形成完整的 SQL 语句。
例如:
select * from Students where name="tom"
select 关键字用于指定查询信息,* 这个参数表示所有信息
from 关键字用于指定需要从哪张表查数据,Students参数就是表名
where 关键字用于指定查询的条件,name="tom"参数就是查询条件
SQL 语句特点
关键字不分区大小写
每条完整的 SQL 语句以 分号(;)结尾
SQL语句中所有的空格都会被忽略
SQL语句的注释使用--(两个连字符),-- 之后的文本就是注释
DQL 语句
select 语句
语法格式:
SELECT 需要查询的列名字 FROM 表名称 WHRER 查询条件
说明:
如果需要查询所有的列,SELECT的参数指定为 * ,如果查询的列名有多个,使用逗号隔开
如果没有使用where指定查询条件,默认就是查询表中所有数据的信息
查询结果排序
默认情况下,使用select查询出来的结果是按照它在表中出现的顺序显示,如果需要将查询出来的数据进行排序,可以使用 ORDER BY 关键字。 ORDER BY 指定的参数就是排序的依据。
例如:
SELECT Name FROM Employees ORDER BY Salary;
ORDER BY特点:
1、ORDER BY关键字只能位于一条SQL语句的最后面,它的后面不能在有SQL关键字
2、使用 ORDER BY 指定的列名来进行排序时,即使这个列在最终的查询结果中没有显示出来也可以
3、如果指定多个列名进行排序时,要用逗号进行隔开
4、ORDER BY的默认排序规则事升序(Ascending即ASC),如果想要以降序(Descending即DESC)排序,需要在 ORDER BY 子句后明确指定 DESC 关键字
指定过滤条件
如果指向查询符合特定条件的行,就需要使用WHRER关键字来指定过滤条件。
where支持很多操作符号,最常用的就是 = 号了,还有其它一些操作符可以使用。
单个值检查:
= > <> >= IS NULL
IS NULL # 判断是否为NULL值
# <> 表示的是不等于
多值检查:
BETWEEN:在指定的两个值之间
where说明:
1、whrer 指定的参数就是进行过滤的条件,列名 操作符 值 , 如果值是字符串的话需要用引号括起来,数值不用加引号。
2、如果过滤条件有多个,可以用OR或者AND关键字来进行连接,AND的话输出的是条件都满足的行会输出,OR的话是满足其一即可。
3、还有一个类西域OR的关键字IN,用于指定一个范围检查某列的值是否在这个范围内。
例如:
SELECT * FROM Students where id IN (1,2,3,4,5)
标签:语句,数据库,基础,指定,查询,关键字,SQL
From: https://www.cnblogs.com/heyongshen/p/17831630.html