我终于又想起了我的博客的密码…所以接着更新我的冒险旅程.
MySQL数据库简介
一般来说, 在没有数据库之前, 我们的数据都是以文本文件的形式, 存在我们的磁盘当中. 但是如果数据特别多, 数据特别复杂, 需要频繁查找数据和搜索数据时, 我们的文件存储就显得有些力不从心了.
So,数据库就诞生了.
数据库产品众多, 比如以前安装office时默认安装微软家的数据库: access. 还有比较有名的有MySQL.
相信不少人都看过上面这个表情包↑
MySQL目前属于甲骨文公司, 当年创始人将MySQL卖给甲骨文后便离职开发了另一款开源数据库: Maria DB, 我们便从这个开源的数据库来进行学习.
MySQL的安装
安装上应该没有太多问题, 我只输入了
# yum install -y mariadb-server
就搞定了…
具体步骤和配置可以看这篇文章 : CentOS 7 通过 yum 安装 MariaDB
连接数据库以及基本操作
通过回环网卡, 我们可以连接自己的电脑上的数据库服务器.
注意:输入MySQL命令时, 末尾都要加 ’ ; '
# mysql -h 127.0.0.1 -P 3306 -u root -p
但一般来说其实只需要
# mysql -uroot -p
就可以了
连接上数据库后, 通过
show databases
查看数据库. 一般来说系统会自带一些默认的数据库, 所以不用担心查不出东西, 如果报错, 大概率是忘记加s…
想要查看数据库里的内容, 要先使用数据库, 我们可以尝试使用一下系统的mysql数据库:
use mysql
输入完成后, 你的命令行的箭头左边的[]内会显示目前正在使用的数据库名
创建一个数据库
输入命令
create database kishereDB
来创建一个数据库, 注意这里database又没有s了…
创建完数据库, 我们还要在数据库中创建一个表
create table stu(
ID int,
Name varchar(20),
);
于是我们就得到了一张表, 名字叫stu. 让我们往里面插一点东西:
insert into stu (id, name) values (1, '炸鸡');
insert into stu (id, name) values (2, '璐璐');
insert into stu (id, name) values (3, '小奕');
搞定了, 让我们看看表现在是什么样子吧:
select *from stu
显示效果:
+------+--------+
| ID | name |
+------+--------+
| 1 | 炸鸡 |
| 2 | 璐璐 |
| 3 | 小奕 |
+------+--------+
如果无法显示中文, 大概率是字符编码设置的问题, 可以尝试以下步骤:
- 查看字符编码
show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
如果不是和上面完全一样, 那就继续下一步.
2. 按照安装时的教程进行配置
3. 如果仍未解决, 尝试以下步骤
打开:
# vim /etc/my.cnf.d/server.cnf
在[mysqld]标签下添加以下代码:
init-connect='SET NAMES utf8'
character-set-server = utf8
保存, 重启mariaDB服务:
# systemctl restart mariadb
由于创建数据库时, 已经确定了字符编码, 所以还要修改数据库编码规则, 下面有讲.
数据库的基本操作
1.创建表
创建上面已经演示过了, 这里说一下细节:
create table stu(
ID int,
Name varchar(20),
)character set 字符集 collate 校验规则 engine 存储引擎;
这里注意, ID和Name都是列名, mysql的顺序和C语言正好相反, 先给出列名, 再说明它的类型. 后面的character set / collate / engine可写可不写(不写即是默认).
2.表的查询
- 查询显示整张stu表:
select * from stu;
其中 *
的意思是表中所有的列, 我们可以将其替换成: name/ID 等列名, 这样就只会显示我们想要的列
- 查询某一列中含有特定信息的行
select * from stu where name ='炸鸡';
就只剩炸鸡了:
+------+--------+
| ID | name |
+------+--------+
| 1 | 炸鸡 |
+------+--------+
- 按某一列进行排序:
select * from stu order by name;
炸鸡就跑到下面去了
+------+--------+
| ID | name |
+------+--------+
| 2 | 璐璐 |
| 3 | 小奕 |
| 1 | 炸鸡 |
+------+--------+
select语句还有很多骚操作, 我们后面再表.
再说一个desc语句, 他可以告诉我们
3.删除数据库/表
- 删除数据库
drop database[if exists]db_name;
[]为可选选项, 可以不写.
2. 删除表
drop table table_name;
4.修改数据库
alter database db_name
charset=
collation=
charset 字符编码可以写utf8/gbk
collation 的字符集校验规则 可选utf8_general_ci(不区分大小写)/collate utf8_bin(区分大小写)