【MySQL】SQL菜鸟教程(一)

1.常见命令

1.1 总览

在这里插入图片描述

命令

作用

SELECT

从数据库中提取数据

UPDATE

更新数据库中的数据

DELETE

从数据库中删除数据

INSERT INTO

向数据库中插入新数据

CREATE DATABASE

创建新数据库

ALTER DATABASE

修改数据库

CREATE TABLE

创建新表

ALTER TABLE

变更数据表

DROP TABLE

删除表

CREATE INDEX

创建索引

DROP INDEX

删除索引

1.2 常用语法

  • SELECT:用于从数据库中查询数据

    SELECT column_name
    FROM table_name
    WHERE condition
    ORDER BY column_name ASC/DESC

column_name(s): 要查询的列。
table_name: 要查询的表。
condition: 查询条件(可选)。
ORDER BY: 排序方式,ASC 表示升序,DESC 表示降序(可选)。

  • INSERT INTO:用于向数据库表中插入新数据

    INSERT INTO table_name (column1, column2,…)
    VALUES (value1, value2, …)

table_name: 要插入数据的表。
column1, column2, …: 要插入数据的列。
value1, value2, …: 对应列的值。

  • UPDATE:用于更新数据库表中现有数据

    UPDATE table_name
    SET column1 = value1, column2 = value2,…
    WHERE condition

table_name: 要更新数据的表。
column1 = value1, column2 = value2, …: 要更新的列及其新值。
condition: 更新条件。

  • DELETE:用于从数据库表中删除数据

    DELETE FROM table_name
    WHERE condition

table_name: 要删除数据的表。
condition: 删除条件。

  • CREATE TABLE:用于创建新的数据库表

    CREATE TABLE table_name(
    column1 data_type constraint,
    column2 data_type constraint,
    …)

table_name: 要创建的表名。
column1, column2, …: 表的列。
data_type: 列的数据类型(如 INT、VARCHAR 等)。
constraint: 列的约束(如 PRIMARY KEY、NOT NULL 等)。

  • ALTER TABLE:用于修改现有的数据库表的结构

    ALTER TABLE table_name
    ADD column_name1 data_type

    ALTER TABLE table_name
    DROP COLUMN column_name2

table_name: 要修改的表。
column_name1: 要添加的列。
data_type: 列的数据类型。
column_name2: 要删除的列。

  • DROP TABLE:用于删除数据库表

    DROP TABLE table_name

table_name: 要删除的表

  • CREATE INDEX:用于创建索引,以加快查询速度

    CREATE INDEX index_name
    ON table_name (column_name)

index_name: 索引名
table_name:创建的表
column_name: 表中要索引的列

  • DROP INDEX:用于删除索引

    DROP INDEX index_name
    ON table_name

index_name: 要删除的索引名
table_name:索引所在的表

  • WHERE:用于指定筛选条件

    SELECT column_name
    FROM table_name
    WHERE condition

condition:筛选条件

  • ORDER BY:用于对结果集进行排序

    SELECT column_name
    FROM table_name
    ORDER BY column_name ASC/DESC

column_name : 用于排序的列
ASC : 升序(默认,什么都不写的话就是升序)
DESC :降序

  • GROUP BY:用于将结果按一列或者多列进行分组

    SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE condition
    GROUP BY column_name

aggregate_function: 聚合函数(如 COUNT、SUM、AVG 等)

  • HAVING:用于对分组后的结果进行筛选

    SELECT column_name, aggregate_function(column_name)
    FROM table_name
    GROUP BY column_name
    HAVING condition

condition:筛选条件

  • JOIN:用于将两个或多个表的记录结合起来

    SELECT column_name
    FROM table_name1
    JOIN table_name2
    ON table_name1.column_name = table_name2.column_name

JOIN: 可以是 INNER JOIN、LEFT JOIN、RIGHT JOIN 或 FULL JOIN。

  • DISTINCT:用于返回唯一不同的值

    SELECT DISTINCT column_name
    FROM table_name

column_name(s): 要查询的列。

2.SELECT

2.1 语法

SELECT  column_name 1, column_name 2
FROM table_name

#OR
SELECT * FROM table_name

