锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 浣跨敤"insert into"璇彞榪涜鏁版嵁搴撴搷浣滄椂鍙兘閬囧埌涓婚敭鍐茬獊錛岀敤鎴烽渶瑕佹牴鎹簲鐢ㄥ満鏅繘琛屽拷鐣ユ垨鑰呰鐩栫瓑鎿嶄綔銆傛葷粨涓嬶紝鏈変笁縐嶈В鍐蟲柟妗堟潵閬垮厤鍑洪敊銆?br /> mysql> insert into device values (1,'alive','yangting'); mysql> insert ignore into device values (1,'alive','yangting'); mysql> select * from device ; 2. replace into mysql> replace into device values (1,'alive','yangting'); mysql> select * from device ; 涓婇潰璇彞浼唬鐮佽〃紺哄嵆涓?br />if (select * from device where devid=1) { 嫻嬭瘯琛細
1. insert ignore into
閬囦富閿啿紿侊紝淇濇寔鍘熺邯褰曪紝蹇界暐鏂版彃鍏ョ殑璁板綍銆?br />mysql> select * from device ;
+-------+--------+-------------+
| devid | status | spec_char |
+-------+--------+-------------+
| 1 | dead | zhonghuaren |
| 2 | dead | zhong |
+-------+--------+-------------+
2 rows in set (0.00 sec)
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
Query OK, 0 rows affected (0.00 sec)
+-------+--------+-------------+
| devid | status | spec_char |
+-------+--------+-------------+
| 1 | dead | zhonghuaren |
| 2 | dead | zhong |
+-------+--------+-------------+
2 rows in set (0.00 sec)
鍙 insert ignore into褰撻亣鍒頒富閿啿紿佹椂錛屼笉鏇存敼鍘熺邯褰曪紝涔熶笉鎶ラ敊
閬囦富閿啿紿侊紝鏇挎崲鍘熺邯褰曪紝鍗沖厛鍒犻櫎鍘熺邯褰曪紝鍚巌nsert鏂扮邯褰?/p>
Query OK, 2 rows affected (0.00 sec)
+-------+--------+-----------+
| devid | status | spec_char |
+-------+--------+-----------+
| 1 | alive | yangting |
| 2 | dead | zhong |
+-------+--------+-----------+
2 rows in set (0.00 sec)
3. insert into ... ON DUPLICATE KEY UPDATE
鍏跺疄榪欎釜鏄師鏈渶瑕佹墽琛?鏉QL璇彞錛圫ELECT,INSERT,UPDATE錛夛紝緙╁噺涓?鏉¤鍙ュ嵆鍙畬鎴愩?br />鍗?br />IF (SELECT * FROM where 瀛樺湪) {
UPDATE SET WHERE ;
} else {
INSERT INTO;
}
濡傦細mysql> insert into device values (1,'readonly','yang') ON DUPLICATE KEY UPDATE status ='drain';
Query OK, 2 rows affected (0.00 sec)
update device set status ='drain' where devid=1
} else {
insert into device values (1,'readonly','yang')
}
寰堟槑鏄撅紝devid=1 鏄湁鐨勶紝榪欐牱灝辨墽琛寀pdate鎿嶄綔
mysql> select * from device ;
+-------+--------+-----------+
| devid | status | spec_char |
+-------+--------+-----------+
| 1 | drain | yangting |
| 2 | dead | zhong |
+-------+--------+-----------+
2 rows in set (0.00 sec)
CREATE TABLE `device` (
`devid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`status` enum('alive','dead','down','readonly','drain') DEFAULT NULL,
`spec_char` varchar(11) DEFAULT '0',
PRIMARY KEY (`devid`)
) ENGINE=InnoDB
]]>
CREATE DATABASE database;
//鍒涘緩涓涓暟鎹簱
DROP DATABASE database;
//鍒犻櫎涓涓暟鎹簱
CREATE TABLE table (name1 type(size), name2 type(size), …
);
//鍒涘緩涓涓〃錛屽叾涓墍鏈夋暟鎹被鍨嬪寘鎷細錛堜笉鍚屾暟鎹簱鏈夋墍涓嶅悓錛?br>
鏁存暟錛?/span>integer(int) int(size) smallint(size) tinyint(size)
灝忔暟錛?/span>decimal(size, d) numeric(size, d) //size鏄渶澶т負鏁幫紝d涓哄皬鏁扮偣鍚庝綅鏁?br>
鍥哄畾闀垮害瀛楃涓詫細char(size) //size鏄浐瀹氶暱搴?br>
鍙彉闀垮害瀛楃涓詫細vachar(size) //size鏄渶澶ч暱搴?br>
鏃ユ湡錛歞ate(yyyymmdd)
DROP TABLE table;
//鍒犻櫎涓涓〃錛屽寘鎷垹闄よ〃鐨勭粨鏋勩佸睘鎬у拰绱㈠紩絳?br>
TRUNCATE TABLE table;
//浠呭垹闄よ〃涓殑鎵鏈夋暟鎹紝琛ㄤ緷鐒跺瓨鍦?br>
DELETE FROM table WHERE name op value;
//鍒犻櫎琛ㄤ腑鏌愪簺璁板綍
ALTER TABLE table ADD name type(size);
//鍦ㄨ〃涓坊鍔犳柊鐨勫垪
ALTER TABLE table DROP COLUMN name;
//鍒犻櫎琛ㄤ腑鏌愬垪
SELECT name1, name2,….. FROM table;
SELECT * FROM table;
SELECT DISTINCT name1, DISTINCT name2 FROM table;
//榪斿洖涓嶉噸澶嶇殑鍊鹼紝姣忎釜DISTINCT鍙礋璐d竴涓垪鍚?br>
SELECT name1, name2 FROM table ORDER BY name1, name2
//鍏堟寜name1欏哄簭鎺掞紝鍐嶆寜name2欏哄簭鎺?br>
SELECT name1, name2 FROM table ORDER BY name1 ASC, name2 DESC;
//ASC鏄崌搴忔帓搴忥紝DESC鏄檷搴忔帓搴忥紝姣忎釜ASC/DEST鍙礋璐d竴涓垪鍚?br>
SELECT name FROM table WHERE name op value;
//AND銆丱R鍙皢WHERE涓涓潯浠剁粨鍚堣搗鏉ワ紙AND浼樺厛綰ф瘮OR澶э級
//op is = <> > >= < <= BETWEEN LIKE
SELECT name FROM table WHERE name LIKE ‘a%’;
//LIKE涓嬌鐢?/span>%錛堜換鎰忓瓧絎︼紝鍖呮嫭0涓瓧絎︼級鍜宊錛堜換鎰忓崟涓瓧絎︼級浣滀負閫氶厤絎?br>
SELECT name FROM table WHERE name IN (value1, value2, ….);
//鐢↖N鎴栬匩OT IN紜畾榪斿洖鐨刵ame鍦?/span>/涓嶅湪涔嬩腑錛屼篃鍙互浣跨敤SELECT瀛愬彞濡侷N (SELECT .......)
SELECT name FROM table WHERE name BETWEEN value AND value;
//BETWEEN…AND…鎴栬匩OT BETWEEN…AND…涔嬮棿鐨勬暟鍙互鏄暟鍊箋佹枃鏈紙瀛楀吀搴忥級鎴栬呮棩鏈熴傛瘡涓暟鎹簱瀵笲ETWEEN鐨勫鐞嗘槸鏈夊樊寮傜殑錛屽叿浣撲綋鐜板湪澶村熬鏄惁寮鍖洪棿鐨勯棶棰?br>
SELECT name AS othername FROM table;
SELECT name FROM table AS othertable;
//姣忎釜AS瀵瑰簲涓涓垪鍚嶆垨鑰呰〃鍚?br>
SELECT table1.name, table2.name FROM table1, table2 WHERE table1.name = table2.name;
SELECT table1.name FROM table1, table2 WHERE table1.name = table2.name AND table2.name = value;
//鍒╃敤涓婚敭鍜屽閿殑鑱旂郴榪涜澶氳〃涔嬮棿鐨勮仈鍚堟煡鎵?br>
SELECT table1.name, table2.name FROM table1 INNER JOIN table2 ON table1.key = table2.foreignkey;
//鍐呰繛鎺ワ紝鏌愯〃鐨勪富閿拰璇ヨ〃鍏鋒湁鐨勫叾浠栬〃鐨勫閿紝榪斿洖鍖歸厤鐨勮
SELECT table1.name, table2.name FROM table1 LEFT JOIN table2 ON table1.key = table2.foreignkey;
//榪斿洖table1鐨勬墍鏈夎錛屽嵆浣跨浜屼釜琛ㄦ病鏈夊尮閰嶇殑琛?br>
SELECT table1.name, table2.name FROM table1 RIGHT JOIN table2 ON table1.key = table2.foreignkey;
//榪斿洖table2鐨勬墍鏈夎錛屽嵆浣跨涓涓〃娌℃湁鍖歸厤鐨勮
SELECT name FROM table1
UNION
SELECT name FROM table2;
//浣跨敤UNION錛岃閫夊彇鐨勫垪鐨勬暟鎹被鍨嬪簲璇ユ槸鐩稿悓鐨勶紝涓斿彧鏈変笉鍚岀殑鍊間細琚夊彇
SELECT name FROM table1
UNION ALL
SELECT name FROM table2;
//UNION ALL浼氬垪鍑烘墍鏈夌殑鍊?/span>
INSERT INTO table VALUES (value1, value2,……);
INSERT INTO table (name1, name2,….) VALUES (value1, value2);
UPDATE table SET name = value WHERE name op value;
GROUP BY錛?br>
鍚堣鍑芥暟甯稿父闇瑕佹坊鍔燝ROUP BY鍔熻兘錛屼緥濡備嬌鐢⊿UM(name)灝遍渶瑕佷嬌鐢℅ROUP BY name鏉ヨ綆椼?br>
SELECT name, SUM(name) FROM table GROUP BY name;
HAVING錛?br>
WHERE鏃犳硶搴旂敤浜庡悎璁″嚱鏁版潯浠舵祴璇曪紝鎵浠ヤ嬌鐢℉AVING瀵瑰悎璁″嚱鏁拌繘琛屾祴璇曘?br>
SELECT name, SUM(name) FROM table GROUP BY name HAVING SUM(name) op value;
//HAVING涓嶹HERE涓鏍鳳紝鍙嬌鐢╫p銆?/span>AND/OR絳夊悇縐嶆搷浣?/span>
Aggregate鍚堣鍑芥暟錛?br>
璇ュ嚱鏁版搷浣滈潰鍚戜竴緋誨垪鐨勫鹼紝榪斿洖涓涓崟涓鐨勫箋傚鏋滃湪SELECT璇彞鐨勯」鐩垪琛ㄤ腑鐨勪紬澶氬叾浠栬〃杈懼紡涓嬌鐢⊿ELECT璇彞錛屽垯榪欎釜SELECT蹇呴』浣跨敤GROUP BY璇彞銆侫ccess鍜孲QL Server涓殑鍚堣鍑芥暟濡備笅錛?br>
AVG(name)錛氭煇鍒楀鉤鍧囧?br>
COUNT(name)錛氭煇鍒楄鏁幫紙涓嶅寘鎷琋ULL鍊鹼級
COUNT(*)錛氳閫夋昏鏁?br>
FIRST(name)錛氭寚瀹氬煙涓殑絎竴涓褰曠殑鍊鹼紙SQL Server 2000涓嶆敮鎸侊級
LAST(name)錛氭寚瀹氬煙涓殑鏈鍚庝竴涓褰曠殑鍊鹼紙SQL Server 2000涓嶆敮鎸侊級
MAX(name)錛氭煇鍒楁渶楂樺?br>
MIN(name)錛氭煇鍒楁渶浣庡?br>
SUM(name)錛氭煇鍒楁誨拰
Scalar鍑芥暟錛?br>
璇ュ嚱鏁伴潰鍚戝崟涓鐨勫鹼紝騫惰繑鍥炲熀浜庤緭鍏ュ肩殑涓涓崟涓鐨勫箋侫ccess涓殑Scalar鍑芥暟濡備笅錛?br>
UCASE(c)錛氬皢鏌愪釜鍩熻漿鎹負澶у啓
LCASE(C)錛氬皢鏌愪釜鍩熻漿鎹負灝忓啓
MIN(c, start[, end])錛氫粠鏌愪釜鏂囨湰閲屾彁鍙栧瓧絎?br>
LEN(c)錛氳繑鍥炴煇涓枃鏈煙鐨勯暱搴?br>
INSTR(c, char)錛氳繑鍥炴煇涓枃鏈煙涓寚瀹氬瓧絎︾殑浣嶇疆
LEFT(c, numer)錛氳繑鍥炴煇涓璇鋒眰鏂囨湰鍩熺殑宸︿晶閮ㄥ垎
RIGHT(c, numer)錛氳繑鍥炴煇涓璇鋒眰鏂囨湰鍩熺殑鍙充晶閮ㄥ垎
ROUND(c, decimals)錛氬鏌愪釜鏁板煎煙榪涜鎸囧畾灝忔暟浣嶆暟鐨勫洓鑸嶄簲鍏?br>
MOD(x, y)錛氳繑鍥為櫎娉曟搷浣滅殑浣欐暟
NOW()錛氳繑鍥炲綋鍓嶇郴緇熸棩鏈?br>
FORMAT(c, format)錛氭敼鍙樻煇涓煙鐨勬樉紺烘柟寮?/span>
涓嬮潰鏄竴浜涗笉甯哥敤鐨凷QL璇彞鍔熻兘錛屽彲浠ュ弬鑰冿細
INDEX錛氱儲寮曡鍒涘緩浜庡凡鏈夌殑琛ㄤ腑錛屽畠鍙嬌瀵硅鐨勫畾浣嶆洿鍔犲揩閫熸湁鏁堬紝鍙互鍦ㄨ〃鏍肩殑涓涓垨鑰呭涓垪涓婂垱寤虹儲寮曪紝姣忎釜绱㈠紩閮戒細琚搗涓悕瀛楋紝鐢ㄦ埛鏃犳硶鐪嬪埌绱㈠紩錛屽彧鑳借鐢ㄦ潵鍔犻熸煡璇€傛洿鏂頒竴涓寘鍚儲寮曠殑琛ㄩ渶瑕佹瘮鏇存柊涓涓病鏈夌儲寮曠殑琛ㄦ洿澶氱殑鏃墮棿錛岃繖鏄敱浜庣儲寮曟湰韜篃闇瑕佹洿鏂般傚洜姝わ紝寤鴻浠呭湪甯稿父鐢ㄤ簬鎼滅儲鐨勫垪涓婇潰鍒涘緩绱㈠紩銆?br>
CREATE UNIQUE INDEX indexname ON table (name1, name2);
//鍒涘緩涓涓敮涓鐨勭儲寮曪紝鍗充袱琛屼笉鑳芥湁鐩稿悓鐨勭儲寮曞?br>
CREATE INDEX indexname ON table (name1, name2);
//鍒涘緩涓涓畝鍗曠儲寮曪紝鍙互浣跨敤閲嶅鐨勫?br>
CREATE INDEX indexname ON table (name DESC);
//鐢―ESC鏉ラ檷搴忕儲寮曟煇涓垪鐨勫?br>
DROP INDEX indexname ON table;
//Access鍜孧S SQLJet鐨勫仛娉?br>
DROP INDEX table.indexname;
//MS SQL Server鐨勫仛娉?br>
DROP INDEX indexname;
//DB2鍜孫racle鐨勫仛娉?br>
ALTER TABLE table DROP INDEX indexname;
//MySQL鐨勫仛娉?/span>
SELECT name INTO newtable [IN ‘externaldatabase’] FROM table WHERE name op value;
鍒涘緩琛ㄧ殑澶囦喚澶嶄歡鎴栬呯敤浜庡璁板綍榪涜瀛樻。銆?br>
SELECT * INTO newtable [IN ‘externaldatabase’] FROM table;
SELECT name1, name2 INTO newtable [IN ‘externaldatabase’] FROM table;
SELECT name INTO newtable FROM table WHERE name op value;
SELECT name INTO newtable FROM table1 INNER JOIN table2 ON table1.key = table2.foreignkey;
]]>