設計範式:
1、 字段是原子性,不可再分割
2、 應該有主鍵
3、 2個表不應該有相同的非主鍵字段
MariaDB的安裝
1、 源碼編譯
2、 通用2禁止格式
3、 rpm包
視圖
實體視圖 系統管理者
邏輯視圖 DBA
視圖模型 終端使用者
SQL接口
1、 DDL
a) CREATE DATABASE,TABLE
b) ALTER DATABASE
c) DROP DATABASE,TABLE
2、 DML
DDL:
MariaDB基礎
表管理:
建立表時候可以建立索引
CREATE TABLE (create_defination)
col_name col_defination| PRIMARY KEY (colname)
鍵
可以建立在單個字段上交 單鍵 column_name
建立在多個字段上的鍵角 組合鍵
create table teachers(tid INT UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,tName VARCHAR(50) NOT NULL,AGE TINYINT UNSIGNED,Gender ENUM('F','M') Default 'M',dazhao VARCHAR(100),UNIQUE KEY(tName,dazhao))

檢視表上的索引
SHOW {INDEX | INDEXES | KEYS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[WHERE expr]
alter table
alter table student modify girlID TINYINT UNSIGNED NOT NULL after GENDER;
想改字段名,用change,隻改字段定義,用modify
drop删除字段
mysql的重要特性,插件式存儲引擎
show engines;
如果不指定就使用預設的存儲引擎
存儲引擎又叫做表類型,建立表的時候可以指定表類型。建議同一個庫内用一個存儲引擎
show table status
SHOW TABLE STATUS [{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
like用于模糊比對,支援通配符
_:比對任意單個字元
%:比對任意長度任意字元
檢視一個表是用什麼存儲引擎:
show table status like ‘student’ \G
最後不加大寫G不會出來
表選項:
ENGINE = engine_name
步驟:
1、 show databases檢視有什麼資料庫
2、 use database資料庫名
3、 show tables 檢視有哪些表
4、 desc table 看看表裡啥結構
索引管理
索引,建立删除檢視,不能修改
建立索引,help create index
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON tbl_name
SPATIAL空間索引
删除索引,help drop index
DROP INDEX index_name ON tbl_name
檢視索引
SHOW {INDEX | INDEXES | KEYS} {FROM | IN} tbl_name
DML
INSERT, DELETE, SELECT, UPDATE
操作表中資料的。
INSERT [INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
DELETE FROM tbl_name
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
SELECT
DISTINCT
[SQL_CACHE | SQL_NO_CACHE] //SQL_CACHE放在查詢緩存中
select_expr [, select_expr ...]
[FROM table_references
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
where後的條件表達式:
>,<,>=,<=,==,!=
between … and…可以等于 >= … <=
模糊查詢,LIKE %代替任意個機關
RLIKE ‘pattern’正規表達式比對。
組合條件 AND OR NOT
distinct,用來去重
[ORDER BY {col_name | expr | position}排序
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
使用者及權限管理90:00
使用者賬号 username@host
host可使用IP,網羅位址,通配符(_%);
CREATE USER ‘username’@‘hostname’
建立使用者,設定密碼
CREATE USER ‘soars’@’192.168.%.% identified by ‘123’’
删除使用者
DROP USER ‘soars’@’192.168.%.%’
使用者授權:
GRANT priv1, on dbname.table to ‘user’@’host’[Identified by password
如果使用者不存在,就建立此賬号并授權。
ALL [PRIVILEDGE]
檢視使用者已獲得的授權
收回授權:REVOKE
REVOKE 權限 on dbname.tablename from user@host