操作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
2,order排序子句通常不需要,用於將要更新的資料指定更新的順序。
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 between 值1 and 值2;
含義:欄位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 ‘要查詢字元’;
說明:
1,like語法(模糊查詢)用於對字元型別的欄位進行字元匹配查詢
2,要查詢的字元中,有2個特殊含義的字元:
2.1: % 其含義是:代表任意個數的任意字元
2.2: _ 其含義是:代表1個的任意字元
2.3:這裡的字元,都是指現實中可見的一個“符號”,而不是位元組。
3,實際應用中的模糊查詢,通常都是這樣:like ‘%關鍵字%’;
5)布林值的判斷方式:
未完~~可以看下一篇“操作DB ~~對資料的增刪改查!!sql語句 (二)”