一、視圖:
1、視圖的定義:視圖是物理表的映射結果,物理表變化,視圖肯定變化。
create view v_name as select 列名(也可以是函數計算出來的結果如 avg()) from 表;
2、視圖的作用:
2.1、權限控制
比如某幾列,允許用戶查詢,其它列不允許。
可以通過視圖開放其中一列或者幾列,起到權限控制的作用。
如商品表中的進貨價格、進貨商等重要信息,一般用戶是不能看到的。
2.2、簡化復雜的查詢語句。
3、視圖能否更新、刪除、添加?
如果view的每一行與物理表一一對應,則可以,視圖變化物理表變化。
如果view的行是由物理表多行經過計算得到的結果,view不可以更新的。
二、delete與truncate的區別:
1、delete是DML的,只是刪除表中的數據。
2、truncate是DDL的,先刪除表,在創建表。
舉例:創建一個列自增長的表,操作一下就一目了然啦....
三、索引:
對于提高數據庫性能,索引是個物美價廉的方式。不用加內存,不用改程序,不用調sql,只需要正確建立索引,就可以把查詢速度提高百倍千倍。不過天下沒有免費的午餐,建立索引提高了查詢速度,但降低了增、刪、改的速度。
1、索引是數據的目錄,能快速定位行數據的位置。
2、索引提高了查詢速度,但是降低了增、刪、改的速度(增刪改時 索引表也要變更),因此并非索引越多越好。
3、索引一般建立在查詢頻率高的列上加,并且加在重復度低的列上效果更好。
4、索引分類:
(1)、index|key 普通索引:提高查詢速度。
A、創建表時指定:create table test(id int,key(id));
B、創建表后添加:alter table 表名 add index(id)或 create index index_name on tableName(列)
(2)、unique |unique key唯一索引:加快查詢速度,并且約束數據不能重復。
A、創建表時指定:create table test(id int primary key,name varchar(30),email varchar(30) unique);
或者create table test(id int primary key,name varchar(30),email varchar(30),unique (email));
B、創建表后添加: alter table 表名 add unique(列)
(3)、primary key主鍵索引:加快查詢速度,并且約束數據不能重復。
A、創建時指定:
create table test(id int primary key)
B、創建表后添加:
alter table 表名 add primary key(列)
(4)、fulltext全文索引:
主要是針對文字的檢索,只對MyISAM引擎有效,在InnoDB上無效。并且在中文環境下幾乎是無效的,要分詞加索引才可以,一般用第三方解決方案,如compass。
(5)、主鍵索引和唯一索引的區別:
主鍵索引不能為空,不能重復;唯一索引可以為空,不能重復。
四、常用的語句:
1、show databases :顯示所有數據庫;
2、show create database 數據庫名:顯示創建數據庫的語句。
3、show create table 表名:顯示創建表的語句。
4、show index from 表名:顯示表的索引。
5、show table status :當前庫顯示所有表的status;
6、show table status like 表名:當前庫顯示某張表的status;
7、select database():顯示當前庫名。
8、select user():顯示當前用戶。
9、explain sql語句:顯示sql語句的執行狀況。
10、添加/刪除索引:
alter table 表名 add [index|unique] 索引名(列名)
drop table index 索引名 on 表名
11、添加/刪除主鍵索引:
alter table 表名 add primary key(列名)
drop table primary key on 表名
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。