@
mysql的常用腳本有哪些呢?我們來做個總結
建表語句
sql語句最后指定主鍵
DROP TABLE IF EXISTS `user_info1`;
CREATE TABLE `user_info1` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`name` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
`password` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '密碼',
`deleted` int(1) DEFAULT '0' COMMENT '0未刪除 1刪除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
建表主鍵后指定主鍵
DROP TABLE IF EXISTS `user_info2`;
CREATE TABLE `user_info2` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵' PRIMARY KEY,
`name` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
`password` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '密碼',
`deleted` int(1) DEFAULT '0' COMMENT '0未刪除 1刪除'
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
建表之后指定主鍵
drop table if exists `user_info3`;
create table `user_info3` (
`id` int(11) NOT NULL COMMENT '主鍵',
`name` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
`password` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '密碼',
`deleted` int(1) DEFAULT '0' COMMENT '0未刪除 1刪除'
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
alter table user_info3 add primary key(id);
注??:主鍵才可以自增,這里需要先去掉AUTO_INCREMENT,不然此處sql 從上向下執行會報錯!
如果需要設置可以執行以下腳本
/*設置自增*/
alter table `user_info3` modify id int(11) auto_increment;
/*修改初始自增值*/
alter table `user_info3` auto_increment=3;
復制表
/* 復制表結構 */
create table `user_info1_back` like `user_info1`;
/* 備份表數據 生產上線前對于改動的表都需要執行此備份操作*/
insert into `user_info1_back` select * from `user_info1`;
插入
單條:
INSERT INTO `user_info1`
(name,password)
VALUES
('張三','123456');
多條:
INSERT INTO `user_info1`
(name,password)
VALUES
('A','123456'),
('B','123456')
('C','123456');
刪除
刪除表
刪除表和數據,不可逆
drop table `user_info1` if exists `user_info1`;
刪除整個表數據,不可逆
TRUNCATE table `user_info1`;
/* TRUNCATE 返回 0 或 -1 刪除成功返回0 刪除失敗返回-1*/
刪除數據 可加where 條件刪除部分數據,可逆
delete from `user_info1` where id = 1 ;
/* delete 返回刪除了多少條數據*/
刪除字段
alter table `user_info1` drop password;
修改
修改表名
alter table `user_info1` rename to `user_info_1`;
-- 或者
alter table `user_info_1` rename AS `user_info1`;
/* 修改表注釋*/
alter table `user_info1` comment '用戶信息 表1';
修改表字段
/* 增加字段 在指定表字段后新增,建議所有的新增腳本都這樣精確標明位置*/
alter table `user_info1` add sex int(1) NOT NULL DEFAULT "1" comment "0女,1男" after password;
/* 修改字段 名稱*/
alter table `user_info1` change column name user_name varchar(20) DEFAULT null COMMENT '姓名';
/* 修改字段 長度*/
alter table `user_info1` modify sex int(2) DEFAULT "1" comment '0男,1女';
/* 修改字段 默認值 (若本身存在默認值,則先刪除;若本身不存在則可以直接設定)*/
alter table `user_info1` alter column sex drop DEFAULT;
alter table `user_info1` alter column sex set DEFAULT "0";
/* 修改字段 備注*/
alter table `user_info1` modify column sex int(1) DEFAULT "1" comment '0男,1女';
/* 修改字段 位置*/
alter table `user_info1` modify column sex int(1) DEFAULT "1" COMMENT '0男,1女' after user_name;
注??:modify 操作字段時 需要帶上原有的字段屬性(長度,類型,默認值,注釋),不然可能會造成不必要的丟失!
小結:mysql 的基本增刪改(查就沒啥好說的了)就總結到這里,后面如果有需要增加的腳本會繼續追加進來!