MySQL 四部曲

序号

文章

1

MySQL 环境搭建的四种方式

2

MySQL 基础简介及配置

3

MySQL基础语句


文章目录

  • 1. SQL 简介
  • 1. 什么是 SQL
  • 2. SQL 分类
  • 3. SQL 基础语法
  • 2. DDL 操作数据库
  • 1. 创建数据库
  • 2. 查看数据库
  • 3. 修改数据库
  • 1. 修改数据库默认的字符集
  • 4. 删除数据库
  • 1. 删除数据库的语法
  • 5. 使用数据库
  • 1. 查看正在使用的数据库
  • 2. 使用/切换数据库
  • 3. DDL 操作表结构
  • 1. 创建表
  • 1. 格式
  • 2. 关键字说明
  • 2. MySQL 数据类型
  • 1. 常用数据类型
  • 2. 详细数据类型
  • 1. 数值类型
  • 2. 日期和时间类型
  • 3. 字符串类型
  • 3. 查看表
  • 1. 查看所有表
  • 2. 查看表结构
  • 3. 查看创建表的SQL
  • 4. 复制表
  • 5. 删除表
  • 6. 修改表
  • 1. 添加表列
  • 2. 修改表列类型
  • 3. 修改表列名
  • 4. 删除表列
  • 5. 修改表名
  • 6. 修改字符集
  • 4. DML 操作表数据
  • 1. 插入记录
  • 1. 写列名
  • 2. 不写列名
  • 2. 更新表记录
  • 1. 不带条件
  • 2. 带条件
  • 3. 删除表记录
  • 1. 带条件
  • 2. 不带条件
  • 3. 删除表中所有记录
  • 5. DQL 查询表数据
  • 1. 简单查询
  • 1. 查询所有列
  • 2. 查询指定列
  • 2. 指定列的别名进行查询
  • 3. 清除重复值
  • 4. 查询结果参与运算
  • 1. 列数据与固定值参与运算
  • 2. 某列数据和其他列数据参与运算
  • 5. 条件查询


MySQL 基础语句_数据库

1. SQL 简介

1. 什么是 SQL

SQL,英文全称 Structured Query Language,是一种结构化查询语言,是一种关系型数据库的查询规范,用于访问和处理数据库。

SQL其实就是定义了操作所有关系型数据库的规则。

③ Oracle,MySQL,SQL Server 等每一种数据库操作的方式存在不一样的地方,从 SQL 引申出来。所以不同的数据库都支持 SQL 语言。

MySQL 基础语句_数据库_02

2. SQL 分类

MySQL 基础语句_表名_03

DDL (Data Definition Language) – 数据定义语言

用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter

DML (Data Manipulation Language) – 数据操作语言

用来对数据库中表的数据进行增删改。关键字:insert,delete, update

DQL (Data Query Language) – 数据查询语言

用来查询数据库中表的记录(数据)。关键字:select, where

DCL (Data Control Language) – 数据控制语言

用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANTREVOKE

3. SQL 基础语法

① 每条语句以分号结尾,但在一些可视化数据库管理工具中不是必须加的
② SQL 中不区分大小写,关键字中认为大写和小写是一样的
③ SQL 中的三种注释

符号

说明

--

单行注释

/* */

多行注释

#

单行注释,MySQL 特有

2. DDL 操作数据库

对于数据库及数据表等操作,我们一般要记住的也就 增、删、改、查 四个操作。下面也就是对数据库和和数据表增、删、改、查操作的详细介绍。

1. 创建数据库

① 创建数据库

CREATE DATABASE 数据库名;

示例:

create database db1;

MySQL 基础语句_SQL_04

② 判断数据库是否已经存在,不存在则创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

示例:

create database if not exists db2;

MySQL 基础语句_SQL_05

③ 创建数据库并指定字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

示例:

create database db3 default character set gbk;

MySQL 基础语句_数据库_06

2. 查看数据库

① 查看所有的数据库

show database;

MySQL 基础语句_SQL_07

① 查看某个数据库的定义信息

show create database 数据库名;

