目录
每个一个应用程序,只要有数据产生,都有与之对应的一个数据库。
一台计算机提供的数据库服务中
可以创建多个数据库
每个数据库中有很多张数据表
每个数据表中有很多的数据行
每个数据行都是由很多个列组成的
常见的客户端工具
1.通过终端使用mysql.exe
cd:改变目标路径 后面跟一个你要访问的路径
mysql -uroot -p
mysql:表示要执行的是mysql.exe的程序
-u 表示用户名选项,后面要紧跟着写登陆用户名,默认是root
-p 需要用户输入密码
出现这个界面表示登录成功
如果使用命令行访问数据库,建议大家用这个自动生成的快捷方式
会设置一些启动选项,比如字符集
"D:\Program Files\MysQL\MysQL Server 8.0\binYmysql.exe” “-uroot” “-p”“--default-character-set=utf8mb4”
客户端与数据库服务器之间的通讯方式
对于这种客户端与服务器之间的交互模型,我们称之为C/S架构。
C-Client
S-Server
Q:客户端与服务器之间是通过网络进行交互的,本机的客户端访问本机的数据库服务是不是CS架构?
A:虽然我们访问的是本机的服务,但是还是通过网络访问的,只不过客户端与服务器在同一台电脑上而已。
每台电脑上都有一个环回网卡,本地有一个固定的IP,127.0.0.1 这个IP代表的就是本机IP
无论本机是否有网络,这个IP始终访问的都是本机地址
如果在工作中,连接数据库时,可以通过指定IP地址去连接相应的服务器,可以是内网的,也可以是外网的,但是有一个安全性的问题,如果把服务公开到公网,就有可能给黑客带来可乘之机。
可以通过防火墙,和白名单(只有白名单中的机器才可以访问目标主机),来限制可以连接服务器的机器。
在公司里一般都是要部署到内网中,通过外网是连不上数据库服务器的,可以通过跳板机去连接。
当前我们数据库安装完成之后,只允许本机连接,如果其他的机器想连接那么就需要把其他机器的IP加入到白名单 。
图形化客户端工具
MySQL数据库简介
MySQL是一个关系数据库
是指采用关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格
关系数据库就是由二维表格及其他们之间的联系所组成的一个数据组织
给每个班级编号 给每个学生编号 ,并与班级表之间建立关系
如何操作数据库
数据库是用来保存数据的
操作数据库要使用SQL(这是一个标准,也是一门语言)
SQL本身就是针对数据库操作的语言,和数据库是两个概念,不要搞混了
这门语言非常简单,现在只需要掌握简单的增删查改,以及一些复杂的查询就可以了
SQL的分类
DDL:数据定义语言,用来维护存储数据的结构(data definition language)
代表指令:create,drop,alter
DML:数据操纵语言,用来对数据(可以理解为数据行)进行操作data manipulation language
代表指令:insert,delete, update
DML中又单独分了一个DQL,数据查询语言,代表指令:select。
DCL:数据控制语言,主要负责权限管理和事务data control language
代表指令:grant,revoke,commit
DCL主要是数据库管理员,或是运维来使用
以上SQL我们主要会在后面学习DDL和DML的操作
数据库的操作
我们要操作的数据库必须是我们自己的那个库
1.首先要创建一个属于自己的数据库
创建之前需要检查一下是不是同事已经创建过了
1. show databases;
查看当前服务器所有的数据库
现在有的都是MySQL 自带的数据库,记录的是一些关于MySQL自身的一些配置,性能,系统变量信息。
不明白它的作用,千万不能改动,更不能删除
如果说修改错了或者删除了,MySQL就无法启动了
如果没有备份的情况下,那么就只能重新安装数据库服务
创建数据库时,每一个数据库都要起不同的名字(名字不能重复)
(1)mysql> 提示符,新写的每一行SQL都以这个提示开头
(2)show 是一个关键字,表示的是要执行的操作类型,作用显示某写信息
(3)databases 要显示的信息是所有的数据库,一定要是复数
(4);以分号作为每条sql语句的结尾,注意是分号的结尾
Tip:
1.如果第一行没有写分号,按回车之后就会另起一行,继续去写未完成的SQL,直到遇见分号为止
2.如果写了很多的SQL,中途发现错了,想要重新开始一行,可以使用ctrl+c
3.set 集合,在这里表示结果是一个集合,也就是我们以后常说的结果集
4.(0.00 sec) 表示执行时间 0.00表示这个时间不超过10ms(正常查询这个时间不准确)
创建数据库
1.红色表示的mysql中的关键字
2.大括号表示必须要有这个关键字,里面的|是或的意思也就是说database 和 schema 必须写一个,他们都表示数据库的意思
3.中括号表示可有可无,也就是说是可选项,当前这里写的if not exists表示如果不存在则创建数据库
4.db_name:用户自定义的内容,这里就是数据库的名字
这些规则在MYSQL文档中都是通用的,在编程界大多数的语法描述也是用这套规则
1.创建一个名字为计算机一班的数据库
1.先看一下当前有没有与要创建的数据库重名的
show databases;
2.根据语法规则创建一个计算机一班的数据库(大小写不敏感)
create database ClassOneComputers;
执行结果 受影响的行数对于成功创建一个数据库返回就是一条成功记录(信息)
3.检查是否创建成功
===>或者合成一句create database if not exists ClassOneComputers;
4.当再次执行相同的SQL时,虽然也是执行成功,但是多了一条警告信息warning
这是因为执行SQL时,数据库已经存在了
5.展示警告信息
show warnings;
6.如果不加 if not exists则直接报错
2.创建数据库并指定字符集和排序规则
创建数据库的时候强烈建议大家手动明确认定字符集
创建一个名为test_db03的数据库,并指定字符集和排序规则
create database if not exists test_db03 character set utf8mb4 collate utf8mb4_0900_ai_ci;
3.查看当前数据库服务全局的默认字符
show variables like '%character%';