Table Management
1.Cloning a Table
create table
new_table like
original_table;
insert into
new_table select * from
original_table;
2.Saving a Query Result in a Table
insert into dst_tb1(i,s) select val,name from src_tb1;
将src_tb1表中val和name两列的所有行分别复制到dst_tb1的i和s两列中。
insert into dst_tb1 select * from src_tb1 where val > 100 and name like 'A%;
insert into dst_tb1(i,s) select count(*),name from src_tb1 group by name;
create table dst_tb1 select * from src_tb1 where 0;
创建一个空的目的表
create table dst_tb1 select b,d from src_tb1;
假设src_tb1中有列a、b、c、d,你可以只复制b和d两列到目的表
create table dst_tb1 select c、a、b from src_tb1;
如果源表中列abc按顺序出现,而用户希望复制完成之后各列在目的表中出现顺序为cab
create table dst_tb1( id int not null auto_increment, primary key(id)) select a,b,c from src_tb1;
目的表dst_tb1中4列出现顺序为id,a,b,c。其中abc三列根据源表查询结果赋值,而id列从1开始连续自加,为行序号。
create table dst_tb1 select inv_no,sum(unit_cost*quantity) as total_cost from src_tb1 group by inv_no;
使用total_cost重命名sum(unit_cost*quantity)列
注:使用create table...select 来创建目的表,在带来方便的同时也有一些限制。这主要是由于使用查询结果来创建表,对新表的描述和定义能力不如直接使用create table语句那么强大。对于新创建的目的表mysql不能确定其某些列属性,例如列索引和默认值。可以使用如下技巧,使得目的表中包含这些信息:
(1).如果希望目的表和源表一样,可以使用create table...like
(2).如果希望在目的表中使用索引,可以在sql语句中指明。例如,在scr_tb1中id列是主键,state和city两列作为索引,可以赋予dst_tb1同样的属性。
create table dst_tb1(PRIMARY KEY(id),index(state,city)) select * from src_tb1;
(3).有的属性不能克隆到目的表,例如auto_increment属性和列的默认值。对于这些属性,可以在目的表创建并完成数据复制之后,使用alter table来设置目的表相应的属性。例如,src_tb1的id列不但具有primary key属性,同时具有auto_increment属性,可以这样克隆:
create table dst_tb1(PRIMARY KEY(id)) select * from src_tb1;
alter table dst_tb1 modify id int unsigned not null auto_increment;
3.Creating Temporary Tables
create temporary table tb1_name;
普通的建表语句
create temporary table new_table like original_table;
克隆表
create temporary table tb1_name select...;
根据查询结果建表
注:(1).只有在最后一次使用之后,数据库才会自动删除临时表。如果一个临时表在一个数据库连接内多次重复使用,那么每一次重复使用之前应该先使用drop table 显式地删除该临时表(在一个数据库连接中,如果重复两次使用同一个表名创建临时表,而未删除第一次创建的临时表,将导致数据库错误)
(2).应用程序中使用一个与普通表同名的临时表时,应用程序只会对该临时表就行修改。但是如果数据库连接错误断开,而所使用的应用程序自动创建了数据库连接,那么以后对数据库的修改,都将直接作用于普通表,而不是临时表(已经被自动删除)。
4.Checking or Changing a Table's Storage Engine
select engine from information_schema.tables where table_schema='test' and table_name='customer';
检测information_schema,或使用show table status,或使用show create table 语句,来确定一张表当前使用的引擎。
show table status like 'customer'\G
show create table customer\G
alter table customer engine=innodb;
使用alter table以及一个engine子句,来改变一张表所用的引擎。
注意,改变一个很大的表所用的存储引擎可能会耗费很长时间,并花费大量CPU以及I/O资源。
分享到:
相关推荐
一款强大的HBase表管理系统,目前系统集成的功能有,命名空间管理,表管理,列簇管理,标签机制,快照管理,以及一些常见的统计指标展示等,另外,系统还内置了HBaseSQL的功能,欢迎大家下载。 一款强大的HBase表...
还有谁米表管理系统简介 有谁米表管理系统有域名挑选和在线竞拍两大功能,前端是响应式橘红色风格,大气简洁上档次。由还有谁博客博主张世奇制作,方便操作简洁易懂,非常适合新手米农搭建使用,采用ASP ACCESS形式...
MAC地址表管理 一个简单可行的办法,优化网络交换性能,增加网络管理的安全性。
国网DLT698.45电能表管理软件,很好用的698.45电表软件,支持各种读取数据,参数,以及设置参数,此软件在手,走遍天下不愁!
电力行业DLT698.45电能表管理软件(V1.1.0.67)发布201907.rar--来源于其它用户分享。LT698.45-101/104电能表管理软件(V1.1.0.67)发布201907.rar
密码表管理系统,包括用户登陆,密码的加密解密,插入删除修改等功能
数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理
MAC地址表管理操作
IC卡预付费燃气表管理系统,模块介绍,业务和操作流程说明。
课程表管理系统源码 源码描述: 本课程表管理系统功能简单适合初学者参考,实现了基本数据的添加与展示,分页采用第三方控件。 具体功能包括: 管理员信息管理:添加新用户 用户信息显示 教师信息管理:教师信息...
HBaseManager,是一款强大的HBase表管理系统,目前系统集成的功能有,命名空间管理,表管理,列簇管理,标签机制,快照管理,以及一些常见的统计指标展示等,另外,系统还内置了HBaseSQL的功能
数据结构上机作业,链表写列车时刻表管理系统,cpp文件
金融控股集团风险并表管理探析.docx
【C语言期末/实践/大作业】日程表管理系统
数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理数据库表管理
TP射频卡一卡通单机版V2.4_TP-0826 泰安轻松表计有限公司
在线教学大纲与进度表管理系统软件需求主要功能需求 1、软件分为三种用户: 教师、系主任、超级管理员 2、教师主要功能:
电子政务-变电站自动化信息点表管理方法.zip
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设...水电气表管理系统源码+项目说明.zip水电气表管理系统源码+项目说明.zip
日程表管理工具 日程表管理工具 日程表管理工具 日程表管理工具 日程表管理工具 日程表管理工具