1. 程式人生 > >MySQL(四):操作資料表中的記錄

MySQL(四):操作資料表中的記錄

新增記錄

語句:INSERT  [INTO(可省略)]  表名   [(可省略)列名1,列名2,..]   {VALUES | VALUE} (列1的值,列2的值,列3...)

如果不寫列名則預設為所有列新增記錄

如果有自動編號約束的列,可以填空值:null ,也可以使用DEFAULT

也可以使用表示式,至於表示式內容,可以自由發揮,可以呼叫其他表的值

 

新增多條記錄,用逗號隔開就行,例子如下:

呼叫md5演算法:

第二種方法:

 

第三種方法:

該方法為將查詢結果插入指定表中,其實就是複製其他表的記錄到指定表

更新記錄

批量修改記錄

當寫入記錄時,有部分欄位出錯,或者想修改某欄位記錄,可以使用表更新語句

UPDATE  LOW_PRIORITY(翻譯:低優先順序) IGNORE(翻譯:忽略)  參考表  SET  列名1=值或表示式 ,列名2=..,WHERE 條件值;

 

下面例子為更新users表中的age列所有的欄位值,注意,沒加條件,所以所有age列的欄位都被修改了

其實可以將該命令理解為用於修改多個欄位的值.

UPDATE users SET age=age+5;

使用條件語句,編號為偶數的記錄所有age欄位+10;

刪除記錄(單表刪除)

也就是批量刪除記錄

如果不寫條件,則刪除表內所有記錄

刪除id為6的記錄例子:

查詢記錄

SELECT [表示式1],[表示式2],...

[WHERE 條件表示式]

[GROUP BY  {列名 | 列位置} [ASC(從小到大排序) | DESC(與ASC相反) ],]

[HAVING(與where效果相同,原理不同) 條件表示式]

[ORDER BY(排序){列名 | 表示式 |position(翻譯:列位置)}[ASC | DESC ]]

[LIMIT(翻譯:極限) {[偏移值,] row_count | row_count OFFSET(偏移) 偏移值}]

 

可以簡化為這樣:

SELECT 表示式;

查詢例子:

該例子也說明語句執行順序是以列的填寫順序為準

如果要同時查兩個表的同名列,可以用表呼叫列的方式書寫,比如下面例子:

與Java物件呼叫方法一模一樣的寫法

其實還可以給查詢結果起別名,例子如下:

但並不會影響原本的列名:

使用別名時,不一定要用AS關鍵詞,但是不用AS關鍵詞容易出現以下情況:

usersname作為id的別名,這裡查詢的實際是id列的值.

容易導致查詢列a時,列名卻是b,也就是,容易混淆.

 

分組查詢

 SELECT 查詢列 FROM 表名 GROUP BY 指定列

其實也就是將每種結果都列出一個,具體看例子:

比如查詢性別


分組條件

還可以設定分組條件,用HAVING語句,但條件值必須為查詢的列之一或聚合函式(某些計算公式,比如最大值最小值)

例子如下:

SELECT 列名 FROM 表名 GROUP BY 列名 HAVING 列名 | 表示式  運算子 值;

圖中命令意譯為:查詢users表中的sex,age列,並只顯示age>35的值

 

查詢結果排序

對查詢結果進行排序,使用order by語句

ORDER BY  列名 | 表示式  | 位置     ASC | DESC ;       /ASC為升序   DESC 為降序

以ID降序為例子如下:

類似於功能組合,可以用於分組查詢中

如果有相同數值的記錄出現,可以指定按照兩個列來排序,同時檢查兩個欄位的值是否符合規則

如下:

限制查詢結果的返回數量

如果只填一個數字,則預設從1開始返回例子如下

返回2條記錄,例子:

 

但如果填寫了兩個數字則要從0開始數

返回第4-5條記錄

例子如下:

其實當填寫一個數值的時候相當於填 LIMIT 0,x

格式: LIMIT 索引起始位置,顯示數量;

配合升降排序

例子如下:

之前寫的第三種插入記錄方法

 

INSERT  被新增記錄的表 (要新增記錄的列)   SELECT 查詢的列  FROM 來自哪個表  條件  條件值(公式) ;

 

要注意的是查詢的欄位與被插入記錄的表的欄位要相同

例子如下:

建立一個只有2個欄位的表,注意這裡id設為自動編號了,就算設定為自動編號,新增查詢結果時也要指定新增到哪列,否則會預設為給所有列新增記錄

現在從users表中將欄位新增進test2表

本章節到此結束,下面為另一個聽講師講課的筆記.

 

 

本章講的是對於表的查詢,也就是查詢資料_表內的列

 

最簡單的查詢列

要查詢多個列,用逗號將列名隔開就行.

 

先寫查詢哪列,再填哪個表

之前也講過資料庫的結構:列在表下面,表在庫下面

類似於報家裡地址時,先說門牌號,再說哪個地區

 

去重查詢

 

去掉重複的查詢結果

具體例子:現在有5樣商品,有2件屬於同一品牌,另外三件也屬於同一品牌

現在要查有多少個牌子,如果不去重,那會將所有商品都打印出來

數學運算查詢

SELECT該命令有計算器的作用...可以將查詢結果進行數學運算

具體使用方法為 SELECT 列名1,列名2,列名1*列名2 FROM 表名

例子:

順便講一個別名的知識點

加AS可以改變顯示列的名稱,這叫起別名

起別名的規則