MySQL命令

MySQL命令

数据库

查询

查询所有数据库

SHOW DATABASES;

查询当前数据库

SELECT DATABASE();

查询当前数据库所有表

SHOW TABLES;

创建

创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET字符集] [COLLATE 排序规则];
CREATE DATABASE IF NOT EXISTS demo default charset utf8mb4;

IF NOT EXISTS  --是用于判断是否存在,不存在就创建
default charset utf8mb4  --用于设置字符集为utf8mb4

删除

删除数据库

DROP DATABASE [IF EXISTS] 数据库名;
DROP DATABASE IF EXISTS demo;

IF EXISTS	-- 用于判断是否存在,存在就删除。

使用

使用数据库

USE 数据库名;
USE demo;

数据库类型

数值类型

unsigned​关键字用于声明整数类型为无符号整数,可以确保整数类型只存储非负数(即零或正数),而不存储负数。

数据类型 描述
TINYINT 小整数类型,范围为 -128 到 127
SMALLINT 短整数类型,范围为 -32,768 到 32,767
MEDIUMINT 中等整数类型,范围为 -8,388,608 到 8,388,607
INT 整数类型,范围为 -2,147,483,648 到 2,147,483,647
BIGINT 大整数类型,范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
FLOAT 单精度浮点数类型
DOUBLE 双精度浮点数类型
DECIMAL 定点数类型

字符串类型

这里的size代表长度例如:VARCHAR(30)

数据类型 描述
CHAR(size) 定长字符串,固定长度为 size
VARCHAR(size) 可变长度字符串,最大长度为 size
BINARY(size) 定长二进制字符串,固定长度为 size
VARBINARY(size) 可变长度二进制字符串,最大长度为 size
TEXT 用于存储较长的文本数据,最大长度为 65,535 个字符
BLOB 用于存储二进制大对象数据,最大长度为 65,535 字节
ENUM(val1, val2) 枚举类型,只能存储指定的值之一,例如 ENUM(‘male’, ‘female’)
SET(val1, val2) 集合类型,可以存储指定的值之一或多个值,例如 SET(‘red’, ‘green’, ‘blue’)
JSON 存储 JSON 数据的数据类型

日期时间类型

数据类型 描述
DATE 日期类型,格式为 ‘YYYY-MM-DD’
TIME 时间类型,格式为 ‘HH:MM:SS’
DATETIME 日期时间类型,格式为 ‘YYYY-MM-DD HH:MM:SS’
TIMESTAMP 时间戳类型,存储从 ‘1970-01-01 00:00:01’ 到 2038 年的秒数

数据表

创建

创建数据表

CREATE TABLE 表名(
字段1 字段1类型 [COMMENT '字段注释'],
字段2 字段2类型 [COMMENT '字段注释'],
······
字段* 字段*类型 [COMMENT '字段注释'],
)[COMMENT '表注释'];

CREATE TABLE test(
id int COMMENT '编号',
name VARCHAR(30) COMMENT '名字',
age int COMMENT '年龄',
gender VARCHAR(1) COMMENT '性别'
)COMMENT '个人信息';

查看

查看表结构

DESC 表名;
DESC test;

查询指定表的建表语句

SHOW CREATE TABLE 表名;
SHOW CREATE TABLE test;

查询指定记录

查询id大于2的数据

SELECT * FROM 表名 WHERE 表达式;
SELECT * FROM test WHERE id>2;

查询 id 为 2 到 5 的数据

SELECT * FROM test WHERE id>=2 and id<=5;
SELECT * FROM test WHERE id>=2 && id<=5;
BETWEEN AND 从 and 左边开始取值到右边,注意只能是 and 左右两边取值为<=和>=时
SELECT * FROM test WHERE id BETWEEN 2 AND 5;

查询名字为西游记和鬼吹灯的数据

SELECT * FROM test WHERE name='西游记' or name='鬼吹灯';
SELECT * FROM test WHERE name in('西游记','鬼吹灯');

查询名字不包含西游记和鬼吹灯的数据

SELECT * FROM test WHERE name='西游记' and name='鬼吹灯';SELECT * FROM test WHERE name NOT in('西游记','鬼吹灯');

空(null)或非空(not null)

查询为数据为空(null)时,不能用=要用 is
SELECT * FROM test WHERE name is null; 
查询为数据为非空(null)的数据
SELECT * FROM test WHERE name is not null; 

查找 test 表 type 的数据并且不能保留重复数据

SELECT DISTINCT type FROM test;

字符匹配查询

查找name包含水性笔的数据(% 用于匹配多个未知的字符)

SELECT * FROM test WHERE name like '%水性笔';

查找name包含水性笔且水性笔前还有一个字的数据(_ 用于匹配一个未知的字符)

SELECT * FROM test WHERE name like '_水性笔';

排序

需要将价格 price 进行排序

默认为从小到大:升序(ASC)
SELECT * FROM test ORDER BY price;
需要将价格 price 进行降排序(从大到小)
SELECT * FROM test ORDER BY price DESC;
对多个字段进行排序
SELECT * FROM test ORDER BY price,num;

限制查询

前 5 条
SELECT * FROM test limit 5;
从第 5 条开始向后查找 10 条,因为查询是从 0 开始的,所以 0,1,2,3,4 这里的 4 其实就是第 5 条。
SELECT * FROM test limit 4,10;

聚合查询

COUNT() 计算表中记录的条数
SUM() 计算字段值的总和
AVG() 计算字段值的平均值
MAX() 查询表中字段值的最大值
MIN() 查询表中字段值的最小值
SELECT 函数(字段或者*) FROM 表名;

查询 test 表中总记录数

SELECT COUNT(*) FROM test;

查询 test 表中 info 字段的记录数(不包含 null)

SELECT COUNT(info) FROM test;

以什么显示就在函数后加: as '什么显示'​,例如:查找goods表中添加时间(add_time)字段的记录数,并以添加时间显示结果

SELECT COUNT(add_time) as '添加时间' FROM goods;

需要保证每个商品的库存量都为 100,需要补多少量的货?

SELECT name,100-num as '补货量' FROM test;

分组查询

需要从 test 表中查找出书籍、饮料等种类的记录总数

as ‘描述’ 可以不写

SELECT type as '商品类别',count(*) as '总数' FROM test GROUP BY type;

使用 HAVING 过滤分组后数据

从 test 表中查找出书籍、饮料等种类总数大于 5 的记录

SELECT type as '商品类别',count(*) as '总数' FROM test GROUP BY type HAVING count(*)>5;

添加

添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT '注释'] [约束];
ALTER TABLE test ADD nickname VARCHAR(20) COMMENT '昵称' ;

修改

修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度); 
ALTER TABLE test MODIFY nickname CHAR(20);

修改字段名和数据类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
ALTER TABLE test CHANGE nickname username VARCHAR(30) COMMENT '用户名';

修改表名

ALTER TABLE 表名 RENAME TO 新表名; 
ALTER TABLE test RENAME TO test01;

删除

删除字段

ALTER TABLE 表名 DROP 字段名; 
ALTER TABLE test DROP username;

删除表

DROP TABLE [IF EXISTS] 表名; 
DROP TABLE IF EXISTS test01;

删除指定表并重新创建该表

TRUNCATE TABLE 表名;
TRUNCATE TABLE test01;
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容