1. 程式人生 > 實用技巧 >lyt經典版MySQL基礎——DML語言-資料的插入、修改、刪除操作

lyt經典版MySQL基礎——DML語言-資料的插入、修改、刪除操作

  1 #DML語言
  2 /*
  3 資料操作語言
  4 插入:insert
  5 修改:update
  6 刪除:delete
  7 */
  8 
  9 #一、插入語句
 10 #方式一:
 11 /*
 12 語法:
 13 insert into 表名(列名,...) values(值1,...);
 14 
 15 */
 16 SELECT * FROM beauty;
 17 #1.插入的值的型別要與列的型別一致或相容
 18 INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id)
 19 VALUES
(13,'唐藝昕','','1990-04-23','18988888888',NULL,2); 20 21 #2.不可以為null的列必須插入值,可以為null的列如何插入值? 22 #方式一: 23 INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id) 24 VALUES(13,'唐藝昕','','1990-04-23','18988888888',NULL,2); 25 #方式二: 26 INSERT INTO beauty (id,NAME,sex,phone) 27 VALUES(15,'娜扎
','','18988888888'); 28 29 #3.列的順序可以調換 30 INSERT INTO beauty(NAME,sex,id,phone) 31 VALUES('蔣欣','',16,'110'); 32 33 #4.列數和值的個數必須一致 34 #5.可以省略列名,預設所有列,而且列的順序和表中列的順序一致 35 INSERT INTO beauty VALUES(18,'張飛','',NULL,'119',NULL,NULL); 36 37 #方式二: 38 /* 39 語法: 40 insert into 表名 41 set 列名=值,列名=值,...
42 */ 43 44 INSERT INTO beauty SET id=19,NAME='劉濤',phone='999'; 45 46 #兩種方式大PK 47 #1.方式一支援插入多行 48 INSERT INTO beauty 49 VALUES (23,'唐藝昕1','','1990-04-23','18988888888',NULL,2), 50 (24,'唐藝昕2','','1990-04-23','18988888888',NULL,2), 51 (25,'唐藝昕3','','1990-04-23','18988888888',NULL,2); 52 #2.方式一支援子查詢,方式二不支援 53 INSERT INTO beauty(id,NAME,phone) 54 SELECT 26,'宋茜','11809866'; 55 56 INSERT INTO beauty(id,NAME,phone) 57 SELECT id,boyName,'1234567' 58 FROM boys WHERE id<3; 59 60 #二、修改語句 61 /* 62 1.修改單表的記錄(√) 63 語法: 64 update 表名 set 列=新值,列=新值,... where 篩選條件; 65 66 2.修改多表的記錄【補充】 67 語法: 68 sql92語法: 69 update 表1 別名,表2 別名 70 set 列=值,... 71 where 連線條件 72 and 篩選條件; 73 74 sql99語法: 75 update 表1 別名 76 inner|left|right join 表2 別名 77 on 連線條件 78 set 列=值,... 79 where 篩選條件; 80 */ 81 82 #1.修改單表的記錄 83 #案例1:修改beauty表中姓唐的女神的電話為13899889988 84 SELECT * FROM beauty; 85 UPDATE beauty SET phone='13899889988' 86 WHERE NAME LIKE '唐%'; 87 #案例2:修改boys表中id號為2的名稱為張飛,魅力值10 88 UPDATE boys SET boyName='張飛',userCp='10' 89 WHERE id='2'; 90 SELECT * FROM boys; 91 92 #2.修改多表的記錄 93 #案例1:修改張無忌的女朋友的手機號為114 94 UPDATE boys bo 95 INNER JOIN beauty b ON bo.id=b.boyfriend_id 96 SET b.phone='114' 97 WHERE bo.boyName='張無忌'; 98 #案例2:修改沒有男朋友的女神的男朋友編號都為2號 99 UPDATE boys bo 100 RIGHT JOIN beauty b ON bo.id=b.boyfriend_id 101 SET b.boyfriend_id='2' 102 WHERE bo.id IS NULL; 103 104 #三、刪除語句 105 /* 106 方式一:delete 107 語法: 108 109 1.單表的刪除(√) 110 delete from 表名 where 篩選條件 111 2.多表的刪除【補充】 112 sql92語法: 113 delete 表1的別名,表2的別名 114 from 表1 別名,表2 別名 115 where 連線條件 116 and 篩選條件; 117 118 sql99語法: 119 delete 表1的別名,表2的別名 120 from 表1 別名 121 inner|left|right join 表2 別名 on 連線條件 122 where 篩選條件; 123 124 方式二:truncate 125 語法:truncate table 表名; 126 */ 127 128 #方式一:delete 129 #1.單表的刪除 130 #案例1:刪除手機號以9結尾的女神資訊 131 DELETE FROM beauty 132 WHERE phone LIKE '%9'; 133 SELECT * FROM beauty; 134 135 #2.多表的刪除 136 #案例:刪除張無忌的女朋友的資訊 137 DELETE b 138 FROM beauty b INNER JOIN boys bo ON b.boyfriend_id=bo.id 139 WHERE bo.boyName='張無忌'; 140 SELECT * FROM beauty; 141 #案例:刪除黃曉明的資訊以及他女朋友的資訊 142 DELETE b,bo 143 FROM beauty b INNER JOIN boys bo ON b.boyfriend_id=bo.id 144 WHERE bo.boyName='黃曉明'; 145 SELECT * FROM beauty; 146 SELECT * FROM boys; 147 148 #方式二:truncate語句 149 #案例:將魅力值>100的男神資訊刪除 150 TRUNCATE TABLE boys; 151 152 #delete PK truncate【面試題√】 153 /* 154 1.delete可以加where條件,truncate不能加 155 2.truncate刪除,效率高一丟丟 156 3.假如要刪除的表中有自增長列,如果用delete刪除後,再插入資料,自增長列的值 157 從斷點開始,而truncate刪除後,再插入資料,自增長列的值從1開始。 158 4.truncate刪除沒有返回值,delete刪除有返回值 159 5.truncate刪除不能回滾,delete刪除可以回滾。 160 */ 161 162 SELECT * FROM boys; 163 DELETE FROM boys; 164 TRUNCATE boys; 165 INSERT INTO boys(boyName,userCP) 166 VALUES('張飛',100),('劉備',100),('關雲長',100);