資料庫的基本操作
1.建立資料庫:Crete database 資料庫名稱;
在建立資料庫表之前,使用use 資料庫名稱m;之後建立資料庫。
2.建立資料庫表:create table 表名(欄位名稱資料型態限制條件);
3.檢視資料表結構:desc 表格名稱; 和show create table 表名\g
4 .約束條件;主鍵約束 primary key
非空白約束 not null
唯一約束 unique
預設約束 default.## 修改屬性值的修改表名表alter table 表名rename 新表名
修改欄位名稱 alter table 表名modify 字段名位元資料型別
新增欄位 alter table 表位元add 欄位名稱資料型別限制條件firsT/after 欄位名稱
刪除欄位 alter table 表名drop 欄位名## 總結:對錶結構的修改:alter table 表名modify 等等;
資料型別與運算子
資料型別:字串型,數值型,日期時間型
1.整數;tinyint smallint mediumint int bigint.
2.浮點型;float DOUBLE decimal.
3.日期時間型;year time date datetime timestamp.
4.文字字串;char varchar tinytxet text mediumtext longtext enum set .##mysql函數函數
mysql函數函數
mysql函數” ##abs() sqrt() ceil() ceiling() floor() rand() round()
查詢資料和插入更新刪除
建立資料庫表:create database 資料庫名稱;
開啟資料庫: use 資料庫名稱;
新資料表:create 資料表名稱(欄位名稱資料型別);
{
資料型別: 字串型,數值型,日期時間型
1.整數;tinyint smallint mediumint int bigint.
2.浮點型;float DOUBLE decimal.
3.日期時間型;year time date datetime timestamp.
4.文字字串;char varchar tinytxet text medtextp.#text medtexts 長度。 .
約束條件:主鍵 primary key
唯一主鍵 unique
非空約束 not null
預設約束default 預設值
##非空白約束 not null
約束主鍵欄位;
屬性值自增 auto_increment
檢視資料表結構:desc 表名
表 資料表 化名稱為修改資料表名表名# 修改欄位名稱 alter table 表名change 欄位名稱新欄位名稱資料型別
alter table 表名change 欄位名稱新欄位名稱資料型別
資料類型 alter table 欄位名
刪除欄位alter table 表名 drop 欄位名稱
更改表的儲存引擎名稱 系統名詞化鍵名鍵 系統名稱鍵基本查詢資料select欄位名稱from 表名(where
排連結查詢 內連結 select 欄位名稱from 表名1 inner join 表名2 on 表名1.字段=表名2.字段;
左連接 select 字段名from 表名1 left outer join 表名2 on 表名1.字段=表名2.字段;
lectselect select selecton 表名表名1 right outer join 表名2 on 表名1.字段=表名2.字段;
* 左連接就是所要查詢的字段結果包含所有左表的字段
子查詢(嵌套查詢) ( any(some)
all
exists (exists 和條件式一起使用,如果exists後面的查詢語句傳回至少一筆記錄,
則exists結果為ture 此時外層查詢語句將進行查詢,not exists 與之相反。)
in )
合併查詢結果select 欄位名稱from 表名查詢條件union(all)select 欄位名稱from 表名查詢條件
注意:兩個表對應的列數和欄位名稱必須相等。不使用all,結果刪除重複的記錄。
]
}
插入資料表:insert into 表名(欄位名稱)values(所要插入的資料);
更新資料:updata 資料表名稱set 欄位=值條件;
刪除資料:delete from 表名條件;
索引
優點:建立唯一索引,確保資料庫表的每一行資料的唯一性,大幅加快查詢速度,在事項資料的參考完整性方面,可以加速表和表之間的連接
在使用分組和排序字句進行資料查詢,也可以減少查詢中分組和排序的時間。
普通索引 index(欄位名稱):最基本的索引類型,沒有唯一性的限制,只是為了加快資料的存取速度
唯一索引 unique idenx 索引名(欄位)索引值必須是唯一的,但允許有空值,減少查詢縮影操作的執行時間,尤其是對龐大的資料表。
單列索引 一個表可以有多個索引
組合索引 多個欄位上建立索引,查詢時遵循最左前綴,只有查詢符合這樣的最左前綴時才能使用索引
全文索引 fulltext可用於全文搜索,只用MYISAM儲存引擎支援fulltext 索引並且只為char varchar text
空間索引 spatial 必須在MYISAM類型的表中創建,且空間類型的欄位必須為空,
#在已經存在的表上建立索引
alter table 表名add index 索引名(欄位名稱(索引長度))
create index 索引名on 表名(欄位名稱);
alter table表名drop index 索引名;
drop index 索引名on 表名
建立預存程序和函數
create procedure 預存程序的名稱()begin 儲存程序體end;
每次呼叫都會執行儲存過程體。
建立儲存函數
create 儲存函數名稱(參數清單)
returns 傳回值類型
return (函數本體);
變數的使用
定義變數:declare 變數名變數類型default 預設值;
為變數賦值:set 變數名稱=值;
遊標的使用
宣告遊標:declare 名稱cursor for for 查詢語句;
開啟遊標:open 名稱;
使用遊標:fetch 名稱into 將遊標中查詢出的結果存入改參數中;
關閉遊標;close 名稱;
流程控制的使用(case loop leave iterate repeat while )
呼叫預存程序:call 名稱(參數);
呼叫儲存函數:select名稱(參數);
檢視
檢視的意義:視圖是虛擬表,是從資料庫中一個或多個表中匯出的表,
create [or replace] view 視圖名稱as select語句
create view 視圖名稱(自己定義的列名)as select語句
desc 視窗名稱;
show create view 檢視名稱\G
show table status like '檢視名稱'\G
修改檢視和建立檢視是相同的。
alter view 視圖名稱as select語句
updata 視圖名稱set 欄位=值;
刪除檢視drop view if exists 檢視名稱;
## MYMYSQL觸發器
和預存程序一樣,都是嵌入到mysql的一段程序,觸發器是由時間來觸發某個操作,這些事件包括insert update delete
創建觸發器
創建只有一個執行語句的觸發器
create trigger 觸發器名稱標識觸發時機(before/after )標識觸發事件(insert update delete)on標識觸發器的表名for each 觸發器執行語句;
以上是MYSQL的學習筆記的詳細內容。更多資訊請關注PHP中文網其他相關文章!