DDL:即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,

关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。

DML:即数据操纵语句,用来查询、添加、更新、删除等,

关键字:SELECT、INSERT、UPDATE、DELETE、MERGE、CALL、EXPLAIN PLAN、LOCK TABLE

登录数据库

格式: mysql -h主机地址 -u用户名 -p用户密码 –P端口 –D数据库 –e “SQL 内容”

常用:mysql -uroot -p 数据库名称

MySQL数据库语句_数据库

MySQL数据库语句_数据库_02

MySQL数据库语句_mysql_03

alter table test rename test1; --修改表名

删除索引
ALTER TABLE user_table drop INDEX idx_name;


修改字段名
ALTER TABLE user_table CHANGE activity_id room_id bigint(20) NOT NULL COMMENT '房间ID';

创建联合唯一索引
create unique index `idx_room_creator_id` on `activity_student_auth`(`room_id`, `creator_id`) USING BTREE;

MySQL数据库语句_mysql_04

MySQL数据库语句_数据_05

MySQL数据库语句_数据库_06

MySQL数据库语句_数据_07

MySQL数据库语句_mysql_08

2020-07-22 两个库关联查询

多个库中不同表的关联查询,数据库名.表名  数据库名加上"."就能调用相应数据库的数据表

select * from db1.table1 left join db2.table2 on db1.table1.id = db2.table2.id

2020-09-18 查询某一天数据

MySQL数据库语句_数据_09


 

正确写法,速度快
select * from user where DATE_FORMAT(gmt_created,'%Y-%m-%d') = '2020-09-10'

错误写法,数据量大时非常慢,花费的时间是上面的5倍
select * from user where gmt_created BETWEEN '2020-09-10 00:00:00' AND '2020-09-10 23:59:59'

2022-12-01 查询某一天数据 假如一个商品下,有多个货品,各个货品的状态值都不一样,那么当只想展示商品中的某一个货品时,希望用户端看到优先级是在售的货品中的一个,根据mysql提供的方法:field(column,value1,value2,value3,……), 可满足当前需求

SELECT
*
FROM
contract_alarm
WHERE
user_id = 18 AND business_id = '826dbd65d31a403fab3acdb743c59529'
ORDER BY
field( severity, 'High', 'Medium', 'Low') ASC;

mysql 导出表结构和表数据 mysqldump用法

mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名;

导出整个数据库结构和数据

mysqldump -h localhost -uroot -p123456 database > dump.sq

导出单个数据表结构和数据

mysqldump -h localhost -uroot -p123456  database table > dump.sql

导出整个数据库结构(不包含数据)

mysqldump -h localhost -uroot -p123456  -d database > dump.sql

导出单个数据表结构(不包含数据)

mysqldump -h localhost -uroot -p123456  -d database table > dump.sql

 附: mysql(本人遇到到错误码及解决办法)