Mysql 语法积累库
Mysql 相关API网址
基础语法
-- 查询数据库版本号 select version(); -- 查看数据库列表 show databases; -- 创建数据库:datadb create database datadb; -- 切换到指定数据库 use information_schema; -- 查看当前数据库下的数据库表 show tables; -- 若存在则删除数据库表 drop table if exists t_nice; -- 创建数据库表 create table t_nice(name varchar(20), sex int(1)); -- 显示表的结构: desc t_nice; describe t_nice; -- 往表中加入记录 insert into t_nice values ('mjl',1),('mjl',2); -- 删除表数据:计数值不变;数据库操作语言(dml) delete from basedb.t_account where user_name = '踏步'; -- 清空表数据:重置计数值;不能清空由foreign key约束引用的表;数据库定义语言(ddl) truncate table basedb.t_account; -- 删除表:删除内容和定义【删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index)】;依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid;释放空间 drop table basedb.t_account;
建表语句自动更新时间
-- 创建时间:第一次保存数据时更新时间 `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', -- 更新时间:每次数据变动更新时间 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
数据库表复制
-- 完全复制:在数据库db2中建立一个和db1中一样的表table CREATE TABLE db2.table LIKE db1.table; -- 复制结构和数据(Ps:主键不会复制) select * into table_new from table_old ; -- 复制结构 select * into table_new from table_old where 1=2; -- 复制数据:将db1.table1表中的数据 复制到 db2.table2表中 INSERT INTO db2.table SELECT * FROM db1.table;
优化IN查询
点击查看Mysql 优化IN查询Demo
** in 查询**
select t1.name,t1.age from table1 t1
where t1.sid in(
select t2.id from table2 t2 where t2.yahei='嘿嘿'
);
优化 in 查询
select t1.name,t1.age from table1 t1
where t1.sid in (
select t21d from (
select t2.id as t21d from table2 t2 where t2.yahei='嘿嘿'
) as t21d
);
left join、right join、inner join区分
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
日期查询
主要所用的函数为 DATE_FORMAT(date,format),参考网址:https://www.w3school.com.cn/sql/func_date_format.asp
-- 查询某段日期上午的数据 select * from nice where 1=1 and time BETWEEN '2020-07-20 08:29:28' and '2020-07-24 08:29:28' and DATE_FORMAT(time,"%H")>='00' and DATE_FORMAT(time,"%H") <= '12';
I have a dream : Sandy beach B-J-N.
浙公网安备 33010602011771号