SQL学习笔记—基础篇

发布于 / Code-指尖艺术 / 0 条评论

1 SQL介绍

SQL 是用于访问和处理数据库的标准的计算机语言。关于SQL的具体介绍,我们通过回答如下三个问题来进行。

SQL 是什么?

  • SQL,指结构化查询语言,全称是 Structured Query Language。
  • SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。

SQL 能做什么?

  • SQL 面向数据库执行查询
  • SQL 可从数据库取回数据
  • SQL 可在数据库中插入新的记录
  • SQL 可更新数据库中的数据
  • SQL 可从数据库删除记录
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表
  • SQL 可在数据库中创建存储过程
  • SQL 可在数据库中创建视图
  • SQL 可以设置表、存储过程和视图的权限

虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。

除了 SQL 标准之外,大部分 SQL 数据库程序都拥有它们自己的专有扩展!

在网站上如何使用 SQL?

要创建一个显示数据库中数据的网站,需要:

  • RDBMS 数据库程序(比如 MS Access、SQL Server、MySQL)
  • 使用服务器端脚本语言,比如 PHP 或 ASP
  • 使用 SQL 来获取您想要的数据
  • 使用 HTML / CSS

RDBMS (Relational Database Management System)指关系型数据库管理系统。RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。RDBMS 中的数据存储在被称为表的数据库对象中。表是相关的数据项的集合,它由列和行组成。

2 SQL语句

在数据库上执行的大部分工作都由 SQL 语句完成。我们先介绍几个有关SQL的注意事项,为我们接下来详细介绍每一条SQL做一个基础。

SQL语句的大小写问题:

SQL 对大小写不敏感:SELECT 与 select 是相同的。但规范语法如下:

  • 关键字与函数名称全部大写
  • 数据库名称、表名称、字段名称全部小写
  • SQL语句必须以分号结尾

SQL 语句后面的分号问题:

某些数据库系统要求在每条 SQL 语句的末端使用分号。
分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。

一些重要的 SQL 命令:

SQL命令有三个主要的组成部分:数据操作语言 (DML) 、数据定义语言 (DDL)和数据控制语言(DCL)。
1)DML(Data Manipulation Language)数据操作语言。这个模块可以让我们检索、修改、增加、删除数据库中的数据。

  • SELECT – 从数据库中提取数据
  • UPDATE – 更新数据库中的数据
  • DELETE – 从数据库中删除数据
  • INSERT INTO – 向数据库中插入新数据

2)DDL(Data Definition Language)数据定义语言。是的我们能够创建和修改数据库本身。也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

  • CREATE DATABASE – 创建新数据库
  • ALTER DATABASE – 修改数据库
  • CREATE TABLE – 创建新表
  • ALTER TABLE – 变更(改变)数据库表
  • DROP TABLE – 删除表
  • CREATE INDEX – 创建索引(搜索键)
  • DROP INDEX – 删除索引

3)DCL(Data Control Language)数据控制语言,用于维护数据库的安全。

  • GRANT – 授予用户权限
  • REVOKE – 收回用户授予的权限

3 SQL SELECT语句

SELECT 语句用于从数据库中选取数据,结果被存储在一个结果表中,称为结果集。
SQL SELECT 语法:

SELECT column_name,column_name
FROM table_name;

选取所有列:

SELECT * FROM table_name;

在表中,一个列可能会包含多个重复值,有时也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
SQL SELECT DISTINCT 语法:

SELECT DISTINCT column_name,column_name
FROM table_name;

4 SQL WHERE子句

WHERE 子句用于提取那些满足指定标准的记录。
SQL WHERE语法:

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

下面的 SQL 语句从 “Customers” 表中选取国家为 “Mexico” 的所有客户:

SELECT * FROM Customers
WHERE Country='Mexico';

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值字段,请不要使用引号。

WHERE 子句中的运算符

下面的运算符可以在 WHERE 子句中使用:

运算符 描述
= 等于
<> 不等于
> 大于
< 小于
>= 等于
<= 等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值

5 SQL AND与OR关键字

AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
下面的 SQL 语句从 “Customers” 表中选取国家为 “Germany” 且城市为 “Berlin” 的所有客户:

SELECT * FROM Customers
WHERE Country='Germany'
AND City='Berlin';

下面的 SQL 语句从 “Customers” 表中选取城市为 “Berlin” 或者 “München” 的所有客户:

SELECT * FROM Customers
WHERE City='Berlin'
OR City='München';

下面的 SQL 语句从 “Customers” 表中选取国家为 “Germany” 且城市为 “Berlin” 或者 “München” 的所有客户:

SELECT * FROM Customers
WHERE Country='Germany'
AND (City='Berlin' OR City='München');

6 SQL ORDER BY关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
ORDER BY语法:

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

下面的 SQL 语句从 “Customers” 表中选取所有客户,并按照 “Country” 列升序排序:

SELECT * FROM Customers
ORDER BY Country;

下面的 SQL 语句从 “Customers” 表中选取所有客户,并按照 “Country” 列降序排序:

SELECT * FROM Customers
ORDER BY Country DESC;

下面的 SQL 语句从 “Customers” 表中选取所有客户,并按照 “Country” 和 “CustomerName” 列排序:

SELECT * FROM Customers
ORDER BY Country,CustomerName;

7 SQL INSERT INTO语句

INSERT INTO 语句用于向表中插入新记录。
INSERT INTO 语句可以有两种编写形式。第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO table_name
VALUES (value1,value2,value3,...);

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

我们也可以在指定的列插入数据。
下面的 SQL 语句将插入一个新行,但是只在 “CustomerName”、”City” 和 “Country” 列插入数据(CustomerID 字段会自动更新):

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

没有被赋值的列自动填充为null。

8 SQL DELETE语句

DELETE 语句用于删除表中的行。
SQL DELETE 语法:

DELETE FROM table_name
WHERE some_column=some_value;

请注意 SQL DELETE 语句中的 WHERE 子句!
WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!

您可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:

DELETE FROM table_name;

or

DELETE * FROM table_name;

9 SQL UPDATE语句

UPDATE 语句用于更新表中已存在的记录。
SQL UPDATE语法:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

请注意 SQL UPDATE 语句中的 WHERE 子句!
WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

10 参考内容

W3CSCHOOL SQL教程
易百教程 SQL教程

转载原创文章请注明,转载自: everglow » SQL学习笔记—基础篇
Not Comment Found