示例:

show create database db1;

MySQL 基础语句_表名_08

show create database db2;

MySQL 基础语句_表名_09

show create database db3;

MySQL 基础语句_数据库_10

3. 修改数据库

1. 修改数据库默认的字符集
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

示例:修改数据库db3的默认字符集为 utf8

alter database db3 character set utf8;

MySQL 基础语句_SQL_11

4. 删除数据库

1. 删除数据库的语法
DROP DATABASE 数据库名;

示例:删除数据库 db2

drop database db2;

MySQL 基础语句_表名_12

5. 使用数据库

1. 查看正在使用的数据库
SELECT DATABASE();  #全局函数

示例:

MySQL 基础语句_表名_13

2. 使用/切换数据库
USE 数据库名;

示例:

-- 查看正在使用的数据库
select database();

-- 改变要使用的数据库
use db4;

MySQL 基础语句_数据库_14

3. DDL 操作表结构

1. 创建表

1. 格式
CREATE TABLE 表名 (
	字段名 1 字段类型 1,
	字段名 2 字段类型 2,
	......
	字段名 n 字段类型 n,
)

示例:

CREATE TABLE people (
	age INT,
	NAME VARCHAR(20)
)

MySQL 基础语句_SQL_15

2. 关键字说明

关键字

说明

CREATE

创建

TABLE


2. MySQL 数据类型

1. 常用数据类型

常用的数据类型也就这四个,如果有需要,可以看下面的详细数据类型表。

数据类型

说明

int

整形

double

浮点型

varchar

字符串型

date

日期类型

2. 详细数据类型
1. 数值类型

类型

大小(Bytes)

范围

说明

TINYINT

1

(-128,127)

微整型

SMALLINT

2

(-32 768,32 767)

小整型

MEDIUMINT

3

(-8 388 608,8 388 607)

中整型

INT(INTEGER)

4

(-2 147 483 648,2 147 483 647)

整型

BIGINT

8

(-9 223 372 036 854 775 808,9 223 372 036 854 775 807)

大整型

FLOAT

4

(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)

单精度浮点型

DOUBLE

8

