sql是什么?以及sql基础语句(一)

简介: sql是什么?以及sql基础语句

目录


SQL 是什么?

SQL 能做什么?

SQL 语法

数据库表

解析

一些最重要的 SQL 命令

SELECT - 从数据库中提取数据

SQL SELECT 语句

SQL SELECT 语法

演示数据库

SELECT Column 实例

实例

UPDATE - 更新数据库中的数据

SQL UPDATE 语句

SQL UPDATE 语句

SQL UPDATE 语法

演示数据库

SQL UPDATE 实例

实例

Update 警告!

DELETE - 从数据库中删除数据

SQL DELETE 语句

SQL DELETE 语句

SQL DELETE 语法

演示数据库

SQL DELETE 实例

实例

删除所有数据

INSERT INTO - 向数据库中插入新数据

SQL INSERT INTO 语句

SQL INSERT INTO 语句

SQL INSERT INTO 语法

演示数据库

INSERT INTO 实例

实例

在指定的列插入数据

实例

CREATE DATABASE - 创建新数据库

SQL CREATE DATABASE 语句

SQL CREATE DATABASE 语句

SQL CREATE DATABASE 语法

SQL CREATE DATABASE 实例

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

SQL CREATE TABLE 语句

SQL CREATE TABLE 语法

SQL CREATE TABLE 实例

实例

ALTER TABLE - 变更(改变)数据库表

SQL ALTER TABLE 语句

ALTER TABLE 语句

SQL ALTER TABLE 语法

SQL ALTER TABLE 实例

改变数据类型实例

DROP COLUMN 实例

DROP  

SQL 撤销索引、撤销表以及撤销数据库

DROP INDEX 语句

用于 MS Access 的 DROP INDEX 语法:

用于 MS SQL Server 的 DROP INDEX 语法:

用于 DB2/Oracle 的 DROP INDEX 语法:

用于 MySQL 的 DROP INDEX 语法:

DROP TABLE 语句

DROP DATABASE 语句

TRUNCATE TABLE 语句

CREATE INDEX - 创建索引(搜索键)

SQL CREATE INDEX 语句

索引

SQL CREATE INDEX 语法

SQL CREATE UNIQUE INDEX 语法

CREATE INDEX 实例


前言


SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。


正文


SQL 是什么?


  • SQL 指结构化查询语言,全称是 Structured Query Language。
  • SQL 让您可以访问和处理数据库,包括数据插入、查询、更新和删除。
  • SQL 在1986年成为 ANSI(American National Standards Institute 美国国家标准化组织)的一项标准,在 1987 年成为国际标准化组织(ISO)标准。


SQL 能做什么?


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


SQL 语法


数据库表


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


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


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

93e616751eb62e6c4a3fc4bb439bee2a_e64e81e5ce994636a7cdb1d946d9ec6c.png


解析


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


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

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

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


一些最重要的 SQL 命令


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;

输出结果为:

8da41f378ec03b3c81d51098078b1510_fc8e9a82524cbb7dcddcc8fca2e8eb85.jpeg


UPDATE - 更新数据库中的数据


SQL UPDATE 语句


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


SQL UPDATE 语句


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


SQL UPDATE 语法


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


请注意 SQL UPDATE 语句中的 WHERE 子句!

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


演示数据库


在本教程中,我们将使用 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     |

+----+--------------+---------------------------+-------+---------+


SQL UPDATE 实例


假设我们要把 "菜鸟教程" 的 alexa 排名更新为 5000,country 改为 USA。

我们使用下面的 SQL 语句:


实例


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

d4a9ec7922d365194642af8835a20910_f172aa6cc63e379196061423df8d47ab.jpeg


Update 警告!


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

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

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


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


DELETE - 从数据库中删除数据


SQL DELETE 语句


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


SQL DELETE 语句


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


SQL DELETE 语法


DELETE FROM table_name
WHERE some_column=some_value;

请注意 SQL DELETE 语句中的 WHERE 子句!

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



演示数据库


在本教程中,我们将使用 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     |

+----+--------------+---------------------------+-------+---------+


SQL DELETE 实例


假设我们要从 "Websites" 表中删除网站名为 "Facebook" 且国家为 USA 的网站。

我们使用下面的 SQL 语句:


实例


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

执行以上 SQL,再读取 "Websites" 表,数据如下所示:

e2b5b75423334794bff31fef5a636e3d_99865360cec9ba0624632220808cd774.jpeg


删除所有数据


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

DELETE FROM table_name;
DELETE * FROM table_name;

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


INSERT INTO - 向数据库中插入新数据


SQL INSERT INTO 语句


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


SQL INSERT INTO 语句


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


SQL INSERT INTO 语法


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


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

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

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

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

演示数据库


在本教程中,我们将使用 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     |

+----+--------------+---------------------------+-------+---------+


INSERT INTO 实例


假设我们要向 "Websites" 表中插入一个新行。

我们可以使用下面的 SQL 语句:


实例


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

执行以上 SQL,再读取 "Websites" 表,数据如下所示:

02ed921fdb783988fb4fae3a396e732a_34711efc0d5ff86328f2e3e7b9fad2c3.jpeg

您是否注意到,我们没有向 id 字段插入任何数字?

id 列是自动更新的,表中的每条记录都有一个唯一的数字。


在指定的列插入数据


我们也可以在指定的列插入数据。

下面的 SQL 语句将插入一个新行,但是只在 "name"、"url" 和 "country" 列插入数据(id 字段会自动更新):


实例


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

执行以上 SQL,再读取 "Websites" 表,数据如下所示:

7d14bb6a8783741222ce52572d6017cf_d495b90ed0634bee7990dab51ddef677.jpeg



目录
相关文章
|
11月前
|
SQL 存储 缓存
SQL语句简介
MySQL 基础架构分析 下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。 先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图,在后面会详细介绍到这些组件的作用。 连接器: 身份认证和权限相关(登录 MySQL 的时候)。 查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。 分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。 优化器: 按照 MySQL 认为最优的方案去执
45 0
|
10月前
|
SQL 关系型数据库 MySQL
SQL常用语句 笔记1
SQL常用语句 笔记
73 0
|
10月前
|
SQL 存储 关系型数据库
SQL常用语句 笔记2
SQL常用语句 笔记2
57 0
|
SQL
SQL语句学习系列(1)
SQL语句学习系列(1)
42 0
|
SQL 关系型数据库 MySQL
【SQL】一文带你掌握SQL基础语法
英文:Structured Query Language,简称 SQL 结构化查询语言,一门操作关系型数据库的编程语言 定义操作所有关系型数据库的统一标准 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
187 0
|
SQL Oracle 关系型数据库
sql是什么?以及sql基础语句(二)
sql是什么?以及sql基础语句
80 0
|
SQL 数据库 索引
SQL基础知识V2——SQL语句快速参考
以下是一些可以当工具书使用的参考语句,都是固定写法,需要的时候可以拿出来参考一下,一些不懂的可以暂时先跳过,紫色代码均是SQL语句的关键字~
|
SQL 关系型数据库 MySQL
SQL 手册-实用 SQL 语句-多语句
本文将介绍PolarDB-X多语句的相关信息。
145 0