设计范式:
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