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 顯示當前伺服...