MYSQL相关
数据库的一种;目前属于Oracle甲骨文公司;
称为关系型数据库,微软的SQL server;
MySQL数据是一种C/S模型即客户端服务端模型;
客户端通过账号,密码连接服务器,连接成功后才可以进行数据库操作(CRUD增删改查);
MYSQL的服务端采用IO复用 + 可伸缩的线程池,实现了网络高并发的经典模型;
- MYSQL 的优势:
(1)开放源码的数据库;
(2)跨平台性;
(3)价格优势;
(4)功能强大且使用方便;
- MYSQL的SQL语句类别划分:
- DDL (Data Definition Language):数据库定义语言;
定义了不同的数据库,数据库表、列、索引等数据库对象(视图、触发器)的定义。
常用的SQL:create(创建)、drop(删除)、alter(更新)。
create:创建数据库、创建表、创建视图等;
alter:修改表的定义、修改视图的定义等;
drop:删除数据库、删除表、删除视图;
- DML(Data Manipulation Language):数据操控语言;
用于添加、删除、变更和查询数据库记录;
常用的SQL:insert(添加)、delete(删除)、update(更新)、select(查询)
- DCL(Data Control Language):数据控制语言;
控制不同的数据库段直接访问和访问级别的语句。
常用SQl:grant(用户增加权限)、revoke(收回用户权限);
- 数据库基本术语:
1.实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,不如说“老师与学校的关系”。
2.属性:教科书上解释为:“实体所具有的某一特性”,由此可见,属性一开始是个逻辑概念,比如说,“性别”是“人”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。
3.元组:表中的一行就是一个元组。
4.分量:元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。
5.码(键):表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫 候选码(候选键),我们从候选码中挑一个出来做老大,它就叫主码(主键)。
6.全码:如果一个码包含了所有的属性,这个码就是全码。
7.主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。
8.非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。
9.外码:一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。
数据库的范式
数据库范式的作用是进行数据库设计时字段、库表划分的依据,数据库泛型就是数据库应该遵循的规则,也称泛型,关系型数据库常用的4种范式分别是第一范式(1NF),第二范式(2NF),第三范式(3NF),BCN范式(BCNF);
-
第一范式(1NF):每一列必须保持原子特征;
列是基本数据项,不能有重复字段,且不能再进行拆分,否则设计成一对多的关系;不满足第一范式不能称之为关系型数据库。
在设计数据库时,数据库需要满足的最低要求是第一范式;
-
第二范式(2NF):属性完全依赖于主键;(针对联合主键-----》消除部分依赖)
1NF的基础上,非主属性完全依赖于主键,如果不依赖主键,应该拆分成新的主体,拆分成一对多的关系;
- 第三范式(3NF):2NF的基础上,属性不依赖于其他非主属性(拆分表----》消除依赖传递);
- BCNF、4NF、5NF。。。。。
- 范式越高,表越多,表越多带来问题:
(1)查询时需要连接多个表,增加了查询的复杂性;
(2)查询时需要连接多个表,降低了数据库查询性能;
范式并不是越多越好,一般满足3NF即可;
- 应用数据库的范式可以带来很多好处,最主要的归纳为三点:
1)减少数据冗余(最主要的好处、其他好处因此而附带)
2)消除异常(插入异常、更新异常、删除异常)
3)让数据组织的更加和谐。
数据库的启动与命令:
客户端MYSQL:连接前服务端必须要启动;
mysql -u XXX -p XXX
mysql:代表客户端命令
-u 用户名 -p 密码
exit;退出时用户端登录
mysql -uroot -p 123456
数据库是存储数据的地方,数据库管理系统是用来定义数据、管理和维护数据的软件。