Mysql数据库的基本使用
知识点
背景
mysql数据库的路径
1
2该路径下的文件夹都是对应的每一一个数据库文件
sudo cd /var/lib/mysql市场上主流数据库类型:关系型数据库、非关系型数据库
数据库引擎:InnoDB、MyISAM等。MyISAM数据处理速度快,单不支持事务;InnoDB支持事务和行级锁定,处理速度稍慢,现在5.5版本之后的mysql默认使用InnoDB
安装mysql server端
1
2
3
4
5
6
7
8
9
10
11
12
13
14安装mysql
sudo apt-get install mysql-server
启动mysql服务
sudo service mysql start
查看进程中是否存在mysql服务
ps aux | grep mysql
关闭mysql 服务
sudo service mysql stop
重启mysql服务
sudo service mysql restart安装mysql client端
1
2
3
4
5
6
7
8
9
10安装mysql client端
sudo apt-get install mysql-client
进入mysql
mysql -uroot -p123455
退出mysql
方法1:quit
方法2:Ctrl + D
方法3:exit
mysql配置
mysql配置文件信息
1
2
3
4
5
6cat /etc/mysql/mysql.cnf
打开上述文件发现内部引用的配置文件路径如下:
!includedir /etc/mysql/mysql.cnf.d/
切换至引用的配置文件路径
cd /etc/mysql/mysql.cnf.d/打开文件:/etc/mysql/mysql.cnf.d/mysqld.cnf,可以检查配置项
1
vim mysqld.cnf
配置的详细信息
1
2
3
4
5bind-address: 表示服务器绑定的IP,默认为:127.0.0.1
port:表示连接的端口,默认为3306
datadir:表示数据库目录,默认为/var/lib/mysql
general_log_file:表示普通日志,默认为/var/lib/mysql/mysql.log
log_error:表示错误日志,默认为/var/lib/mysql/error.log
mysql 使用
数据库备份、还原
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# -t: 只备份数据
mysqldump -u root -p kmn123 -t 数据库名 >> 路径/backup.sql
# -d: 只备份数据结构
mysqldump -u root -p kmn123 -d 数据库名 >> 路径/backup.sql
# 备份数据和结构
mysqldump -u root -p kmn123 数据库名 >> 路径/backup.sql
# 备份数据库单个表
mysqldump -u root -p kmn123 数据库名 表名>> 路径/backup.sql
# 备份的数据库还原到指定数据库
use 数据库名
source 路径/backup.sql数据库信息相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 查询所有的数据库信息
show databases;
# 查看mysql版本
select version();
# 显示当前数据库的时间
select now();
# 切换数据库
use 数据库名;
# 查看当前使用的数据库
select database();创建数据库
1
2
3
4
5
6
7
8
9
10
11# 创建数据库,默认字符格式为latin
create database 数据库名
# 设置自定义字符集为utf8
create database 数据库名 charset=utf8
# 查看创建数据库时的语句
show create database 数据库名
# 删除数据库,当数据库名不是一个单词时,用`(tab键上方)包裹
drop database 数据库名创建表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22# 查看当前数据库中含有哪些表
show tables;
# 查看指定表的结构
desc 数据表的名称;
# 创建数据表
# auto_increment:表示自动增长
# not null:表示不能为空
# primary key:表示主键
# default:默认值
create table 表名(字段名 类型 约束, 字段 类型 约束);
# 定义无符号int类型:int unsigned,反之是:int signed
# 定义枚举类型:enum("男", "女");其对应的数字值为1, 2,插入时可以用数字代替
# 定义默认值:default "男"
# 查看创建的数据表时的语句
show create table 表名;
# 删除表
drop table 表名;修改表结构
1
2
3
4
5
6
7
8
9
10
11# 添加字段
alter table 表名 add 列名 类型;
# 修改字段类型
alter table 表名 modify 列名 新类型;
# 修改字段名称 and 类型
alter table 表名 change 旧列名 新列名 类型及约束;
# 删除字段
alter table 表名 drop 字段名;数据修改
插入数据
1
2
3
4
5
6
7
8
9
10# 全列插入
# 在mysql中不区分单双引号,只要成对即可
# 主键可以用0,default,null表示占位
insert into 表名 values (值, 值, ...);
# 部分插入
insert into 表名(列名, 列名, ...) values (值1, 值2, ...);
# 多行插入(适用于全列、部分插入)
insert into 表名(列名, 列名, ...) values (行1值1, 行1值1, ...), (行2值1, 行2值1, ...);修改数据
1
update 表名 set 列名1=值, 列名2=值, 列名3=值 where 筛选条件;
删除数据
1
2
3
4
5# 物理删除
delete from 表名 where 条件
# 逻辑删除, 添加一个字段表示该数据是否删除
alter table 表名 add is_delete bit default 0选择数据
1
select 列1 as 别名, 列2, ... from 表名 where 条件
记忆
为便于理解,提供脑图
作业
(问答)mysql数据的路径是什么
(问答)市场上主流的数据库类型
(问答)mysql使用的数据库引擎
(问答)安装mysql server端
启动mysql服务
查看当前进程中是否存在mysql服务
关闭mysql服务
重启mysql服务
安装mysql client端
进入mysql
(问答)退出mysql的三种方式
(问答)mysql配置文件的路径是什么,服务器端配置文件的详细文件是什么
(问答)mysql详细配置文件中如下几个值分别表示什么?其默认值又是哪些?:bind-address、port、datadir、general_log_file、
log_error
查询当前数据库中含有哪些数据库
查询数据库的版本
显示当前数据库的时间
切换数据库到shuai
查看当前使用的数据库
创建shuai数据库
(问答)通过create databases shuai创建的数据库,其默认的编码方式是什么
创建数据库shuai,设置其默认编码方式为utf-8
查看创建数据库shuai的语句
删除数据库【wu xiang】
查看当前使用的数据库中含有哪些表
查看表shuai的结构
创建数据表shuai,其中含有字段如下:id(int类型,主键,自增长,不能为空), name(varchar(50)类型,默认值为”shuai”),
gender(枚举类型-男or女)
查看创建的数据表shuai时的语句
删除表shuai
在表shuai中添加一个字段age(int类型, 不能为空, 默认20)
修改表shuai中的字段age类型和约束为(int 类型, 不能为空, 默认为20)
修改表shuai中的字段age名称为old,并将其类型和约束修改为(int 类型, 不能为空, 默认为20)
删除表shuai中的字段age
向表shuai中全列插入字段信息name(“shuai”)、age(20)、gender(“男”)
(问答)在mysql中对单、双引号有什么限制
向表shuai中部分插入字段信息name(“shuai”)、age(20)、gender(“男”)
向表shuai中多行插入数据,数据信息如下:
【name(“shuai”)、age(20)、gender(“男”)】
[name(“wu shuai”)、age(21)、gender(“男”)](问答)在mysql中,如果全列插入时,针对自增长的主键如何解决
表shuai中name为shuai的,将其age改未22,gender改为男
删除表shuai中name为shuai的数据
(问答)在数据管理中常说的只增不减,如果遇到需要删除的数据时,可以用什么样的办法替换掉物理删除数据的方案
(问答)选择数据的语句结构是什么样的
重置数据表shuai