数据库笔记(回顾总结):
今天晚上有时间,就抽了一个小时左右对数据库的部分进行了一个简单的回顾总结,很粗糙,就是一个大纲之类的(一些关键字),可以用来复习回顾,准备笔试面试啥的,有意见欢迎指出!
1、数据库的分类
1、关系型数据库[以表格(Table)存储,多表间建立关联关系]
2、非关系型数据库[多数使用哈希表,表中以键值(key-value)的方式实现特定的键和一个指针指向的特定数据。]
2、数据类型:
数值、日期、字符串。
3、SQL语句
[典型:执行对数据库的“增[insert]删[delete]改[update]查[select]”CRUD]
3.1数据库的:
1、SHOW DATABASES——显示所有的数据库。
2、CREATE DATABASE mydb2 CHARACTER SET gbk; 创建数据库并设置编码格式为gbk。
3、ALTER DATABASE mydb2 CHARACTER SET gbk; #修改数据库的字符集
4、DROP DATABASE mydb1; #删除数据库mydb1
3.2数据的:
1、数据查询:
① SELECT 列名 as “中文名” FROM 表名 WHERE 条件[等值;不等值;逻辑判断and or not;区间判断between and;NULL值判断;枚举in];
② 去重Distinct;排序ORDER BY ASC/DESC(多列排序);分组GROUP BY;
③模糊查询like% _; 分支查询CASE END。
④时间查询[获得当前系统时间]:CURDATE(); CURTIME();字符串查询;聚合函数[avg max min count]。
⑤子查询(from里面嵌套;in里面嵌套);表连接查询。
2、DML数据操作语言:
INSERT INTO 表名(列 1,列 2,列 3…) VALUES(值 1,值 2,值 3…);
UPDATE 表名 SET 列 1=新值 1 ,列 2 = 新值 2,…WHERE 条件;
DELETE FROM 表名 WHERE 条件;
3、数据表的操作:
CREATE TABLE 表名;
ALTER TABLE 表名 操作[ADD/MODIFY/DROP];
4、约束:
1、实体完整性约束[主键约束PRIMARY KEY;唯一约束UNIQUE;自增AUTO_INCREMENT];
2、域完整性约束[非空约束NOT NULL; 默认值约束DEFAULT; 引用完整性约束(主外键约束)]。
注意:创建关系表时,一定要先创建主表,再创建从表;删除关系表时,先删除从表,再删除主表。
5、事务:
1、定义:事务是一个原子操作,由一个或多个SQL语句组成[在同一个事务当中,所有的SQL语句都成功执行时,整个事务成功,有一个SQL语句执行失败,整个事务都执行失败]。
2、边界:开始[上一个事务结束后,又输入了一条DML语句]; 结束:提交/回滚。
3、原理:数据库会为每一个客户端都维护一个空间独立的缓存区(回滚段),一个事务中所有的增删改语句的执行结果都会缓存在回滚段中,只有当事务中所有SQL 语句均正常结束(commit),才会将回滚段中的数据同步到数据库。否则无论因为哪种原因失败,整个事务将回滚(rollback)。
4、四大特性[ACID]:原子性(表示一个事务内的所有操作是一个整体,要么全部成功,要么全部失败); 一致性(表示一个事务内有一个操作失败时,所有的更改过的数据都必须回滚到修改前状态); 隔离性(事务查看数据操作时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据); 持久性(事务完成之后,它对于系统的影响是永久性的)。
5、应用:基于增删改语句的操作结果[均返回操作后受影响的行数], 可通过程序逻辑手动控制事务提交或回滚.
6、权限管理:
1、创建用户[CREATE USER 用户名Identified密码 ];
2、授权[GRANT ALL ON 数据库.表 TO 用户名];
3、撤权REVOKE ALL ON companyDB.* FROM zhangsan
;;
4、删除用户DROP USER 用户名。
7、视图:
1、虚拟表,用户可以进行增删查改。
2、创建:CREATE VIEW 视图名 AS 查询数据源表语句;修改Alter;删除DROP。
8、SQL语言分类:
数据查询语言DQL(Data Query Language):select、where、order by、group by、having 。
数据定义语言DDL(Data Definition Language):create、alter、drop。
数据操作语言DML(Data Manipulation Language):insert、update、delete 。
事务处理语言TPL(Transaction Process Language):commit、rollback 。