mysql-10臨時表、複製表
阿新 • • 發佈:2018-11-15
mysql臨時表在我們需要儲存一些臨時資料時非常有用。
臨時表只在當前連線可見,當關閉連線時,mysql會自動刪除表並釋放所有空間。
如果使用客戶端建立臨時表,只有在管不客戶端程式時才會銷燬臨時表,當然也可以手動銷燬。
建立臨時表
create TEMPORARY table `SalesSummary`(`producnt name` varchar(50) null, `total_sales` DECIMAL(12,2) NOT NULL DEFAULT 0.00, `avg_unit_price` DECIMAL(7,2) NOT NULL DEFAULT 0.00, `total_units_sold` INT UNSIGNED NOT NULL DEFAULT 0); insert into SalesSummary values('cucumber',100.25,90,2); select * from SalesSummary;
使用臨時表
刪除臨時表
drop table SalesSummary;
mysql複製表:複製mysql的資料表,包括表的結構、索引、預設值
複製表有3種情形:
- 1.完整複製
- 2.部分複製
- 3.額外欄位+複製表
完全複製
方法1:獲取表結構,建立資料表,複製資料
步驟:
方法1:先獲取表結構,在建立資料包
-- 1.獲取資料表的完整結構
show create table csj_tbl \G;
-- 2.建立資料表 CREATE TABLE `clone_csj_tbl` ( `csj_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `csj_title` varchar(100) NOT NULL, `csj_author` varchar(40) NOT NULL, `submission_date` date DEFAULT NULL, PRIMARY KEY (`csj_id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; -- 3.複製資料 insert into clone_csj_tbl select * from csj_tbl; select * from clone_csj_tbl;
方法2:直接依照原表建立,再插入資料
-- 根據模版,建立新表
create table clone_csj_tbl like csj_tbl;
-- 插入資料
insert into clone_csj_tbl select * from csj_tbl;
方法3:使用as語句直接建立表
create table clone_csj_tb1 as (select * from csj_tbl);
複製表中的一部分欄位
create table clone_csj_tbl1 as (select csj_id,csj_title from csj_tbl); select * from clone_csj_tbl1;
-- 將列重新命名
create table clone_csj_tbl1 as (select csj_id, csj_title as title from csj_tbl);
-- 拷貝一部分資料
create table clone_csj_tbl1 as (select csj_id,csj_title from csj_tbl where csj_id <4);
建立表時額外定義一些欄位
create table clone_csj_tbl1 as (select csj_id,csj_title from csj_tbl);