MySQL数据库操作常用脚本
2015-12-23 13:20
549 查看
1. 查看MySQL数据库表信息:表名、行数和大小等信息
MySQL数据库的表信息存在INFORMATION_SCHEMA库的TABLES表中,可使用如下sql语句查询表信息如表名、行数和大小等。
说明:TABLE_SCHEMA条件右侧填入要查询的数据库名。
2. 创建表
3. 增加/删除列
4. 从A表中取数据插入B表
7. 复制表
MySQL数据库的表信息存在INFORMATION_SCHEMA库的TABLES表中,可使用如下sql语句查询表信息如表名、行数和大小等。
SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH / 1024 / 1024 "DATA_LENGTH(M)", CREATE_TIME, TABLE_COLLATION FROM INFORMATION_SCHEMA. TABLES WHERE TABLE_SCHEMA = 'demo' ORDER BY TABLE_ROWS DESC;
说明:TABLE_SCHEMA条件右侧填入要查询的数据库名。
2. 创建表
DROP TABLE IF EXISTS `code_dictionary`; CREATE TABLE `code_dictionary` ( `id` char(32) NOT NULL COMMENT 'ID', `code` varchar(32) NOT NULL COMMENT '编码', `name` varchar(64) NOT NULL COMMENT '名称', `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否已删除', `created_time` datetime NOT NULL COMMENT '创建时间', `last_modified_time` datetime NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. 增加/删除列
alter table table_name add column `column_name` char(32) DEFAULT '6e5fcd86944441eaa4282f6172f88ab6' COMMENT '编码' AFTER `config`; alter table table_name drop column `column_name`;
4. 从A表中取数据插入B表
INSERT INTO tableB(user_id, branch_id, created_time, last_modified_time) SELECT id, 1, now(), now() FROM tableA WHERE age > 20;5. mysql删除业务逻辑上重复的记录(需要借助中间表)
DELETE FROM user_role WHERE id NOT IN ( SELECT tmp.id FROM ( SELECT min(id) id FROM user_role GROUP BY role_id, user_id ) tmp );6. 级联更新
UPDATE contest_season s SET attendee_cnt = ( SELECT count(DISTINCT user_id) FROM contest_detail d WHERE d.season_id = s.id ) WHERE EXISTS ( SELECT 1 FROM contest_detail d WHERE d.season_id = s.id );
7. 复制表
-- 复制表结构和数据 create table tableB as select * from tableA; create table tableB select * from tableA; -- 复制表结构 create table tableB as select * from tableA where 1=0; create table tableB select * from tableA where 1=0; -- 复制表数据(应确保表结构相同,最好写列名,否则复制的列值可能会错乱) insert into tableB select * from tableA;
相关文章推荐
- MySQL数据库cmd操作基本命令和加载链接
- 如何在MySQL生成.sql文件
- 对MySQL中字符集的相关设置操作的基本教程
- mysql 用户权限管理
- 安装使用Percona XtraBackup来备份恢复MySQL的教程
- 清除mysql表中数据
- mysql 中文乱码
- MySQL基于SSL协议进行主从复制的详细操作教程
- 构建高性能web之路------mysql读写分离实战
- 使用MySQL Workbench建立数据库,建立新的表,向表中添加数据
- Jmeter JDBC 链接mysql
- SimpleMembershipProvider 的 MySql 实现
- mysql字符串比较
- MySQL的使用中实现读写分离的教程
- MySQL常用DDL
- 使用MySQL的开发者需了解的…
- MySQL+Sphinx安装全步骤
- mysql是什么?mysql的特点
- MYSQL错误代码大全
- MySQL卡顿和优化