Bootstrap

一文读懂SQL的增删改查(基础教程)

         前言

一、一些最重要的 SQL 命令

二、查询(SELECT)

1、查询所有列

2、查询指定列

3、查询并去重(DISTINCT )

4、按条件查询where

 5、SQL AND & OR 运算符

6、SQL ORDER BY 关键字

7、SQL LIMIT 关键字

8、SQL LIKE 操作符

9、SQL IN 操作符

9、SQL BETWEEN 操作符

三、插入(INSERT INTO)

四、更新(UPDATE)

五、删除(DELETE)

总结


前言

            SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)


一、一些最重要的 SQL 命令

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

二、查询(SELECT)

1、查询所有列

SELECT * FROM Websites   

2、查询指定列

SELECT name,country FROM Websites;  

3、查询并去重(DISTINCT )

SELECT DISTINCT country FROM Websites;

4、按条件查询where

SELECT * FROM Websites WHERE id=1;

SELECT * FROM Websites WHERE country='CN';

 5、SQL AND & OR 运算符

从 "Websites" 表中选取国家为 "CN" 且alexa排名大于 "50" 的所有网站:
SELECT * FROM Websites WHERE country='CN' AND alexa > 50;

从 "Websites" 表中选取国家为 "USA" 或者 "CN" 的所有客户:
SELECT * FROM Websites WHERE country='USA' OR country='CN';

从 "Websites" 表中选取 alexa 排名大于 "15" 且国家为 "CN" 或 "USA" 的所有网站:
SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA');

6、SQL ORDER BY 关键字

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

  • ASC:表示按升序排序。
  • DESC:表示按降序排序。
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
7、SQL LIMIT 关键字

LIMIT指定返回的记录的数目

SELECT *
FROM Persons
LIMIT 5;
8、SQL LIKE 操作符

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

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

示例
选取 name 以字母 "G" 开始的所有客户

SELECT * FROM Websites
WHERE name LIKE 'G%';

选取 name 以字母 "k" 结尾的所有客户:

SELECT * FROM Websites
WHERE name LIKE '%k';

选取 name 包含模式 "oo" 的所有客户:

SELECT * FROM Websites
WHERE name LIKE '%oo%';

选取 name 不包含模式 "oo" 的所有客户:

SELECT * FROM Websites
WHERE name NOT LIKE '%oo%';

9、SQL IN 操作符

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

SELECT * FROM Websites
WHERE name IN ('Google','百度','必应');

9、SQL BETWEEN 操作符

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

示例:

选取 alexa 介于 1 和 20 之间的所有网站:

SELECT * FROM Websites
WHERE alexa BETWEEN 1 AND 20;

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

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

选取 date 介于 '2016-05-10' 和 '2016-05-14' 之间的所有访问记录:

SELECT * FROM access_log
WHERE date BETWEEN '2016-05-10' AND '2016-05-14';

三、插入(INSERT INTO)

INSERT INTO 语句可以有两种编写形式。

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

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

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

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

示例:

INSERT INTO Websites (name, url, alexa, country) VALUES ('百度','https://www.baidu.com/','4','CN');


四、更新(UPDATE)

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

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

注意:

在更新记录时要格外小心!在上面的实例中,如果我们省略了 WHERE 子句,如下所示

UPDATE Websites
SET alexa='5000', country='USA'

执行以上代码会将 Websites 表中所有数据的 alexa 改为 5000,country 改为 USA。

执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。


五、删除(DELETE)

DELETE 语句用于删除表中的记录。

DELETE FROM table_name
WHERE condition;

示例

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

注意

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

DELETE FROM table_name;

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


总结

        以上就是今天要讲的内容,本文将学到如何使用 SQL 访问和处理数据系统中的数据的简单语法,那么在下一章节我们会进一步讲解SQL的高级教程:SQL的左联,右联,内联及SQL的一些内置函数COUNT() SUM()以及SQL的优化等等,如果本文章对正在电脑面前的你有帮助的话,可以给博主一个一键三连支持一下

;