(三十六)表操做

1.插入數據----INSERT <INTO>mysql

  1INSERT  INTO  表名(字段1,字段2....) VALUES(值1,值2....);正則表達式

      按照指定的字段插入數據,值要與前面的字段一一對應。sql

(2)INSERT  INTO  表名 VALUES(1,值2,值3....n)函數

     前面不知地你那個字段,那麼後面就要按照表中字段依次插入數據。post

(3)插入多條數據spa

     INSERT  INTO 表名 VALUES排序

(1,值2,值3,....,值n)it

(1,值2,值3,....,值n)class

(1,值2,值3,....,值n)基礎

(1,值2,值3,....,值n)

(4)插入查詢結果

     INSERT  INTO  1 (字段1,字段2,字段3....,字段n

SELECT T字段1,字段2,字段3....,字段n  FROM 2 WHERE........;

2.更新(修改)數據-----UPDATE

   UPDATE SET 字段1=1

                  字段2=2

WHERE  條件;

 3.刪除數據----DELETE

(1) DELETE  FROM 表  WHERE 條件;

#根據條件刪除某一條記錄

(2) DELETE  FROM 表 ;

#刪除整個表中數據,可是會保留下id記錄,下次再插入數據時,會從原來的id基礎上繼續添加。

(3) DROP 表;

刪除掉所有的數據與(2)中的刪除不同,這個會刪除掉全部的數據,下次再插入數據時,id會從1開始。

 

4.查詢

  from  找到表:from

where:拿着where指定的約束條件,去文件/表中取出一條條記錄

group by:將取出的一條條記錄進行分組group by,若是沒有group by,則總體做爲一組

having:將分組的結果進行having過濾

select:執行select

distinct:去重

order by:將結果按條件排序:order by

limit:限制結果的顯示條數

 

   SELECT distinct 字段1,字段2... FROM 庫名.表名 #from後面是說從庫的某個表中去找數據,mysql會去找到這個庫對應的文件夾下去找到你表名對應的那個數據文件,找不到就直接報錯了,找到了就繼續後面的操做                  WHERE 條件       #從表中找符合條件的數據記錄,where後面跟的是你的查詢條件

                  GROUP BY field(字段)   #分組

                  HAVING 篩選      #過濾,過濾以後執行select後面的字段篩選,就是說我要肯定一下須要哪一個字段的數據,你查詢的字段數據進行去重,而後在進行下面的操做

                  ORDER BY field(字段)   #將結果按照後面的字段進行排序

                  LIMIT 限制條數    #將最後的結果加一個限制條數,就是說我要過濾或者說限制查詢出來

 

 

5.WHERE約束

(1) 比較運算符: > <>=<=<>!=

(2) between 1 and 2: 取值1和值2範圍內的值。

(3) in (1,值2,值3....,值n)

(4) like ‘xxx%’%能夠放在結尾,也能夠放在開始,表示任意多的字符;

     like ’x_’:一個下劃線表明一個字符。

(5) 邏輯運算符:and or not

6.分組查詢:GROUP BY

(1)分組發生在where以後,是基於where以後獲得的記錄而進行的。

(2)將全部記錄按照某個相同字段進行歸類。

(3)分組是爲了來統計一些數據或者進行一些計算。

(4)xxxxxx  GROUP  BY  字段;

7.聚合函數

假設employee是職工表,裏面有字段depart_id等。

SELECT COUNT(*) FROM employee;  #count是統計個數用的

    SELECT COUNT(*) FROM employee WHERE depart_id=1;  #後面跟where條件的意思是統計一下知足depart_id=1這個的全部記錄的個數

    SELECT MAX(salary) FROM employee;  #max()統計分組後每組的最大值,這裏沒有寫group by,那麼就是統計整個表中全部記錄中薪資最大的,薪資的值

    SELECT MIN(salary) FROM employee;

    SELECT AVG(salary) FROM employee;

    SELECT SUM(salary) FROM employee;

SELECT SUM(salary) FROM employee WHERE depart_id=3;

 

8.HAVING過濾

    having的語法格式和where是如出一轍的,只不過having是在分組以後進行的進一步的過濾,where不能使用聚合函數,having是能夠使用聚合函數的
#!!!執行優先級從高到低:where > group by > having

#1. Where 發生在分組group by以前,於是Where中能夠有任意字段,可是絕對不能使用聚合函數。

#2. Having發生在分組group by以後,於是Having中能夠使用分組的字段,沒法直接取到其餘字段,having是能夠使用聚合函數

 

9.去重

將查詢的結果進行去重:select distinct post from employee; 注意distinct去重要寫在查詢字段的前面,否則會報錯

10.OBDER BY

SELECT * FROM employee ORDER BY salary; #默認是升序排列

    SELECT * FROM employee ORDER BY salary ASC; #升序

    SELECT * FROM employee ORDER BY salary DESC; #降序

11.使用正則表達式查詢

#以前咱們用like作模糊匹配,只有%_,侷限性比較強,因此如今能夠考慮用正則
SELECT * FROM employee WHERE name REGEXP '^ale';

SELECT * FROM employee WHERE name REGEXP 'on$';

SELECT * FROM employee WHERE name REGEXP 'm{2}';

相關文章
相關標籤/搜索