自学内容网 自学内容网

数据库SQL基础教程 (一)

目录

SQL简介:

SELECT语句

WHERE语句

文本字段 vs. 数值字段

AND & OR 运算符

ORDER BY 关键字

 INSERT INTO 语句

UPDATE 语句

DELETE 语句

删除所有数据

SELECT TOP 子句

SQL Server / MS Access 语法

MySQL 语法

Oracle 语法

PostgreSQL 语法

LIKE 操作符

SQL 通配符

IN 操作符

BETWEEN 

NOT BETWEEN 

带有 IN 的 BETWEEN 操作符

SQL 别名

列的 SQL 别名语法(如果列名称包含空格,要求使用双引号或方括号:)

表的 SQL 别名语法

表的别名实例


SQL简介:

        SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。

        SQL 通过一系列的语句和命令来执行数据定义、数据查询、数据操作和数据控制等功能,包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。

SELECT语句

SELECT column1, column2, ...
FROM table_name;
SELECT * FROM table_name;

参数说明:

  • column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
  • table_name:要查询的表名称。
  • *: 通配符,表示选择表中的所有列。

SELECT DISTINCT

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

SELECT DISTINCT column1, column2, ...
FROM table_name;
  • column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
  • table_name:要查询的表名称。

例子:

+----+--------------+---------------------------+-------+---------+
| 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 country FROM Websites;

输出结果:

WHERE语句

WHERE 子句用于提取那些满足指定条件的记录

SELECT column1, column2, ...
FROM table_name
WHERE condition;

参数说明:

  • column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
  • table_name:要查询的表名称。

例子:SELECT * FROM Websites WHERE country='CN';

文本字段 vs. 数值字段

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

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

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

WHERE子句中到的运算符

运算符描述
=等于
<>不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
>大于
<大于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式
IN指定针对某个列的多个可能值

AND & OR 运算符

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

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

ORDER BY 关键字

ORDER BY 关键字用于对结果集进行排序。

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字

 INSERT INTO 语句

INSERT INTO 语句用于向表中插入新记录

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

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

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

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

参数说明:

  • table_name:需要插入新记录的表名。
  • column1, column2, ...:需要插入的字段名。
  • value1, value2, ...:需要插入的字段值。

例子:INSERT INTO Websites (name, url, country) VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');

UPDATE 语句

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

SQL UPDATE 语法

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

参数说明:

  • table_name:要修改的表名称。
  • column1, column2, ...:要修改的字段名称,可以为多个字段。
  • value1, value2, ...:要修改的值,可以为多个值。
  • condition:修改条件,用于指定哪些数据要修改。

例子:把 "菜鸟教程" 的 alexa 排名更新为 5000,country 改为 USA。

UPDATE Websites SET alexa='5000', country='USA' WHERE name='菜鸟教程';

(WHERE子句!!!)

DELETE 语句

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

SQL DELETE 语法

DELETE FROM table_name
WHERE condition;

参数说明:

  • table_name:要删除的表名称。
  • condition:删除条件,用于指定哪些数据要删除。

例子:从 "Websites" 表中删除网站名为 "Facebook" 且国家为 USA 的网站。

DELETE FROM Websites WHERE name='Facebook' AND country='USA';

 

删除所有数据

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

DELETE FROM table_name;

注释:在删除记录时要格外小心!因为您不能重来!

SELECT TOP 子句

SELECT TOP 语句用于在 SQL 中限制返回的结果集中的行数, 它通常用于只需要查询前几行数据的情况,尤其在数据集非常大时,可以显著提高查询性能。

SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。

说明:

  • SELECT TOP 在 SQL Server 和 MS Access 中使用,而在 MySQL 和 PostgreSQL 中使用 LIMIT 关键字。
  • Oracle 在 12c 版本之前没有直接等效的关键字,可以通过 ROWNUM 实现类似功能,但在 12c 及以上版本中引入了 FETCH FIRST
  • 当使用 TOP 或 LIMIT 时,最好结合 ORDER BY 子句,以确保返回的行是特定顺序的前几行。

