1. 程式人生 > >操作DB~~對資料的增刪改查!!sql語句

操作DB~~對資料的增刪改查!!sql語句

對資料進行增刪改查: 這裡著重掌握查詢的各種條件

1)插入資料(增加資料):將元組插入到指定的表中。
這裡寫圖片描述

//插入單條記錄
insert into  表名(欄位名1,欄位名2....)values (值a1,值a2, .....);
//插入多條資料
insert into  表名(欄位名1,欄位名2....)values (值a1,值a2, .....), (值b1,值b2, .....),.....//插入子查詢的結果,注意這裡是沒有values的
insert into  表名1(欄位名1,欄位名2....select
欄位名1,欄位名2.... from 表名2//插入固定的某些資料 insert into 表名 set 欄位名1=1,欄位名2=2.....//欄位可以不用取全部的欄位,部分欄位也可以哦 insert into 表名(欄位名1,欄位名2....)values (值a1,值a2, .....);

備註:如果是插入欄位是全部子段的話,可以省略欄位部分

 insert into 表名 values(); ..........

例如:
這裡寫圖片描述
這裡寫圖片描述

1)刪除資料:

    delete from 表名 [where條件] [order排序] [limit限定];

備註:
3,order排序子句和limit限定子句,應用中通常不需要。
3.1 order排序子句用於設定刪除資料的先後順序。
3.2 limit限定子句用於限定在設定的順序情況下刪除指定的某些行。
擴充套件:(瞭解,不需要掌握也可以)
類似刪除語句truncate:
truncate [table] 表名;用於直接刪除整個表(結構)並重新建立該表。
1,刪除整個表(資料和結構都沒有了)
2,重新建立該表(全新表)。
3,跟delete 語句不帶where條件,有什麼區別?
主要影響的是類似:auto_increment這種型別的欄位值:
truncate結果會重新計算,delete還能繼續增長。
例題:


這裡寫圖片描述
這裡寫圖片描述
1)修改資料:

update 表名 set 欄位名1=值表示式1,欄位名2=值表示式2,....[where條件] [order排序] [limit限定];

備註:

1, where條件子句,在應用中,同樣幾乎都必須有,否則很可能就失去意義,類似delete
2order排序子句通常不需要,用於將要更新的資料指定更新的順序。
3,limit限定子句通常不需要,用於將要更新的資料的指定順序去更新部分(區域性)資料,比如:前500行。

擴充套件:複製表

複製表方法1:
create table tab2 like tab1; //複製結構了
insert into tab2 select * from tab1;    //複製資料,這種方法可以比較完整。
複製表方法2:
create table tab2 select * from tab1; //同時複製結構和資料,這種方法可能會丟一些結構資訊,比如:索引,約束,自增長屬性

例題:
這裡寫圖片描述
這裡寫圖片描述
1)查詢資料:

select [all | distinct] 欄位或表示式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句];

注意:這裡對錶或者欄位可以起別名,

語法: AS 別名 或者 空格 + 別名

這裡寫圖片描述

[all | distinct]
用於設定所select出來的資料是否允許出現重複行(完全相同的資料行)
all:允許出現——預設不寫就是All(允許的)。
distinct:不允許出現——就是所謂的“消除重複行”。


from子句

就是指定資料的來源,其實就是“表”,可以是一個表名,也可以是多個表——多表查詢了。

where子句
一個概念:where子句,相當於php或js中的if條件語句:其最終結果就是布林值(true/false)
1)where中可用的運算子:

    算術運算子: +  -  *  /   %
    比較運算子: >   >=   <    <=   =(等於)   <>(不等於)   
    ==(等於,mysql擴充套件),!=(不等於,mysql擴充套件)
    邏輯運算子: and(與)  or(或)   not(非)

2)空值的判斷方式:

判斷為null:   XX  is  null
判斷為非空:   XX  is  not  null

這裡寫圖片描述

3)between語法:

    XX  between1  and2;
    含義:欄位XX的值在值1和值2之間(含),相當於:XX >=值1 and XX<=值2

這裡寫圖片描述

4)in語法:

    XX  in (值1,值2.......);
    含義:XX等於其中所列出的任何一個值都算成立,相當於:
    XX =1  or XX =2  or  XX =2 
    注意:其中的值1通常是“直接值”,但也可以是後面要學習的“查詢結果值”

這裡寫圖片描述
5)like語法(模糊查詢):

    語法形式: XX like  ‘要查詢字元’;
    說明:
    1like語法(模糊查詢)用於對字元型別的欄位進行字元匹配查詢
    2,要查詢的字元中,有2個特殊含義的字元:
    2.1:  %   其含義是:代表任意個數的任意字元
    2.2:  _   其含義是:代表1個的任意字元
    2.3:這裡的字元,都是指現實中可見的一個“符號”,而不是位元組。
    3,實際應用中的模糊查詢,通常都是這樣:like ‘%關鍵字%’;

這裡寫圖片描述
這裡寫圖片描述
5)布林值的判斷方式:
這裡寫圖片描述

未完~~可以看下一篇“操作DB ~~對資料的增刪改查!!sql語句 (二)”