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
 6- cat /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
 5- bind-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 