(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

双精度浮点型

DECIMAL

DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

依赖于M和D的值

小数值

2. 日期和时间类型

类型

大小(Bytes)

范围

说明

DATA

3

1000-01-01/9999-12-31

日期类型

TIME

3

-838:59:59 / 838:59:59

时间类型

YEAR

1

1901/2155

年份类型

DATETIME

8

1000-01-01 00:00:00/9999-12-31 23:59:59

日期时间类型

3. 字符串类型

类型

大小(Bytes)

说明

CHAR

0-255

定长字符串

VARCHAR

0-65535

变长字符串

TINYBLOB

0-255

不超过 255 个字符的二进制字符串

TINYTEXT

0-255

短文本字符串

BLOB

0-65 535

二进制形式的长文本数据

TEXT

0-65 535

长文本数据

MEDIUMBLOB

0-0-16 777 215

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215

中等长度文本数据

LONGBLOB

0-4 294 967 295

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295

极大文本数据

3. 查看表

1. 查看所有表
SHOW TABLES;

MySQL 基础语句_数据库_16

2. 查看表结构
DESC 表名;

示例:

DESC people;

MySQL 基础语句_表名_17

3. 查看创建表的SQL
SHOW CREATE TABLE 表名;

示例:

SHOW CREATE TABLE people;

MySQL 基础语句_SQL_18

4. 复制表

CREATE TABLE 新表 LIKE 表1;

示例:

CREATE TABLE people1 LIKE people;

MySQL 基础语句_表名_19

5. 删除表

DROP TABLE 表名;

示例:

MySQL 基础语句_数据库_20

6. 修改表

1. 添加表列
ALTER TABLE 表名 ADD 列名 类型;

示例:

ALTER TABLE people ADD class VARCHAR(20);

MySQL 基础语句_SQL_21

DESC people;

MySQL 基础语句_SQL_22

2. 修改表列类型
ALTER TABLE 表名 MODIFY 列名 新的类型;

示例:

ALTER TABLE people MODIFY class INT;

MySQL 基础语句_数据库_23

3. 修改表列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;

示例:

ALTER TABLE people CHANGE class sex INT;

这里提示一下,由于MySQL中没有布尔值,可以用数值型0,1代替布尔值哦!

MySQL 基础语句_SQL_24

4. 删除表列
ALTER TABLE 表名 DROP 列名;

示例:

ALTER TABLE people DROP sex;

MySQL 基础语句_SQL_25

5. 修改表名
RENAME TABLE 表名 TO 新表名;

示例:

RENAME TABLE people TO persons;

MySQL 基础语句_表名_26

6. 修改字符集
ALTER TABLE 表名 character set 字符集;

示例:

ALTER TABLE persons CHARACTER SET gbk;

MySQL 基础语句_SQL_27

4. DML 操作表数据

1. 插入记录

1. 写列名

可以不写所有列名,这时插入的是部分数据。

INSERT INTO 表名 (列名1,列名2,...) VALUES (值1,值2,...);

示例:

INSERT INTO persons (age,NAME) VALUES(19,'小红');

MySQL 基础语句_表名_28

2. 不写列名
INSERT INTO 表名 VALUES (值 1, 值 2, …);

示例:

INSERT INTO persons VALUES(20,'小兰');

MySQL 基础语句_数据库_29

2. 更新表记录

1. 不带条件
UPDATE 表名 SET 列名=值;

示例:

UPDATE persons SET age=age+1;

MySQL 基础语句_数据库_30

2. 带条件
UPDATE 表名 SET 列名=值 [WHERE 条件表达式]

示例:

UPDATE persons SET NAME='小明' WHERE NAME='小红';

MySQL 基础语句_表名_31

3. 删除表记录

1. 带条件
DELETE FROM 表名;

示例:

DELETE FROM persons;

删除表中所有记录。

MySQL 基础语句_SQL_32

2. 不带条件
DELETE FROM 表名 WHERE 字段名=值;

示例:

DELETE FROM persons WHERE age=20;

删除表中年龄20的人。

MySQL 基础语句_数据库_33

3. 删除表中所有记录
TRUNCATE TABLE 表名;

示例:

TRUNCATE TABLE persons;

MySQL 基础语句_SQL_34

5. DQL 查询表数据

1. 简单查询

1. 查询所有列
SELECT * FROM 表名;

示例:

SELECT * FROM persons;

MySQL 基础语句_数据库_35

2. 查询指定列
SELECT 列名 1, 列名 2, ... FROM 表名;

示例:

SELECT age FROM persons;

MySQL 基础语句_数据库_36

2. 指定列的别名进行查询

SELECT 列名 1 AS 别名, 列名 2 AS 别名... FROM 表名;

示例:

SELECT age AS 年龄 FROM persons;

MySQL 基础语句_表名_37

3. 清除重复值

SELECT DISTINCT 字段名 FROM 表名;

示例:

SELECT DISTINCT age FROM persons;

查询不重复 age 的所有值。

MySQL 基础语句_数据库_38

4. 查询结果参与运算

1. 列数据与固定值参与运算
SELECT 列名 1 + 固定值 FROM 表名;

示例:

SELECT age+1 FROM persons;

查询年龄 +1 后的所有值

MySQL 基础语句_数据库_39

2. 某列数据和其他列数据参与运算
SELECT 列名 1 + 列名 2 FROM 表名;

要注意,列中的值类型要为数值型

5. 条件查询

比较运算符

说明

>、<、<=、>=、=、<>

注意:<>在 SQL 中表示不等于,在 mysql 中也可以使用!=

BETWEEN…AND

表示一个范围

IN

表示某些值是否在集合中

LIKE ‘_%’

模糊查询

IS NULL

查询某一列是否为 NULL

and、or、not

逻辑运算符

示例代码:

SELECT * FROM persons WHERE age<>19;

MySQL 基础语句_表名_40

SELECT * FROM persons WHERE age NOT IN (19,20,22);

MySQL 基础语句_表名_41