MySQL常用语句
数据库设置
查看设置
--- 查看链接超时界限
show global variables like '%timeout';
-- 查看最大传递字节大小1M=1024*1024
show global VARIABLES like '%max_allowed_packet%';
修改设置
-- 设置最大传递数据
set global max_allowed_packet = 1024*1024*1024;
-- mysql版本问题,最前面加该语句
set sql_mode=(select replace(@@sql_mode,'NO_ZERO_IN_DATE,NO_ZERO_DATE',''));
表字段
增加字段 ALTER TABLE [table] ADD [field]
-- 添加字段
ALTER TABLE device ADD device_title varchar(125) DEFAULT NULL COMMENT '设备显示标题';
-- 添加唯一索引
ALTER TABLE test2.mondaq ADD UNIQUE (url_object_id);
更新字段 ALTER TABLE [table] MODIFY/CHANGE [field]
-- 修改字段的长度:change用来字段重命名,不能修改字段类型和约束; modify不用来字段重命名,只能修改字段类型和约束;
alter table table_name modify column name varchar(50) ;
alter table table_name change old_column new_column varchar(100) DEFAULT 1.2 COMMENT '注释'; -- 正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释
删除字段 ALTER TABLE [table] DROP INDEX [index]
-- 删除索引
DROP INDEX index_url_object_id ON test2.mondaq;
ALTER TABLE table_name DROP INDEX index_name;
-- Mysql报错:1451 表关联生成的强制约束问题,在删除的时候回检查表之间的关联关系,从而导致无法删除。
SET foreign_key_checks = 0; -- 先设置外键约束检查关闭
drop table table1; -- 删除表,如果要删除视图,也是如此
SET foreign_key_checks = 1; -- 开启外键约束检查,以保持表结构完整性
表数据
增加数据
-- 插入数据
INSERT INTO `beta_quguoguo`.`qgg_resources` (`re_id`, `title`, `name`, `icon`, `href`, `spread`, `parentid`, `type`, `sort`, `menu`, `is_delete`, `create_date`, `update_date`) VALUES ('37', '桌码管理', 'tableCode', '', NULL, '0', '0', '1', '0', '0', '0', '2021-06-10 17:25:10', '2021-06-10 17:25:10');
修改数据 UPDATE [table] SET
-- 更新表里的数据:如果没有where将更新所有数据
update table_name set website='cnn', name='cnn' where id=1;'
查询数据
-- 查询某一年数据
select id from cnn where year(create_date)=9999;
-- 将多个表数据组合:前提是,表的字段要一致的
(select count(0) from osac where create_date between '2019-06-01' and '2019-06-03') union all
(select count(0) from grada where create_date between '2019-06-01' and '2019-06-03');
-- inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的记录。
select a.name,b.job from A a inner join B b on a.id=b.A_id
-- left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。
select a.name,b.job from A a left join B b on a.id=b.A_id
-- ight join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。
select a.name,b.job from A a right join B b on a.id=b.A_id
-- full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录
select a.name,b.job from A a full join B b on a.id=b.A_id
删除数据
-- 删除某一年数据
DELETE FROM cnn WHERE id in (select id from cnn where year(create_date)=9999);
Hole yor life get everything if you never give up.