参数说明:

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

2.2 示例

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

1.从 “Websites” 表中选取 “name” 和 “country” 列:

SELECT name, country
FROM Websites

在这里插入图片描述

2.从 “Websites” 表中选取所有列:

SELECT * FROM Websites

在这里插入图片描述

3.SELECT DISTINCT

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

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

3.1 语法

SELECT  DISTINCT column_name 1, column_name 2
FROM table_name

参数说明:

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

3.2 示例

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

1.从 “Websites” 表的 “country” 列中选取唯一不同的值,也就是去掉 “country” 列重复值:

SELECT DISTINCT  country
FROM Websites

在这里插入图片描述

4.WHERE

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

4.1 语法

SELECT  column_name 1, column_name 2
FROM table_name
WHERE condition

参数说明:

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

4.2 WHERE 中的运算符

运算符

含义

=

等于

!= / <>

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

AND

组合多个逻辑,与

OR

逻辑,或

NOT

逻辑,非

BETWEEN …AND…

在某个范围之内

LIKE

搜索某种模式吗,模糊查询

IN

指定针对某个列的多个可能值

IS NULL

检查是否为空

IS NOT NULL

检查是否不为空

4.3 示例

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

1.从 “Websites” 表中选取国家为 “CN” 的所有网站:

SELECT  url
FROM Websites
WHERE country = 'CN'

在这里插入图片描述

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。在上个实例中 ‘CN’ 文本字段使用了单引号。如果是数值字段,请不要使用引号。

2.从 “Websites” 表中选取id为 “1” 的网站:

SELECT  url
FROM Websites
WHERE id = 1

在这里插入图片描述
3.匹配列表中的任意值(IN)

SELECT  *
FROM Employees
WHERE Department IN ('HR', 'IT', 'Finance')

4.模糊匹配(LIKE)支持通配符 %(任意多个字符)和 _(单个字符)

SELECT  *  FROM Employees   WHERE Name LIKE ‘J%’     	-- 以J开头的名字
SELECT  *  FROM Employees   WHERE Name LIKE ‘%son’		-- 以son结尾的名字
SELECT  *  FROM Employees   WHERE Name LIKE ‘_o%’		-- 第二个字符是o的名字

5.ORDER BY

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

5.1 语法

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

参数说明:

  • column1, column2, …:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
  • table_name:要查询的表名称。
  • ASC: 按升序排序(默认)
  • DESC: 按降序排序

5.2 示例

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

1.从 “Websites” 表中选取所有网站,并按照 “alexa” 列排序:

SELECT  *
FROM Websites
ORDER BY alexa

在这里插入图片描述
2.从 “Websites” 表中选取所有网站,并按照 “alexa” 列降序排序:

SELECT  *
FROM Websites
ORDER BY alexa DESC

在这里插入图片描述
3.从 “Websites” 表中选取所有网站,并按照 “country” 和 “alexa” 列排序:

SELECT  *
FROM Websites
ORDER BY country, alexa

在这里插入图片描述

6.INSERT INTO

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

6.1 语法

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

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

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

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

参数说明:

  • column1, column2, …:要插入的字段名称
  • table_name:要查询的表名称。
  • value1, value2, …:需要插入的字段值。

6.2 示例

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

1.向 “Websites” 表中插入一个新行。

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

在这里插入图片描述
2.在指定的列插入数据,将插入一个新行,但是只在 “name”、“url” 和 “country” 列插入数据(id 字段会自动更新):

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

在这里插入图片描述

没有添加的列会自动填充为0

7.UPDATE

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

7.1 语法

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

参数说明:

  • column1, column2, …:要修改的字段名称
  • table_name:要修改的表名称。
  • value1, value2, …:需要修改的字段值。
  • condition:修改条件,用于指定哪些数据要修改。

7.2 示例

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

1.把 “菜鸟教程” 的 alexa 排名更新为 5000,country 改为 USA。

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

在这里插入图片描述

8.DELETE

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

7.1 语法

DELETE FROM table_name
WHERE condition;

参数说明:

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

7.2 示例

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

1.从 “Websites” 表中删除网站名为 “Facebook” 且国家为 USA 的网站。

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值