最近複習mysql的時候,看到一些以前不曾看到資料插入方式,於是我這些進行了一些總結
方式一:
insert into
[表名]([列名],[列名])
values
([列值],[列值]));
或insert into
[表名]
values
([列值],[列值]));--這樣寫列值的個數要與表中字段的個數一樣
insert into login(username,password,role,sno) values('好漢3','123',1,'0004');
方式一:
一條insert語句插入批量資料的寫法:
insert into
[表名]([列名],[列名])
values
([列值],[列值])),
([列值],[列值])),
([列值],[列值]));
注意:這並不是標準的sql語法,因此只能在mysql中使用
insert into login(username,password,role,sno) values('suan','123',1,'0002'),('好漢1','123',1,'0003');
建議:
在程式中,插入批量資料時,最好使用這種通過一條insert語句來一次性插入的方式。這樣可以避免程式和資料庫建立多次連線,從而增加伺服器負荷。
方式二:
insert into login(username,password,role,sno) select '好漢4','123',1,'0005' union all select '好漢5','123',1,'0006';
方式三:
通過儲存過程的方式,來一次性插入多條語句
例如:
drop procedure if exists myproc;--如果存在,則刪了這個儲存過程
--建立儲存過程 myproc
delimiter $$ --定義分割符
create procedure myproc()
begin
declare num int;--宣告變數
set num=1; --設定初始值
while num<100 do
insert into login(username,password,role,sno)
values(concat('108好漢',num),'123456',1,concat('00',num));
set num=num+1;
endwhile ;
end$$
--查詢儲存過程
--如果是在命令終端用一下的這個語句,因為定義了結束符為這個$$
call myproc()$$
--mysql工具中使用
call myproc();
--查詢表
select * from login$$--終端中使用
select * from login;--mysql工具中使用
--刪除儲存過程
drop procedure myproc$$ --終端
語法為:
insert into table ( field1 , field2 , fieldn ) select 'field1' , 'field2' , 'fieldn' from dual where not exists ( select field from table where field = ? )
insert into login(username,password,role,sno)
select '好漢6','123',1,'0007'
from dual where not exists (select sno from login where sno = '0007');
注意:其中dual是虛擬表,不要物理建立
參考:
MySQL多種需求的備份方式
備份工具mysqldump 1 直接使用命令mysqldump可以檢視使用格式 usage mysqldump options database tables or mysqldump options databases options db1 db2 db3.or mysqldump option...
繼承的多種方式
常用的繼承方法 1.原生繼承 抽取共同點 人類 function people name,age,people.prototype.say function people.prototype.breath function 學生類 function student name,age,studentn...
多種居中的方式
參考我是span元素,想要居中,父級設定了text align center 我是div,已經有固定寬度,想要居中,設定我的margin 0 auto 我是div,已經有固定寬度,想要居中,設定我的父級padding 我是div,已經有固定寬度,想要居中,設定我的margin left 我是div,...