SQL 菜鸟教程

第一节:SQL 语法

数据库表

一个数据库通常包含一个或多个表。每个表有一个名字标识(例如:"Websites"),表包含带有数据的记录(行)。

在本教程中,我们在 MySQL 的 RUNOOB 数据库中创建了 Websites 表,用于存储网站记录。

我们可以通过以下命令查看 "Websites" 表的数据:

mysql> use RUNOOB;
Database changed

mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM Websites;
±—±-------------±--------------------------±------±--------+
| id | name | url | alexa | country |
±—±-------------±--------------------------±------±--------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
±—±-------------±--------------------------±------±--------+
5 rows in set (0.01 sec)

解析

  • use RUNOOB; 命令用于选择数据库。
  • set names utf8; 命令用于设置使用的字符集。
  • SELECT * FROM Websites; 读取数据表的信息。
  • 上面的表包含五条记录(每一条对应一个网站信息)和5个列(id、name、url、alexa 和country)。

SQL 语句

您需要在数据库上执行的大部分工作都由 SQL 语句完成。

下面的 SQL 语句从 "Websites" 表中选取所有记录:

实例

SELECT * FROM Websites ;

在本教程中,我们将为您讲解各种不同的 SQL 语句。


请记住...

  • SQL 对大小写不敏感:SELECT 与 select 是相同的。

SQL 语句后面的分号?

某些数据库系统要求在每条 SQL 语句的末端使用分号。

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

在本教程中,我们将在每条 SQL 语句的末端使用分号。


一些最重要的 SQL 命令

  • SELECT - 从数据库中提取数据
  • UPDATE - 更新数据库中的数据
  • DELETE - 从数据库中删除数据
  • INSERT INTO - 向数据库中插入新数据
  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引
		</div>

第二小节:SQL SELECT 语句

		<h1>SQL <span class="color_h1">SELECT</span> 语句</h1>

SELECT 语句用于从数据库中选取数据。


SQL SELECT 语句

SELECT 语句用于从数据库中选取数据。

结果被存储在一个结果表中,称为结果集。

SQL SELECT 语法

SELECT column_name, column_name
FROM table_name;

SELECT * FROM table_name;


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

SELECT Column 实例

下面的 SQL 语句从 "Websites" 表中选取 "name" 和 "country" 列:

实例

SELECT name , country FROM Websites ;

输出结果为:


SELECT * 实例

下面的 SQL 语句从 "Websites" 表中选取所有列:

实例

SELECT * FROM Websites ;

输出结果为:


结果集中的导航

大多数数据库软件系统都允许使用编程函数在结果集中进行导航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。

类似这些编程函数不在本教程讲解之列。如需学习通过函数调用访问数据的知识,请访问我们的 ADO 教程 或者 PHP 教程

		</div>

第三小节:SQL SELECT DISTINCT 语句

		<h1>SQL <span class="color_h1">SELECT DISTINCT</span> 语句</h1>

SELECT DISTINCT 语句用于返回唯一不同的值。


SQL SELECT DISTINCT 语句

在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。

DISTINCT 关键词用于返回唯一不同的值。

SQL SELECT DISTINCT 语法

SELECT DISTINCT column_name, column_name
FROM table_name;


在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+


SELECT DISTINCT 实例

下面的 SQL 语句仅从 "Websites" 表的 "country" 列中选取唯一不同的值,也就是去掉 "country" 列重复值:

实例

SELECT DISTINCT country FROM Websites ;

输出结果:

		</div>

第四小节:SQL WHERE 子句

		<h1>SQL <span class="color_h1">WHERE</span> 子句</h1>

WHERE 子句用于过滤记录。


SQL WHERE 子句

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

SQL WHERE 语法

SELECT column_name, column_name
FROM table_name
WHERE column_name operator value;


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+


WHERE 子句实例

下面的 SQL 语句从 "Websites" 表中选取国家为 "CN" 的所有网站:

实例

SELECT * FROM Websites WHERE country = ' CN ' ;

执行输出结果:



文本字段 vs. 数值字段

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

在上个实例中 'CN' 文本字段使用了单引号。

如果是数值字段,请不要使用引号。

实例

SELECT * FROM Websites WHERE id = 1 ;

执行输出结果:



WHERE 子句中的运算符

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

<td>等于</td>
运算符描述
=
<> 不等于。 注释:在 SQL 的一些版本中,该操作符可被写成 != > 大于 < 小于 >= 大于等于 <= 小于等于 BETWEEN 在某个范围内 LIKE
<td>搜索某种模式</td>
IN 指定针对某个列的多个可能值
		</div>
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值