认识Mysql
一、数据库的好处
1、可以持久化数据到本地
2、结构化查询
二、数据库的常见概念 ★
1、DB:数据库,存储数据的容器
2、DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB
3、SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言
三、数据库存储数据的特点
1、数据存放到表中,然后表再放到库中
2、一个库中可以有多张表,每张表具有唯一的表名用来标识自己
3、表中有一个或多个列,列又称为“字段”,相当于java中“属性”
4、表中的每一行数据,相当于java中“对象”
四、常见的数据库管理系统
五、MySQL介绍
MySQL服务的启动和停止
方式一:通过命令行
- net start 服务名
- net stop 服务名
方式二:计算机——右击——管理——服务
MySQL服务端的登录和退出
登录:mysql 【-h 主机名 -P 端口号】 -u 用户名 -p密码
退出:exit或ctrl+C
基本语法
MySQL常见命令介绍
查看mysql中有哪些个数据库
show databases;
查询数据表
show tables from 数据库名;;
查询当前所在数据库
select database();
新建一个数据库
create database 数据库名;
选择一个数据库
use 数据库名称;
新建一个数据表
create table test(
......
);
查看表的结构
desc 表名;
查看表中的所有记录
select * from 表名;
向表中插入记录
insert into 表名(列名列表) values(列对应的值的列表);
注意:插入varchar或date型的数据要用单引号引起来
修改记录
update 表名 set 列1 = 列1的值, 列2 = 列2的值 where ..
删除记录
delete from 表名 where ...
删除数据表
drop table 表名;
获取mysql版本
select version();
查看MySQL中所有数据库
show databases;
SQL语言的分类
概念:SQL结构化查询语言。用于存取数据,更新,查询和管理关系数据库系统的结构化查询语言。
经验:通常执行堆数据库的“增删查改”
,CRUD。
- DQL(Data Query Language):数据查询语言,用于检索数据库中的数据,主要是SELECT语句;
- DML(Data Manipulation Language):数据操纵语言,用于改变数据库中的数据,主要包括INSERT、UPDATE和DELETE语句;
- DDL(Data Definition Language):数据定义语言,用于库和表的创建、修改、删除。主要包括CREATE、DROP、ALTER语句;
- DCL(Data Control Language):数据控制语言,用于定义用户的访问权限和安全级别。主要包括GRANT和REVOKE语句;
- TCL(Transaction Control Language):事务控制语言,用于维护数据的一致性,包括COMMIT、ROLLBACK和SAVEPOINT语句。
六、两类数据模型
- 第一类:概念模型(信息模型),以用户的观点对数据进行建模,创建数据库。
- 第二类:
- 逻辑模型(包含多种),以计算机系统的观点对数据建模,用于数据库管理系统的实现。
- 物理模型:对数据的最底层的抽象。
数据模型 = 数据结构+数据操作+数据的完整性约束条件
七、数据库系统的三级模式与二级映像
由外模式、模式和内模式构成:
- 外模式:是数据库用户能够看到的局部数据的逻辑结构和特征的描述,与具体的应用有关。一个数据库可以有多个外模式。
- 模式:是数据库全部数据的逻辑结构和特征的描述,一个数据库只有一个模式。
- 内模式:一个数据库只有一个内模式,是数据物理结构和存储方式的描述。
二级映像:
- 外模式\模式映像:当模式改变时,调整外模式与模式的映像,可以使外模式不改变。从而使应用程序不用修改,保证了数据和程序的逻辑独立性。
- 模式与内模式映像:当数据库的存储结构改变时,调整模式与内模式的映像,可以使外模式不改变,从而使应用程序不用修改,保证了数据和程序的物理独立性。
八、关系型数据库
即支持关系模型的的数据库系统。有上可知模型都是由三个部分组成 数据的结构、数据的操作和关系完整性约束。
关系模型的数据结构
用户看来就是一张扁平的二维表。
关系模型的数据操作
- 笛卡尔积:两个表的乘机(第一个表每行乘以第二个表的每一列)
- 选择:从行的角度
- 投影:从列的角度、取消重复的行。
- 连接:从两个关系的笛卡尔积中选取属性见满足一定条件的元组
- 等值连接:两个表的笛卡尔积中选取表1的某个属性值与表2的某个属性值相等的行。
- 非等值连接:两个表的笛卡尔积中选取表1的某个属性值与表2的某个属性值不相等的行。
- 自然连接:一种特殊的等值连接,要求比较的两个属性名称相同,并把结果中重复的属性列去除。
- 外连接:在自然连接中由于两个属性在值不同会去除改行,如果我们要保留并且将没有值的属性填上NULL,就是外连接。
- 左外连接:以左表为主表,只保留左表的关系。
- 右外连接:以右表为主表,只保留右表的关系。
- 除运算:表R除以表S结果为表T,则T中包含所有在R但不再S中的属性及其值,见下面例题
如何计算R➗S呢,首先我们引进“象集“的概念,具体意义看下面的陈述
关系R和关系S拥有共同的属性B,C,R➗S得到的属性值就是关系R包含而关系S不包含的属性的,即A 属性
在R关系中A属性的值可以取{a1,a2,a3,a4}
a1对应的象集为{(b1,c2),(b2,c1),(b2.c3)}
a2 对应的象集为{(b3,c7),(b2,c3)}
a3对应的象集为{(b4,c6)}
a4 值对应的象集为{(b6,c6)}
关系S在B, ,C上的投影为{(b1,c2),(b2,c1),(b2,c3)}
只有a1 的值对应象集包含关系S的投影集,所以只有a1包含在A属性中
所以R➗S为 a1
[/collapse]关系模型的三类完整性约束
- 实体完整性:主码的属性值不能取空。
- 参照完整性:举例 学生表中专业号是学生表的外码,与专业表的主码专业号对应,则学生表的专业号上的值必须:
- 取空值
- 等于某个专业表主码(专业号)值
- 用户定义的完整性:针对某一具体关系数据库的约束条件。反映具体应用的数据所要满足的要求。
实体与参照完整性是关系模型必须要满足的,由关系系统自动支持。
九、数据库设计三范式
- 表中的所有字段都是不能再分的
- 标准的二维表,表中必须存在业务主键,并且非主键依赖于全部业务主键。
- 在第一条的基础上。
- 业务主键:可以唯一标识出每一行数据的列或是列的组合。
- 表中的非主键列之间不能相互依赖,即表中不能套表。
不断完善补充。
[/tip]