MySQL基礎語法

2022-09-11 08:36:11 字數 3244 閱讀 4895

1.檢索不同的值

select distinct colname

distinct作用於所有的列,所以在多列情況下只有完全相同才會被忽略輸出

2.限制輸出行

select * from.. limit a, b

輸出第b行到第b+a-1行,是從第0行開始計數的

3.使用  --注釋

或#注釋

或/*。。注釋。。*/

4.order by需要時最後一條語句

預設增序排列 order by colname desc,  #desc只應用到其前面出現的列名排序

可按照多列進行排序

5.where

可以使用between a and b

in(a,b,c)   not in...

6.萬用字元

where colname like 'fish%'   #匹配以fish開頭的任意詞

『%fish%' #匹配任意包含fish的詞

』f%h'      # 匹配f開頭h結尾的詞

下劃線與%類似,但只匹配單個字元

[ ]用來指定乙個字符集,它必須匹配指定位置的乙個字元  [jm]%  #匹配j或m開頭的詞

[^jm]%  #不匹配j或m開頭的詞

7.拼接字串字段使用||符號

8.函式

upper()函式轉化字元為大寫

datepart('year',daten)返回daten的年份資料

current_date()獲取當前時間

abs cos exp pi sin sqrt tan

9.聚集函式

**g count min max sum

**g忽略null,count(*)計及null,count(colname)忽略null

10.資料分組與彙總

group by 進行分組,如果有多個列名,將在最後乙個列名處進行彙總

group by 子句必須出現在where子句之後,order by 子句之前

where過濾行,h**ing 過濾分組,組合使用時先過濾行再進行分組彙總,再過濾分組

一般在使用group by子句時也搭配使用order by,不要依賴與group by 排序

子句順序:select from where group by h**ing order by

11.where 條件中巢狀子查詢語句就是子查詢,子查詢效率不高

12.聯結表

除了內聯結外,還有外聯結(包括左右聯結和全外聯結full outer join)和自聯結(自聯結指通過別名聯結兩個相同的表)

標準聯結不去除聯結後重複的列,自然聯結去除相同的列

13.union將兩個查詢結果進行拼接,沒什麼實際用處

14.插入表

insert into tablename value(...)

可以在tablename(新增列名),這樣即使表的結構改變,該插入語句也能正確執行,value與列名一一對應。

要將乙個表的內容複製到乙個全新的表,可以使用 select * into newtable from oldtable

或create table newtable as select * from oldtable

15.更新表

update tablename set colname='...' where ...

16.刪除行

delete from tablename where ...

在建立表時定義外來鍵可以防止刪除某個關係需要用到的行,外來鍵即某個被其它表所需的列

truncate tablename 刪除表中所有行

drop table 刪除整個表

17.建立表

create table tablename(colname  int not null,...)

允許null的列不能作為主鍵;指定預設值使用default value,

18.更新表列

alter table add/drop colname

19.檢視

檢視用於重用sql語句,使用表的一部分而不是整個表,因此還可以授予使用者訪問表的特定部分的許可權。

create view viewname as ...執行包含view的查詢語句時將把附加的where子句新增到檢視的where子句中

20.儲存過程的作用是建立批處理語句,類似於函式功能:

create procedure name (引數輸入或輸出)

is...

begin;

end;

執行:exec name(引數)

21.事務處理

通過事務處理,確保成批的sql操作要麼完全執行,要麼完全不執行,來維護資料庫的完整性。

事務指一組sql語句,回退指撤銷指定sql語句的過程,提交指將未儲存的sql語句結果寫入資料庫表。保留點指事務處理中設定的臨時佔位符,可以對它發布回退。

begin transaction

...commit transaction

中間的sql語句為事務

rollback用於撤銷上一條語句

s**epoint用於保留

22.游標是乙個儲存在dbms伺服器上的資料庫查詢,在儲存了游標之後,應用程式可以根據需要滾動或瀏覽其中的資料。

建立:declare name cursor for ...

fetch檢索游標的當前行

23.約束

管理如何插入或處理資料庫資料的規則

主鍵約束:primary key,每個表只允許乙個主鍵

外來鍵約束:外來鍵必須是另乙個表的主鍵 references tablename(colname)

add constraint foreign key (colname) references tablename(colname)

唯一約束:值唯一,但可以更新和復用

檢查約束:check(quantity>0)加入了條件,在插入新行時會檢查

24.索引

加快搜尋和排序操作的速度。可以在乙個或多個列上定義索引,索引改善了檢索操作的效能,但降低了資料插入/修改和刪除的效能。

create index name on tablename(colname)

25.觸發器

觸發器是特殊的儲存過程,它在特定過的資料庫活動發生時自動執行,觸發器可以與特定表上的insert/delete/update操作或組合操作相關聯。

與儲存過程不一樣,觸發器只與單個的表相關聯

例子:

mysql基礎語法演示 mysql基礎語法

1 ddl 增刪改查 1 select 獲取資料 select from 表名 where 條件 2 update 更新資料 update 表名 set 欄位名 值,欄位名 值 where 條件 3 delete 刪除資料 delete from 表名 where 條件 4 insert into ...

mysql 語法入門 mysql基礎語法

1 dml 增刪改查 1 select 獲取資料 select from 表名 where 條件 2 update 更新資料 update 表名 set 欄位名 值,欄位名 值 where 條件 3 delete 刪除資料 delete from 表名 where 條件 4 insert into ...

mysql基礎語法

連線伺服器 mysql h host u user p 連線伺服器 建立資料庫 show databases 顯示當前伺服器上有什麼伺服器 use databasename 選擇資料庫 create database databasename 建立資料庫 建立表 show tables 顯示當前伺服...