在mysql中要向數(shù)據(jù)庫中保存數(shù)據(jù)我們最常用的一種方法就是直接使用Insert into語句來實現(xiàn)了,下面我來給大家詳細介紹Insert into語句用法
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、巴彥淖爾網(wǎng)站維護、網(wǎng)站推廣。
INSERT用于向一個已有的表中插入新行。INSERT…VALUES語句根據(jù)明確指定的值插入行。讓我們先來看一下insert語句標準的定義,放在[]內(nèi)的都是可以省略的:
語法
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
實例
create table links (name varchar(255) not null default '', address varchar(255) not null default '');
最簡單的插入方法
代碼如下
復(fù)制代碼
Mysqlinsert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);
或
insert into links values('jerichen','gdsz');
批量保存數(shù)據(jù)
假如我們想一次性的往數(shù)據(jù)庫里插入多條數(shù)據(jù)咋辦?一定要寫多條語句嗎?肯定是不會的,因為MySQL設(shè)計的還是很人性的。其提供insert語句的
一種非標準格式,即,values(字段值1,字段值2,字段值3),(另一個字段1的值,另一個字段2的值,另一個字段3的值);
# 同時插入兩條數(shù)據(jù),看語法說明,那個into被我省略了
代碼如下
復(fù)制代碼
insert links (name,url) values('jerichen','gdsz'),('alone','gdgz');
使用INSERT…SELECT語句插入從其他表選擇的行
當我們在上一節(jié)學(xué)習(xí)創(chuàng)建表時,知道可以使用select從其它表來直接創(chuàng)建表,甚至可以同時復(fù)制數(shù)據(jù)記錄。如果你已經(jīng)擁有了一個表,你同樣可以從select語句的配合中獲益。
從其它表中錄入數(shù)據(jù),例如:
代碼如下
復(fù)制代碼
mysqlinsert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;
你也可以略去目的表的列列表,如果你每一列都有數(shù)據(jù)錄入。
代碼如下
復(fù)制代碼
mysqlinsert into tbl_name1 select col3,col4 from tbl_name2;
INSERT INTO ... SELECT語句滿足下列條件:
查詢不能包含一個ORDER BY子句。
1、執(zhí)行sql語句:SELECT * FROM `article` WHERE catalog_id=13 and article_id70+2 and article_id70-2;
2、在實際使用的時候70這里是要傳參數(shù)進去的,當然是參數(shù)+2和參數(shù)-2,應(yīng)該是大于等于和小于等于。語法肯定沒錯,只是寫那么個意思,你不想要70這個值只需要在程序里面把他去掉就可以了。
如果你說前后的article_id不是固定間隔的,那也有辦法,你可以分別查兩次,然后用union把數(shù)據(jù)組合在一起,比如:SELECT * FROM `article` WHERE catalog_id=13 and article_id70 order by article_id limit 0,2 union SELECT * FROM `article` WHERE catalog_id=13 and article_id70 order by article_id desc limit 0,2;這樣查詢效率會低,暫時想到的就是這個方法了
首先創(chuàng)建連接
就創(chuàng)建個Cnnection對象,然后把驅(qū)動加上,還有帳號密碼什么的!我沒連過sql數(shù)據(jù)庫,不知道驅(qū)動,你可以在網(wǎng)上搜一下。
給你一個我連接mysql數(shù)據(jù)庫的例子
public Connection Getdata(){//這是連接數(shù)據(jù)庫的一個方法,還可以配置連接池。
Connection con=null;
try {
Class.forName("com.mysql.jdbc.Driver");//加驅(qū)動
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/data","root","qq");//數(shù)據(jù)庫路徑、端口、庫名、數(shù)據(jù)庫用戶名和密碼
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public void delete(int id){//對數(shù)據(jù)庫進行操作的方法,先調(diào)用上面寫好的連接!
Connection con=Getdata();
Statement st;
try {
st=con.createStatement();
st.executeUpdate("delete from kaoshi where id="+id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
如果你是在命令提示符下鍵入SQL語句,結(jié)尾需要加分號,回車即可,如果你是在MYSQL的一個集成開發(fā)環(huán)境下操作,將SQL語句鍵入頁面上方的一個框里,然后按菜單欄上的三角箭頭
mysql使用create語句進行創(chuàng)建數(shù)據(jù)庫表,具體語法:
CREATE TABLE table_name (column_name column_type);
其中需要表名,表中字段名,字段屬性;示例:創(chuàng)建一個學(xué)生信息表 sql如下
CREATE TABLE IF NOT EXISTS `student`(
`student_id` INT UNSIGNED AUTO_INCREMENT,
`student_name` VARCHAR(100) NOT NULL,
`student_age` int(3) NOT NULL,
PRIMARY KEY ( `student_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;