SQL Server / MS Access 语法

SELECT TOP number|percent column1, column2, ...
FROM table_name;

number|percent:指定返回的行数或百分比。

  • number:具体的行数。
  • percent:数据集的百分比。

MySQL 语法

SELECT column1, column2, ...
FROM table_name
LIMIT number;

Oracle 语法

SELECT column1, column2, ...
FROM table_name
FETCH FIRST number ROWS ONLY;

PostgreSQL 语法

SELECT column1, column2, ...
FROM table_name
LIMIT number;

 

--前5行
select top 5 * from table

--后5行
select top 5 * from table order by id desc  --desc 表示降序排列 asc 表示升序

LIKE 操作符


LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

LIKE 操作符是 SQL 中用于在 WHERE 子句中进行模糊查询的关键字,它允许我们根据模式匹配来选择数据,通常与 % 和 _ 通配符一起使用。

SQL LIKE 语法

SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;

参数说明:

  • column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
  • table_name:要查询的表名称。
  • column:要搜索的字段名称。
  • pattern:搜索模式。

通配符

  • %:匹配任意字符(包括零个字符)。
  • _:匹配单个字符。

 例子:使用 % 通配符找出所有以 "iPhone" 开头的产品:
SELECT ProductName, Category FROM  Products WHERE  ProductName LIKE 'iPhone%';


SQL 通配符

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。

SQL 通配符用于搜索表中的数据。

在 SQL 中,可使用以下通配符:

通配符描述
%替代 0 个或多个字符
_替代一个字符
[charlist]字符列中的任何单一字符
[^charlist]

[!charlist]
不在字符列中的任何单一字符

[charlist] 通配符用于指定一个字符列表,用于匹配该列表中的任何一个字符。

它通常与 LIKE 操作符一起使用,用于模式匹配,比如在 WHERE 子句中。

下面的 SQL 语句选取 name 以 "G"、"F" 或 "s" 开始的所有网站:

IN 操作符

IN 操作符允许您在 WHERE 子句中规定多个值。

SQL IN 语法

SELECT column1, column2, ...
FROM table_name
WHERE column IN (value1, value2, ...);

参数说明:

  • column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
  • table_name:要查询的表名称。
  • column:要查询的字段名称。
  • value1, value2, ...:要查询的值,可以为多个值。

BETWEEN 

BETWEEN 操作符选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期。

SELECT column1, column2, ...
FROM table_name
WHERE column BETWEEN value1 AND value2;

参数说明:

  • column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
  • table_name:要查询的表名称。
  • column:要查询的字段名称。
  • value1:范围的起始值。
  • value2:范围的结束值。

NOT BETWEEN 

如需显示不在上面实例范围内的网站,请使用 NOT BETWEEN:

实例

SELECT * FROM Websites
WHERE alexa NOT BETWEEN 1 AND 20;

 

带有 IN 的 BETWEEN 操作符

下面的 SQL 语句选取 alexa 介于 1 和 20 之间但 country 不为 USA 和 IND 的所有网站:

实例

SELECT * FROM Websites
WHERE (alexa BETWEEN 1 AND 20)
AND country NOT IN ('USA', 'IND');

 

SQL 别名

通过使用 SQL,可以为表名称或列名称指定别名。

基本上,创建别名是为了让列名称的可读性更强。

列的 SQL 别名语法(如果列名称包含空格,要求使用双引号或方括号:)

SELECT column_name AS alias_name
FROM table_name;

表的 SQL 别名语法

SELECT column_name(s)
FROM table_name AS alias_name;

表的别名实例

下面的 SQL 语句选取 "菜鸟教程" 的所有访问记录。我们使用 "Websites" 和 "access_log" 表,并分别为它们指定表别名 "w" 和 "a"(通过使用别名让 SQL 更简短):

实例

SELECT w.name, w.url, a.count, a.date
FROM Websites AS w, access_log AS a
WHERE a.site_id=w.id and w.name="菜鸟教程";

 


原文地址:https://blog.csdn.net/weixin_64743755/article/details/142596006

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!