mysql
mysql启动 (mysql的服务端)
service mariadb start 启动
service mariadb stop停止
service mariadb retart重启
mysql服务端与数据库的关系 数据库与表的关系
一个数据库服务端可以管理很多数据库,管理的数据库在 /var/lib/mysql
数据库与表的关系:一个数据库包含数据库表,相当于文件夹包含文件
服务端与客户端的关系
mysqld程序 mysql服务端
mysql mysql客户端
通过客户端连接服务端,执行mysql -u root(用户名) -p 密码(mariadb没有密码)
mysql服务端的架构
第一层:连接层
1.接收新连接
2.校验用户的合法性 用户名、密码、ip地址(登录位置) mysql的端口是3306
3.创建线程为连接服务
第二层:server层
1.语法语义的检测
2.优化sql
3.执行sql
第三层:存储引擎
数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
存储引擎分为两种 InnoDB(支持事务,mariadb默认使用)/MyISAM(不支持事务,不保护线程安全)
数据库的操作
前提:登录数据库 mysql -u [用户名] -p [用户密码]
退出数据库 \q
1.创建数据库
create database [数据库名称]
2.查看数据库的属性
show databases; 查看所有数据库
show create database [名称];查看数据库的属性
3.使用数据库
进入想要进入的数据库下use [name]
4.删除数据库
drop database [name];//谨慎使用
5.修改数据库
alter database [name] charset=gbk;
数据库表的操作
1.表结构相关的操作(表名称、类型这些)
创建数据表 create table [name](id varchar(20),name varchar(20));
删除数据表 drop table [name]
查看表结构 desc [表名称]
查看表的属性 show create table [表名称]
查看当前数据库下所有的数据表 show tables;
2.表内容相关的操作
增 insert into [表名称] values('[内容concent]','[内容]');
查 select * from [表名称]
3.alter命令
增加表字段 alter table [tablename] add (column datatype,column datatype...)
修改表字段 alter table [tablename] modify (column datatype,column datatype...)
删除表字段 alter table [tablename] drop (column ) //谨慎使用,删除某一列的同时会把数据删掉
修改表名称 alter tabel [tablename] rename to [tablename]
存储引擎
1.MyISAM
三个文件都存储在数据库所对应的文件夹下
2.InnoDB
表数据部分文件存储在创建的数据库的文件下
db.opt 数据库属性,包含了字符集和校对规则
表数据存储在上级目录下的idata1的文件下
字符集
1.定义能够表示字符的范围
2.类型:Latin1(1字节)、utf8(4字节)、utf8mb4
如果在创建表时charsert为latin1,则插入数据最多以1个字节插入,当你插入中文时是不成功的
3.指定字符集
创建数据库 create database [数据库名称] charset=utf8;
创建数据库表 create table [表名称] charset=utf8;
校对规则
当前数据库默认的字符集和校对规则
1.指定校对规则
创建数据库 create database [数据库名称] utf8_general_ci;
create database [数据库名称] collate utf8_bin;
create database [数据库名称] collate latin1_swedish_ci;
create database [数据库名称] collate latin1_bin;
创建数据库表 create table [表名称] utf8_general_ci;
create table [表名称] collate utf8_bin;
create table [表名称] collate latin1_swedish_ci;
create table [表名称] collate latin1_bin;
2.影响数据库是否对大小写敏感
_ci:不敏感 _bin:敏感
3.查找的时候排序
备份数据库
1.mysqldump命令进行备份(在命令行执行)
mariadb 端口号3306
mysqldump -u [用户] -P [端口] -p [密码] -B [数据库名称]
2.恢复原数据库
source [备份文件->路径]
同时备份多个数据库用空格隔开