参考书籍:MySQL8入门到精通
参考网络课程:mysql入门_尚硅谷(https://www.bilibili.com/video/BV12b411K7Zu?p=38)
1 基本概念
a) 什么是数据库(DataBase,DB)
数据库是由一批数据构成的有序的集合,这批数据存放在结构话的数据表里。数据库的种类大致分为3种:层次式数据库、网络式数据库、关系式数据库。
数据库的特点:
1)数据长久存储,实现数据贡献,减少数据冗余。
2)采用特定的数据类型
3)具有较高的数据独立性
4)具有统一的数据控制功能
b) 什么是数据库系统(Data Base System,DBS)
数据库系统由硬件部分和软件部分共同组成,硬件用于存储数据,软件部分主要包括数据库管理系统和支持数据库管理系统的操作系统,以及多种用于应用开发的语言。类似于一个容器,一个数据库中可以包含多个文件,一个数据库系统中可以包括多个数据库。
c) 数据库管理系统(Data Base Management System,DBMS)
位于用户和操作系统之间,用于对数据库进行统一管理。
d) 数据库应用系统(Data Base Application,DBA)
与数据库管理系统功能类似,用于对数据库进行管理,在DBMS无法满足对数据库管理的需求时,数据库应用系统负责与DBMS进行通信,访问和管理DBMS中存储的数据。
e) 什么是MySQL
结构化执行语言,用户通过SQL语言,与数据库管理系统进行通信,翻译成机器语言,对数据库进行查询和操作。
SQL语言主要包括了4个部分:
1)数据定义语言(DDL)drop、create、alter等
2)数据查询语言(DQL)select 语句
3)数据操作语言(DML)insert、update、delete等
4)数据控制语言 grant、revoke、commit、rollback等
2 MySQL图形化界面(类似于集成开发环境)
我使用的系统为Ubuntu 20.04,使用的图形化界面为MySQL workbench
## 1 安装MySQL
sudo apt-get update # 访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑
sudo apt-get upgrate # 把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新
sudo apt-get install mysql-server # 默认安装最新版
## 启动MySQL
service mysql start
/etc/init.d/mysql start
## 关闭MySQL
service mysql stop
/etc/init.d/mysql stop
## 重启MySQL
service mysql restart
/etc/init.d/mysql restart
## 查看MySQL服务状态
systemctl status mysql.service
在使用MySQL之前需要启动MySQL服务,启动之后可以通过systemctl status mysql.service,查看MySQL状态。
3 登陆 MySQL
在安装MySQL的时候,选择了默认选项,可以通过以下命令查看MySQL的用户名和密码等。
# 登陆MySQL(-p不能有空格,其他无所谓)
mysql -h [hostnam] -P [port] -u [username] -p[passwd]
4 MySQL基本操作
MySQL与其他的编程语言不同,不区分大小写,推荐易用关键字使用大写。与perl语言类似,每条命令的行为使用分号分隔。MySQL也含有注释,包括了单行和多行注释。
# 单行注释
# xxxxx
-- xxxxx
# 多行注释
/*
xxxxxx
xxxxxx
xxxxxx
xxxxxx
*/
# 查看mysql中数据库(下表共5个数据库)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myemployees |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
# 使用某个数据库
mysql> USE myemployees;
mysql> SHOW TABLS;
+-----------------------+
| Tables_in_myemployees |
+-----------------------+
| departments |
| employees |
| jobs |
| locations |
+-----------------------+
4 rows in set (0.00 sec)
# 查看表结构
DESC departments ;
+-----------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------+------+-----+---------+----------------+
| department_id | int | NO | PRI | NULL | auto_increment |
| department_name | varchar(3) | YES | | NULL | |
| manager_id | int | YES | | NULL | |
| location_id | int | YES | MUL | NULL | |
+-----------------+------------+------+-----+---------+----------------+
4 rows in set (0.05 sec)
# 查看mysql版本
+-----------+
| VERSION() |
+-----------+
| 8.0.26 |
+-----------+
1 row in set (0.00 sec)