MySQL約束and增刪查改

2021-10-09 02:12:48 字數 2441 閱讀 5718

表的約束:

定義的乙個欄位的時候,[欄位名稱+欄位型別];表的約束是在約束插入資料的時候,每乙個欄位的條件;

1、空屬性:null(可以為null), & not null(不可以為null)

表示當前字段值是否可以為null

2、預設值:給定義預設屬性的字段插入資料的時候,當沒有插入資料的時候,自動加入定義的預設值;

3、列描述:對字段的內容並沒有約束,而是相當於每乙個欄位的注釋資訊(log資訊);

4、主鍵:

primary key

主鍵並不是開闢了乙個新的列,而是給某一列給設定了乙個屬性,該屬性該約束當前欄位的內容不能重複,不能為null

一張表中只能有乙個主鍵;

主鍵可以唯一標識一行資料;

5、zerofill :約束了資料的寬度,如果資料的寬度不夠,則用0進行填充;

6、唯一鍵約束

關鍵字:unique,也是給某個字段設定乙個屬性,該屬性設定欄位的內容,設定字段內容不可以重複但是可以為null;

主鍵比唯一鍵多了乙個約束字段內容,不可以為null,但是一張表可以有多個unique

7、外來鍵:

定義了主表和從表的關係

主表一般存放的是基礎屬性,例如班級屬性;

從表:存放具體業務資訊;

主表當中被其他從表認為是外來鍵的字段,必須是主鍵約束或者唯一鍵約束的字段,原因是資料不能重複;

foreign key [從表字段名稱] references [主表字段名稱] ;

表的增刪查改:

1、replace into [tablename] [feildname] values ([字段對應的值] , [字段對應的值],)

注意:如果替換的資料不存在主鍵或者唯一鍵衝突,表的資料沒有衝突,則插入一行資料

表當中有衝突的資料,則刪除之後再插入;

注意:對於一些在插入資料的時候,是整形插入,但是後期有可能需要進行計算(增刪查改)的資料,在定義欄位的型別的時候,盡量定義為浮點數(float,double,decimal) ;

2、查詢

1)全列查詢

slect * from tablename ;

「*」:當前表的所有列;

注意:對於字段比較少的表並且插入資料比較少的表可以使用全列查詢,查詢的效率不會受到太大的影響;

但是 ,如果乙個表中的字段比較多,或者數量比較大,則全列查詢會導致查詢的效率降低 ;

2)指定列查詢

slect [欄位名稱] ,[欄位名稱] from [表名稱] ;

3) 查詢的時候,表示式當中包含乙個字段

select [欄位名稱] , [欄位名稱] , [表示式[欄位名稱]] from [表名稱] ;

4) 去重

關鍵字:distinct

select distinct * zongfen from tablename ;

以上就是全列或者指定列資料查詢,前面的sql語句特點:查詢表中所有行的資料;

下面:在全列和指定列上查詢資料,可以指定只查詢某個具體行的資料,或者具體滿足某個條件的資料;

查詢的時候,可以加上約束條件,來約束查詢結果,滿足結果的資料才輸出;

關鍵字:where 條件:對查村結果進行約束

where 字句:where [欄位名稱]欄位名稱][比較值];

eg : where yingyu < 60 ;

,>=,<,<=符號,使用方式一致;

orand

匹配字串的時候:

模糊查詢:需要搭配like共同使用;

「-」 : 嚴格匹配任意的乙個字串;

「%」:可以匹配任意多個字元;

null查詢:

is not:不是***

=和<=> :都是表示等於的運算子

區別:=在資料庫查詢的時候並不是安全的,空和空並不是相等的;

空和空使用"="進行比較的時候,還是null;

<=> "在資料庫查詢的時候是安全的,空和空進行比較的時候為1 ;

對查詢結果進行排序:

關鍵字:order by [欄位名稱]

規則:按照order by 後面的字段的內容進行排序,將結果輸出

預設的順序公升序asc,降序為desc,直接將公升降序關鍵字加到語句的後面;

注意:返回的排序的順序是未定的,所以在實際的應用當中,不要依賴排序結果,排序根據插入情況動態變化;

篩選分頁結果:

方式1:limit n :從0開始,篩選n條結果;

方式2:limit s , n :從s開始,篩選n個結果;

方式3:limit n offset s :從s開始篩選n個結果;

update:更新表資料

update [tablename] set [字段] = [更改後的值] where 約束條件 ;(對所有的刪除改動不加約束條件都是對所有的資料進行更改,及其危險) ;

注意:更改一行資料的時候,一定要加條件,否則就全表更新;

MySQL 增刪查改

目錄2 insert 3 update 4 delete 5 更新和刪除的指導原則 此語句使用select語句檢索單個列。limit 5指示 mysql 返回不多於 5 行。select prod name from products limit 5,5 limit 5,5指示mysql返回從行 5...

MySQL 增刪查改

create table ceshi1 uid varchar 50 primary key,pwd varchar 50 name varchar 50 1.最後一列不寫逗號 2.多條語句一起執行 分號分開 3.符號 英文狀態 1.主鍵 primary key 2.非空 not null 3.自增...

mysql增刪查改

語法 insert into 表名 欄位名1,欄位名2,values 值1,值2,舉例 insert into student id,name,grade values 1,zhangshan 98 若不指定欄位名,則新增的值的順序應和字段在表中的順序完全一致。語法 insert into 表名 v...