文章目录
- 登录mysql
- mysql和mysqld
- 数据库操作
- 主流数据库
- MYSQL架构
- SQL分类
登录mysql
登录mysql连接服务器,mysql连接时可以指明主机用-h选项,然后就可以指定主机Ip地址,-P可以指定端口号 -u指定登录用户 -P指定登录密码
查看系统中有无mysql,就是查看mysql进程
连接登录mysql
设置免密码按两次回车键,连接mysql后出现这个就是连接成功
mysql和mysqld
mysqld和mysql它们两个有何区别
mysql是数据客户端
mysqld为数据库服务端,服务器后端一直守护进程运行着。
它们存储在不同路径下
mysql的本质是:基于C(mysql)和S(server)模式的一种网络服务,mysql是一套给我提供数据存取的服务的网络程序。而在口头上说的数据库一般指在磁盘或者内存中存储的特定结构组织的数据就是在磁盘上存储的一套数据库方案!
而数据库的服务端是mysqld
mysql为数据库客户端
数据库能存储但是存储的话文件就已经能够存储了又为何要有数据库用来对数据做存取,因为一般文件只是提供了对数据做存储的功能,但是文件没有提供对数据做更好的管理方案,就是对存储的数据做增删查改,所以对于数据的管理能力需要我们用户自己来,因此也就衍生了数据库,数据库能够对数据存储的同时能将存储的数据做更好的管理,能做增删查改。
数据库的本质:对数据内容存储的一套解决方案,你给我的字段或要求,然后数据库我(mysqld)给你一个结果,它在给结果之前要对数据进行分析,然后返回结果给用户,数据库整体对外提供存储解决方案。
程序员发送需求给客户端,然后mysql根据需求给服务器mysqld服务端,然后mysqld拿到请求对磁盘中的数据库文件做管理操作,然后将结果返回给mysqld,再返回给mysql最后返回给用户,数据库对存储的数据做管理。
数据库提供存储能力的文件数据库在存储介质下保存,数据库模式是数据在磁盘中结构化数据库。
数据库操作
查看数据库
show databases;
首先建立一个数据库,数据库数据都是存放在一个路径下
在/etc/my.cnf配置文件中,数据路径
进入到这个路径下/var/lib/mysql
查看可以发现他有很多文件有目录文件和普通文件
然后创建一个数据库create database 数据库名;
由于是在命令行上操作的所以要以分号结尾
创建数据库成功
查看数据库会有多出自己创建的数据库
然后在/var/lib/mysql路径下查看会多出一个目录文件
所以Linux下建立一个数据库就是在系统下建立一个目录文件,下达指令时会在磁盘上创建一个目录文件,而创建数据库之后再在这个数据库之下创建一张表,要先进入这个数据库,进入数据库就是使用数据库
use 数据库名,然后create table 表名
设置表中各种字段,列名,大小,类型;
创建好表之后在数据库目录下会存在许多文件,这是创建表之后出来的
而在数据库中建表就是在Linux下创建一个文件,表系统会默认给它分配字节大小,当有表之后就可以向表中插入数据了,insert into 表名(表中字段信息)values(设置对应值);
然后查看表
请求建数据库和建表这个工作是由mysqld完成。
在linux下,数据库路径下一个目录就是一个数据库,数据库本质也是文件,只不过这些文件不由程序员直接操作而是由数据库服务端操作。
主流数据库
SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一 般来说不如MySQL。
MySQL: 世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2:是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
其中最主流的数据库为MYSQL关系型数据库,当选择数据库时要考虑它的生态是否成熟,生态(开源,然后它暴露的问题得到解决暴露出来,然后有活跃的社区,官方匹配的文档…等等),大部分互联网公司都是使用的mysql数据库。
而服务器,数据库表的关系是什么?
安装数据库服务器就只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一 个应用创建一 个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:
数据库它是一种行列式的存储结构,以表结构呈现出来
学生表,一行就代表一个人,然后一列代表一种属性集合,按照行列式存储方式。
MYSQL架构
MySQL是一一个可移植的数据库,几乎能在当前所有的操作系统上运行,如Unix/Linux、Windows.Mac和Solaris。各种系统在底层实现方面各有不同,但是MySQL基本上能保证在各个平台上的物理体系结构的一致性。
客户交互
第一层连接然后进行安全管理,第二层为词法分析,第三层为数据存储方案,存储引擎
SQL分类
DDL [data definition language] 数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter;建表,修改表结构,维护存储数据的结构
DML [data mani pulation language] 数据操纵语言,用来对数据进行操作
代表指令:insert, delete, update;增删改对表数据结构内操作语言;
DML中又单独分了一一个DQL,数据查询语言,代表指令: select
DCL [Data Contro1 Language] 数据控制语言,主要负责权限管理和事务
代表指令: grant, revoke, commit
存储引擎
存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
查看存储引擎show engines;
其中最常用的存储引擎是InnoDB和MyISAM