MySql知识点汇总--笔经面经

基本概念

  1. 数据库系统(DBS)由数据库(DB),数据库管理系统(DBMS),应用系统和数据库管理员(DBA)构成;
  2. 数据模型的组成元素包括数据结构数据操作完整性约束
  3. 关系模型的完整性约束包含实体完整性参照完整性用户自定义完整性
  4. SQL语言具有数据定义数据操纵数据控制;SQL的五种基本操作包括:选择,投影,并,差和笛卡尔积(选择和投影);
    数据库定义语言(DDL):CREATE, ALTER, DROP
    数据库控制语言(DCL):GRANT, REVOKE
    数据库操纵语言(DML):INSERT, REPLACE. UPDATE, DELETE
    数据库查询语言(DQL):SELECT, WHERE, ORDER BY, GROUP BY, HAVING
    事物处理语言:BEGIN, TRANSACTION, COMMIT
  5. 数据库的模式:对数据库中全体数据的逻辑结构和特征的描述。
    它的三级结构关系为:模式内模式的逻辑表示,内模式是模式的物理实现,外模式是模式的部分抽取,其中主要存在两种映射:模式与子模式(外模式–>局部逻辑结构),模式与内模式(存储模式);
  6. 网络协议的三个主要要素是语义语法定时
  7. 元组表示,用关键字来唯一标识,列表示属性
  8. E-R图为实体-关系图,用于描述现实世界的事物及其相互关系,是数据库概念设计的主要工具;
  9. 主键:能够唯一的标识一个元组的属性或属性组称为关键的键或候选键,有多个候选键时,可以选择其中一个作为主键;
  10. 数据库的索引一般为B+树哈希表来实现;
  11. 数据库设计的六个基本步骤:需求分析–>概念设计–>逻辑结构设计–>物理结构设计–>数据库实施–>,数据库运行和维护。
  12. SQL执行的顺序:from–>where–>group by–>having–>select–>order by -->limit;
  13. 视图是虚拟的表,不包含数据,是用来查看存储在别处数据的一种设施,在添加或更改这些表中的数据时,视图将返回改变过的数据,命名唯一,可以嵌套使用,需要足够的访问权限,禁止使用order by,不能索引

范式

符合某一级别的关系模式的集合:

1.1NF无重复的列,每一列都是不可分割的基本数据流,同一列中不能有多个值;
2. 2NF属性完全依赖于主键,每个实例或行必须可以被唯一的区分;
3. 3NF:属性不依赖于其它非主属性(消除传递依赖);
4. BCNF:关系模式的每一个决定因素都包含码;

联结

1.自联结:用来替代从相同表中检索数据的使用子查询语句

SELECT c1.cut_id, c1.cut_name, c2.cut_contact
FROM Customers AS c1, Customers AS c2
WHERE c1.cut_name = c2.cut_name AND c2.cut_contact = ‘JIM’;

2.自然联结:相同的列多次出现时,使每一列只返回一次

SELECT c.*, o.order_num, o.date
FROM customers as c , orders as o, orderitems as oi
where c.cust_id = o.cust_id AND oi.order_num = o.order_num

3.外联结:联结包含了在相关表中没有关联行的行

SELECT customers.cut_id, orders.ord_num
FROM customers RIGHT OUTER JOIN orders ON orders.cut_id = customers.cut_id;

INNER JOIN ON
LEFT JOIN ON

数据库事务

指用户定义的一种数据库操作序列,包含四种性质:
原子性:事务作为一个整体被执行,包含在其中的对数据库的操作要么全部执行,要么全部不执行;
一致性:事务应确保数据库的状态从一个一致状态转变为另一个一致状态,也就是需要满足完整性约束;
隔离性:多个事务并发执行时,一个事务的执行不应该影响其它事务的执行;
持久性:已被提交的事务对数据库的修改应该永久保存在数据库中。

数据库索引的优点

1.可以保证数据库表中每行数据的唯一性
2.可以大大加快数据的检索速度
3.可以加快表与表之间的连接
4.在使用分组和排序子句进行数据检查时,可以显著减少查询中分组和排序的时间
5.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能

常用的命令语句

含义 命令
选择 SELECT NAME FROM TABLE
排序 ORDER BY GRADE(默认升序,降序使用DESC),多列排序时中间用“,”隔开,按时顺序依次排序,且必须为最后一句
分组 GROUP BY在WHERE语句之后,ORDER BY语句之前
过滤 HAVING
不同值 DISTINCT
指定行 LIMIT 5(前5行) 或 LIMIT 3 ,5(从第3行开始的5行)等价于LIMIT 5 OFFSET 3
变大写 UPPER()
变小写 LOWER()
长度 LENGTH()
插入数据 INSERT INTO
组合查询 UNION 例如:SELECT…WHERE…UNION SELECT…WHERE…
更新 UPDATE TABLE SET CLOWN WHERE NAME = ‘OK’
删除数据 DELETE FROM TABLE 或DROP TRIGGER(删除触发器)
创建表 CREATE TABLE STUDENT
指定默认值 DEFAULT
创建视图 CREATE VIEW viewname AS 删除用DROP
存储 EXECUTE
游标 CURSOR 打开游标 OPEN CURSOR
创建索引 CREATE UNIQUE(唯一) INDEX prod_name ON TABLE(id(列名))
聚集函数 AVG(),COUNT(),MAX(),MIN(),SUM() eg:SELECT AVG(GRADE) as g FROM TABLE
符号 >大于 <小于 !=不等于 <>不等于 !>不大于
通配符 LIKE eg:匹配以Fish开头的词:WHERE NAME LIKE ‘Fish%’ ,_匹配单个字符,%匹配0个字符或多个
注释 — — 或 /*…*/

权限修改命令

(1)将student和course表的全部权限授予所有用户
GRANT ALL PRIVILIGES ON TABLE student, course TO PUBLIC
(2)将对student表的查询权和姓名修改权授予用户U4
GRANT SELECT, UPDATE(Sname) ON TABLE student TO U4
(3)将对SC表的插入权限授予用户U5,并允许它传播该权限
GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION
(4)将用户U5对SC表的INSERT权限收回,同时收回被他传播出去的授权
REVOKE INSERT ON TABLE SC FROM U5 CASCADE
(5)创建一个角色R1,并使其对student表具有数据查询和更新权限
CREATE ROLE R1;
GRANT SELECT, UPDATE ON TABLE student TO R1;
(6)对修改student表结构的操作进行审计
AUDIT ALTER ON student;

展开阅读全文

没有更多推荐了,返回首页