1. 程式人生 > >mysql簡單增刪改查(CRUD)

mysql簡單增刪改查(CRUD)

into 數量 分組 varchar 就會 不能 strong unsigned avi

先描述一下查看表中所有記錄的語句以便查看所做的操作(以下所有語句建議自己敲,不要復制以免出錯):

    user表,字段有 id, name,age,sex;id為主鍵,自增,插入時可以寫 NULL 或者 DEFAULT;

    以下實列都以user表為列;

    CREATE TABLE user(

  -> id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> name VARCHAR(20),
    -> age INT,
    -> sex VARCHAR(10)
    -> );

   SELECT * FROM 表名;列如:SELECT * FROM user;(語句不區分大小寫,規範約定為關鍵字大寫,小寫也可以,不過盡量遵守規範)

1、插入數據:

  (1)INSERT INTO 表名 VALUES(,,,,,); INTO 可省略

  則 : INSERT user VALUES(NULL,“張三” ,18,“男”);

  此時插入數據必須與字段對應,而且字段不能少

  無法插入漢字時,需要修改表的字符集:

  ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  (2)插入多條記錄時,以逗號分隔:

   INSERT user VALUES(NULL,“張三” ,18,“男”),(NULL,“李四” ,20,“男”)

  (3)可以選擇插入的字段:這種只能插入一條數據

   INSERT user SET name=‘zhangsan‘,age=20;

  (4)選擇字段並插入多條數據,以逗號分隔

   INSERT user(name,age) VALUES(‘zhangsan1‘,20),(‘張三‘,30);

2、更新數據

  UPDATE 表名 SET 修改的操作 (WHERE 條件

);

  (1)更新user表,讓年齡在原有基礎上加5;(沒加條件,對所有數據修改)

    UPDATE user SET age = age+5;

  (2)更新user表,讓年齡在原有基礎上加5,並且姓名後面全都加上字符"HELLO"

    UPDATE user SET age=age+5,name=name+"HELLO";

  (3)對id為偶數的記錄年齡加20,此時就不能對所有數據做操作,加上限定條件,只對id為偶數的年齡加20,id除以2的余數為0,則為偶數。

    UPDATE user SET age=age+20 WHERE id%2=0;

3、刪除數據

  DELETE FROM 表名 (WHERE 條件)

  (1)刪除id為1的數據記錄

  DELETE FROM user WHERE id=1;

  (2)刪除name是張三的記錄,就會刪除所有姓名為張三的記錄

  DELETE FROM user WHERE name=‘張三‘;

4、查詢數據(重點)

  (1)查詢user表所有列的數據:

    SELECT * FROM user;

  (2)查詢id和name這兩列的數據:

    SELECT id,name FROM user;

  (3)查詢時指定表名.字段名,為了避免查詢多張具有相同字段名的表:

    SELECT user.id,user.name FROM user;

  (4)為表或字段起別名,為了避免名特別長的情況需要頻繁輸入,AS 後面就是別名,AS也可省略:

    SELECT u.id,u.name FROM user AS u;

  (5)GROUP BY 按字段名的值分組,按性別,性別只有男、女或者為NULL,name就會查到性別為男的第一條數據,性別為女的第一條,以及性別顯示為NULL的

    SELECT * FROM user GROUP BY sex;

(6)在GROUP BY之後還可以加上HAVING條件:id大於3的按性別分組:

    SELECT * FROM user GROUP BY sex HAVING id>3;

    HAVING 後面的id必須出現在查詢的字段中,否則會報錯:

    SELECT name FROM user GROUP BY sex HAVING id>3;(錯誤的,可以改為如下)

    SELECT name,id FROM user GROUP BY sex HAVING id>3;

  (7)ORDER BY按條件排序,DESC 降序,默認ASC升序,以下按id降序排列

    SELECT * FROM user ORDER BY id DESC;

  (8)ORDER BY可以多條件排序,當第一個條件無法排序時,按第二個條件排序:按age默認升序排,當出現兩個age一樣的時候,按id降序排列

    SELECT * FROM user ORDER BY age,id DESC;

  (9)LIMIT語句限制輸出的語句數量:

    ,從第0個開始顯示,顯示2個

    SELECT * FROM user LIMIT 2;等價於:SELECT * FROM user LIMIT 0,2;

    與ORDER BY 結合使用:顯示升序排列的前4條數據

    SELECT * FROM user ORDER BY age LIMIT 4;

  (10)將查詢結果插入到另一張表,重新創建一個表tb1只有name和id字段:

    CREATE TABLE tb1(

      id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(20));

    將查詢到的年齡大於10的name列數據插入到tb1表中:

      查詢到的結果字段必須與插入表中的字段數一樣,不能查詢到多個字段插入到一個字段中:

      INSERT tb1(name) SELECT * FROM user WHERE age>10;(錯誤的)*查詢到的字段是所有

      INSERT tb1(name) SELECT name FROM user WHERE age>10;(正確的)

mysql簡單增刪改查(CRUD)