请选择 进入手机版 | 继续访问电脑版

牛大大的个人博客

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1411|回复: 3

SQL 语法

[复制链接]

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
发表于 2020-4-26 22:51:04 | 显示全部楼层 |阅读模式
本帖最后由 牛大舅 于 2020-4-26 22:53 编辑

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 - 删除索引


回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-4-26 22:54:31 | 显示全部楼层
SQL SELECT 语句
SELECT 语句用于从数据库中选取数据。

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


SELECT * FROM table_name;



演示数据库
在本教程中,我们将使用 RUNOOB 样本数据库。
下面是选自 "Websites" 表的数据:
  1. +----+--------------+---------------------------+-------+---------+
  2. | id | name         | url                       | alexa | country |
  3. +----+--------------+---------------------------+-------+---------+
  4. | 1  | Google       | https://www.google.cm/    | 1     | USA     |
  5. | 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
  6. | 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
  7. | 4  | 微博          | http://weibo.com/         | 20    | CN      |
  8. | 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
  9. +----+--------------+---------------------------+-------+---------+
复制代码
SELECT Column 实例
下面的 SQL 语句从 "Websites" 表中选取 "name" 和 "country" 列:
实例SELECT name,country FROM Websites;

输出结果为::



SELECT * 实例
下面的 SQL 语句从 "Websites" 表中选取所有列:
实例SELECT * FROM Websites;

输出结果为:



结果集中的导航





回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-4-26 22:54:58 | 显示全部楼层
SQL SELECT DISTINCT 语句
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;

输出结果:



回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-4-26 22:55:57 | 显示全部楼层
SQL WHERE 子句
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 子句中使用:
运算符
描述
=等于
<>不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式
IN指定针对某个列的多个可能值


SQL AND & OR 运算符
AND & OR 运算符用于基于一个以上的条件对记录进行过滤。

SQL AND & OR 运算符
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

演示数据库
在本教程中,我们将使用 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     |+----+--------------+---------------------------+-------+---------+
AND 运算符实例
下面的 SQL 语句从 "Websites" 表中选取国家为 "CN" 且alexa排名大于 "50" 的所有网站:
实例SELECT * FROM WebsitesWHERE country='CN'AND alexa > 50;

执行输出结果:




OR 运算符实例
下面的 SQL 语句从 "Websites" 表中选取国家为 "USA" 或者 "CN" 的所有客户:
实例SELECT * FROM WebsitesWHERE country='USA'OR country='CN';

执行输出结果:




结合 AND & OR
您也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。
下面的 SQL 语句从 "Websites" 表中选取 alexa 排名大于 "15" 且国家为 "CN" 或 "USA" 的所有网站:
实例SELECT * FROM WebsitesWHERE alexa > 15AND (country='CN' OR country='USA');

执行输出结果:





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|牛大大的个人博客 ( 苏ICP备17043571号-2 )

GMT+8, 2021-6-15 12:46 , Processed in 0.181016 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表