目录
MySQL OS内置的?还是需要我们自己安装,底层一定是直接或者间接访问OS的文件接口
什么是数据库:
存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:
文件的安全性问题
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便
数据库存储介质:
磁盘
内存
数据库实际上是一个网络服务器,应用层协议
MySQL实际上也有自己的客户端,也有自己的服务端,所以我们一般把MySQL称为客户端软件,把服务端mysqld称为服务器。
MySQL或者数据库属于应用层还是其它层的软件呢?
答:应用层
MySQL OS内置的?还是需要我们自己安装,底层一定是直接或者间接访问OS的文件接口
答:不是内置的,需要我们自己安装
主流数据库
SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
MySQL安装(CentOS7)
在root用户下输入以下命令:
安装MariaDB
安装 mariadb 服务
# yum install -y mariadb-server
安装 mariadb 命令行客户端
# yum install -y mariadb
安装 mariadb C library
# yum install -y mariadb-libs
安装 mariadb 开发包
# yum install -y mariadb-devel
启动
启动服务
# systemctl start mariadb
设置服务开启自启动
# systemctl enable mariadb
查看服务状态
# systemctl status mariadb
测试连接
使用命令行客户端尝试连接
# mysql -uroot
可能的输出为
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
查看 mariadb 版本号
MariaDB [(none)]> select version();
+----------------+
| version() |
+----------------+
| 5.5.60-MariaDB |
+----------------+
1 row in set (0.01 sec)
安装MySQL8.0
进入MySQL官网:MySQL :: MySQL Community Downloads
此时就可以安装了,由于安装mysql8.0的博客实在太多,所以我带过了
只要查看Windows服务里面发现MySQL正在启动,就说明安装成功了。
通过MySQL Client连接MySQL服务
执行MySQL命令行客户端会提示输入密码,这里的密码就是在配置过程中设置的root用户密码,输入完成之后,回车之后,成功连接如图所示。
MySQL命令添加到PATH路径
在windows平台下找到MySQL的安装路径 (例如:Windows 10 64位系统默认安装在 C:\Program Files\MySQL\MySQL Server 8.0)
添加到环境变量中
直接在命令行窗口使用MySQL命令
配置MySQL命令到PATH路径之后,访问MySQL的时候就可以在任意命令行窗口上执行mysql -u root -p命令连接数据库服务。
MySQL连不上远程服务器,记得把服务器3306端口打开
因为有一些服务器要我们自己手动打开3306端口,不然连不上服务器,拿腾讯云服务器为例
此时添加成功,显示
卸载MySQL
- 删除Mysql的安装目录,默认为C:\Program Files目录下(如果你更改了安装路径,就到你所重新设置的路径下查找)。
- 删除MySQL数据数据存放目录,默认在C:\ProgramData下,但是,这个目录是隐藏的,要通过查看隐藏显目才看的到
在这个文件夹下把MySQL删了
3.删除注册表数据,在桌面同时按住WIN + R输入cmd
点击确定,调出cmd窗口输入regedit,回车
点击编辑,查找下一个,输入MySQL,把项打勾,点击查找下一个,删除所有与mysql有关的记录
4.重启电脑
服务器,数据库,表关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库, 一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
- 数据库服务器、数据库和表的关系如下:
在终端输入
$ vim /etc/my.cnf
就可以看到它的一些配置,其中
创建一个数据库
create database xixi;
查看数据库
show databases
使用数据库
use xixi;
create table student(id int ,name varchar ( 32 ),gender varchar ( 2 ));
show tables
![](https://i-blog.csdnimg.cn/blog_migrate/bad1de9c66cdc432bfeb10a59ed9b0c0.png)
desc student;
![](https://i-blog.csdnimg.cn/blog_migrate/74e1964db9337fc497855432efaf1fc1.png)
insert into student (id, name, gender) values ( 1 , ' 张三 ' , ' 男 ' );insert into student (id, name, gender) values ( 2 , ' 李四 ' , ' 女 ' );insert into student (id, name, gender) values ( 3 , ' 王五 ' , ' 男 ' );
select * from student;
MySQL架构
SQL分类
- DDL【data definition language】 数据定义语言,用来维护存储数据的结构
- DML【data manipulation language】 数据操纵语言,用来对数据进行操作 代表指令: insert,delete,update ,DML中又单独分了一个DQL,数据查询语言,代表指令: select
- DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务 代表指令: grant,revoke,commit
存储引擎
查看存储引擎
show engines;