MySQL数据库语句
原创
©著作权归作者所有:来自51CTO博客作者风华浪浪的原创作品,请联系作者获取转载授权,否则将追究法律责任
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 数据库名称
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;
2020-07-22 两个库关联查询
多个库中不同表的关联查询,数据库名.表名 数据库名加上"."就能调用相应数据库的数据表
select * from db1.table1 left join db2.table2 on db1.table1.id = db2.table2.id
2020-09-18 查询某一天数据
正确写法,速度快
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(本人遇到到错误码及解决办法)