前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 基础语句

MySQL 基础语句

作者头像
繁依Fanyi
发布2023-05-07 17:28:03
1.8K0
发布2023-05-07 17:28:03
举报
文章被收录于专栏:繁依Fanyi 的专栏
在这里插入图片描述
在这里插入图片描述

1. SQL 简介

1. 什么是 SQL

SQL,英文全称 Structured Query Language,是一种结构化查询语言,是一种关系型数据库的查询规范,用于访问和处理数据库。 ② SQL其实就是定义了操作所有关系型数据库的规则。 ③ Oracle,MySQL,SQL Server 等每一种数据库操作的方式存在不一样的地方,从 SQL 引申出来。所以不同的数据库都支持 SQL 语言。

在这里插入图片描述
在这里插入图片描述

2. SQL 分类

在这里插入图片描述
在这里插入图片描述

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. 创建数据库

① 创建数据库

代码语言:javascript
复制
CREATE DATABASE 数据库名;

示例:

代码语言:javascript
复制
create database db1;
在这里插入图片描述
在这里插入图片描述

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

代码语言:javascript
复制
CREATE DATABASE IF NOT EXISTS 数据库名;

示例:

代码语言:javascript
复制
create database if not exists db2;
在这里插入图片描述
在这里插入图片描述

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

代码语言:javascript
复制
CREATE DATABASE 数据库名 CHARACTER SET 字符集;

示例:

代码语言:javascript
复制
create database db3 default character set gbk;
在这里插入图片描述
在这里插入图片描述

2. 查看数据库

① 查看所有的数据库

代码语言:javascript
复制
show database;
在这里插入图片描述
在这里插入图片描述

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

代码语言:javascript
复制
show create database 数据库名;

示例:

代码语言:javascript
复制
show create database db1;
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
show create database db2;
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
show create database db3;
在这里插入图片描述
在这里插入图片描述

3. 修改数据库

1. 修改数据库默认的字符集
代码语言:javascript
复制
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

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

代码语言:javascript
复制
 alter database db3 character set utf8;
在这里插入图片描述
在这里插入图片描述

4. 删除数据库

1. 删除数据库的语法
代码语言:javascript
复制
DROP DATABASE 数据库名;

示例:删除数据库 db2

代码语言:javascript
复制
drop database db2;
在这里插入图片描述
在这里插入图片描述

5. 使用数据库

1. 查看正在使用的数据库
代码语言:javascript
复制
SELECT DATABASE();  #全局函数

示例:

在这里插入图片描述
在这里插入图片描述
2. 使用/切换数据库
代码语言:javascript
复制
USE 数据库名;

示例:

代码语言:javascript
复制
-- 查看正在使用的数据库
select database();

-- 改变要使用的数据库
use db4;
在这里插入图片描述
在这里插入图片描述

3. DDL 操作表结构

1. 创建表

1. 格式
代码语言:javascript
复制
CREATE TABLE 表名 (
	字段名 1 字段类型 1,
	字段名 2 字段类型 2,
	......
	字段名 n 字段类型 n,
)

示例:

代码语言:javascript
复制
CREATE TABLE people (
	age INT,
	NAME VARCHAR(20)
)
在这里插入图片描述
在这里插入图片描述
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. 查看所有表
代码语言:javascript
复制
SHOW TABLES;
在这里插入图片描述
在这里插入图片描述
2. 查看表结构
代码语言:javascript
复制
DESC 表名;

示例:

代码语言:javascript
复制
DESC people;
在这里插入图片描述
在这里插入图片描述
3. 查看创建表的SQL
代码语言:javascript
复制
SHOW CREATE TABLE 表名;

示例:

代码语言:javascript
复制
SHOW CREATE TABLE people;
在这里插入图片描述
在这里插入图片描述

4. 复制表

代码语言:javascript
复制
CREATE TABLE 新表 LIKE 表1;

示例:

代码语言:javascript
复制
CREATE TABLE people1 LIKE people;
在这里插入图片描述
在这里插入图片描述

5. 删除表

代码语言:javascript
复制
DROP TABLE 表名;

示例:

在这里插入图片描述
在这里插入图片描述

6. 修改表

1. 添加表列
代码语言:javascript
复制
ALTER TABLE 表名 ADD 列名 类型;

示例:

代码语言:javascript
复制
ALTER TABLE people ADD class VARCHAR(20);
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
DESC people;
在这里插入图片描述
在这里插入图片描述
2. 修改表列类型
代码语言:javascript
复制
ALTER TABLE 表名 MODIFY 列名 新的类型;

示例:

代码语言:javascript
复制
ALTER TABLE people MODIFY class INT;
在这里插入图片描述
在这里插入图片描述
3. 修改表列名
代码语言:javascript
复制
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;

