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;
© 版权声明
- 本站永久网址:https://blog.ksmlc.cn/
- 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责
- 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新
- 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ:2760460838进行删除处理
THE END
暂无评论内容