示例:

代码语言:javascript
复制
ALTER TABLE people CHANGE class sex INT;

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

在这里插入图片描述
在这里插入图片描述
4. 删除表列
代码语言:javascript
复制
ALTER TABLE 表名 DROP 列名;

示例:

代码语言:javascript
复制
ALTER TABLE people DROP sex;
在这里插入图片描述
在这里插入图片描述
5. 修改表名
代码语言:javascript
复制
RENAME TABLE 表名 TO 新表名;

示例:

代码语言:javascript
复制
RENAME TABLE people TO persons;
在这里插入图片描述
在这里插入图片描述
6. 修改字符集
代码语言:javascript
复制
ALTER TABLE 表名 character set 字符集;

示例:

代码语言:javascript
复制
ALTER TABLE persons CHARACTER SET gbk;
在这里插入图片描述
在这里插入图片描述

4. DML 操作表数据

1. 插入记录

1. 写列名

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

代码语言:javascript
复制
INSERT INTO 表名 (列名1,列名2,...) VALUES (值1,值2,...);

示例:

代码语言:javascript
复制
INSERT INTO persons (age,NAME) VALUES(19,'小红');
在这里插入图片描述
在这里插入图片描述
2. 不写列名
代码语言:javascript
复制
INSERT INTO 表名 VALUES (值 1, 值 2, …);

示例:

代码语言:javascript
复制
INSERT INTO persons VALUES(20,'小兰');
在这里插入图片描述
在这里插入图片描述

2. 更新表记录

1. 不带条件
代码语言:javascript
复制
UPDATE 表名 SET 列名=值;

示例:

代码语言:javascript
复制
UPDATE persons SET age=age+1;
在这里插入图片描述
在这里插入图片描述
2. 带条件
代码语言:javascript
复制
UPDATE 表名 SET 列名=值 [WHERE 条件表达式]

示例:

代码语言:javascript
复制
UPDATE persons SET NAME='小明' WHERE NAME='小红';
在这里插入图片描述
在这里插入图片描述

3. 删除表记录

1. 带条件
代码语言:javascript
复制
DELETE FROM 表名;

示例:

DELETE FROM persons;

删除表中所有记录。

在这里插入图片描述
在这里插入图片描述
2. 不带条件
代码语言:javascript
复制
DELETE FROM 表名 WHERE 字段名=值;

示例:

代码语言:javascript
复制
DELETE FROM persons WHERE age=20;

删除表中年龄20的人。

在这里插入图片描述
在这里插入图片描述
3. 删除表中所有记录
代码语言:javascript
复制
TRUNCATE TABLE 表名;

示例:

代码语言:javascript
复制
TRUNCATE TABLE persons;
在这里插入图片描述
在这里插入图片描述

5. DQL 查询表数据

1. 简单查询

1. 查询所有列
代码语言:javascript
复制
SELECT * FROM 表名;

示例:

代码语言:javascript
复制
SELECT * FROM persons;
在这里插入图片描述
在这里插入图片描述
2. 查询指定列
代码语言:javascript
复制
SELECT 列名 1, 列名 2, ... FROM 表名;

示例:

代码语言:javascript
复制
SELECT age FROM persons;
在这里插入图片描述
在这里插入图片描述

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

代码语言:javascript
复制
SELECT 列名 1 AS 别名, 列名 2 AS 别名... FROM 表名;

示例:

代码语言:javascript
复制
SELECT age AS 年龄 FROM persons;
在这里插入图片描述
在这里插入图片描述

3. 清除重复值

代码语言:javascript
复制
SELECT DISTINCT 字段名 FROM 表名;

示例:

代码语言:javascript
复制
SELECT DISTINCT age FROM persons;

查询不重复 age 的所有值。

在这里插入图片描述
在这里插入图片描述

4. 查询结果参与运算

1. 列数据与固定值参与运算
代码语言:javascript
复制
SELECT 列名 1 + 固定值 FROM 表名;

示例:

代码语言:javascript
复制
SELECT age+1 FROM persons;

查询年龄 +1 后的所有值

在这里插入图片描述
在这里插入图片描述
2. 某列数据和其他列数据参与运算
代码语言:javascript
复制
SELECT 列名 1 + 列名 2 FROM 表名;

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

5. 条件查询

比较运算符

说明

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

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

BETWEEN…AND

表示一个范围

IN

表示某些值是否在集合中

LIKE ‘_%’

模糊查询

IS NULL

查询某一列是否为 NULL

and、or、not

逻辑运算符

示例代码:

代码语言:javascript
复制
SELECT * FROM persons WHERE age<>19;
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
SELECT * FROM persons WHERE age NOT IN (19,20,22);
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 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. 详细数据类型
              • 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
                      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档