MySQL数据库安装及基本操作

1.MySQL基本操作

1.1数据库的作用

数据库是存放数据的仓库

 

92af0ce7449ede4355b73fdc4f65ff2a.png

数据库:数据库中存放的是表,一个数据库中可以存放多个表

表:表是用来存放数据的。

1.2 数据库的发展史

萌芽阶段:文件系统

最初始的数据库是用磁盘来存储数据的。文件就是最早的数据库。

 

第一代数据库:层次模型、网状模型

 

c87c464285412b5e07a5aa71af4d522a.png

层次模型

缺点:

  1. 查找不同类的数据效率低了(导航的结构的缺点)
  2. 数据不完整(不能区分到底是一个李白还是两个李白)

网状模型

网状模型解决了层次数据的数据不完整的问题,但是没有解决层次模型的导航问题。

 

92a92ea1545f333ca881a1f8460d3225.png

 

第二代数据库:关系型数据库

特点:

  1. 每个表都是独立的
  2. 表与表之间通过公共字段来建立关系

 

1a406640dbb42700ac1dae55f8f30a12.png

优点:解决了导航问题,并且数据完整性得到解决

缺点:多表查询效率低了

提示:我们现在用的主流的数据库都是关系模型的。

NoSQL(非关系型数据库)解决关系型数据库多表查询效率的问题,常见的非关系型数据库有:Redis、mongodb。数据库中存储格式是键值对。

1.3MySQL安装

下载安装包:https://dev.mysql.com/downloads/

 

58f990e6ddf25ac9bc40a5c48a5887aa.png

选择好版本进行下载

 

509271b19b64c9570eabbcbe22ade6a9.png

选择这个直接开始下载

 

3d41ecfa995971b72cd872867e1a1829.png

解压安装包到文件夹内并打开

 

d036f9d3c4bc7e8876bdc83bd1d50121.png

在解压目录下新建my.ini文件

 

ddc46c0abb23b2fede64cb471a683a7a.png

创建data目录存放数据库数据

 

28c8c94f18160ea921fc6106737b4e90.png

将下面文本拷贝进my,ini文件中

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录   ----------是你的文件路径-------------
basedir=D:\workspace\mysql\mysql-8.0.40-winx64
# 设置mysql数据库的数据的存放目录  ---------是你的文件路径data文件夹自行创建
#datadir=D:\workspace\mysql\mysql-8.0.40-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

以管理员身份打开命令提示符切换到bin目录下

 

19a81cd3fd9109ba708d9f5d39e69e31.png

在MySQL目录下的bin目录下执行命令:

mysqld --initialize --console

红框内是初始密码: K5Oj<kw/(Ti1

 

dca6a0da1874e47d0f821a921fe1d6cc.png

安装mysql服务并启动

mysqld --install mysql

 

f27907af787e8a8c11d725f918527124.png

net start mysql

 

3e0797692aa2fd597c9beaa3f7af5a00.png

连接MySQL

mysql -uroot -p

 

c5e8fea561aa3f9662376af3a6bf6998.png

输入刚刚的随机密码 K5Oj<kw/(Ti1

 

31d98d758a3b4d92e2d3dd0edcdf60ee.png

修改密码

这里密码为wzj123456

ALTER USER 'root'@'localhost' IDENTIFIED BY 'wzj123456';

 

5a6d15feecb22f2428605b1d06e707c4.png

可以输入quit或者exit都可以退出,登录就可以用mysql -u root -p

 

ef92c7b175e38bf10dd4e83c69263fa5.png

配置环境变量

此电脑->属性->高级系统设置->环境变量

在系统变量中新建变量名:MYSQL_HOME,变量值:MySQL的目录

 

c38f56502bafa5bcea53d04cfac8dacb.png

然后在系统变量里面找到path变量添加%MYSQL_HOME%\bin

 

fba3ed6add503feeb3fa3fd549d7c4ca.png

1.4 启动/关闭MySQL服务

方法一:在服务面板中启动或关闭

win+r输入services.msc打开服务面板

 

4069d4a15e350674344d29924b67ddfe.png

 

d508799b1a9cab0e0aaf0ec8c9855a9b.png

方法二:通过命令行启动\关闭

  • net start 服务名: 启动MySQL服务
  • net stop 服务器: 关闭MySQL服务

 

88b1c61c1b01b2f290a6ab2842b7f12e.png

注意:必须通过管理员身份启动命令行

1.5 SQL介绍

SQL是什么

Structured Query Language(结构化查询语言),是用来操作关系型数据库的一门语言。这是一个关系型数据库的通用操作语言,也成为标准SQL,也叫SQL-92。

多学一招:数据库的生产厂商为了占有市场份额,都会在标准SQL的基础上扩展一些自己的东西以吸引用户。

常见的关系型数据库

关系型数据库

开发公司

使用语言

SQL Server

微软公司

T-SQL

Oracle

甲骨文公司

PL/SQL

MySQL

MySQL AB 公司开发——甲骨文公司收购

MySQL

思考:已知标准SQL可以在所有的关系型数据库上运行,在Oracle上编写的PL/SQL能否在MySQL上运行?

答:不能,只能运行标准SQL

1.6 连接服务器

通过命令行面板连接

mysql -u root -p

 

6f63dcbadf944a903d54f6c0d1220368.png

关闭连接

方法一:exit

方法二:quit

方法三:\q

1.7 数据库的操作

1.7.1 显示数据库

语法:show databases;

 

1455a4ed0e2dde6f679d7fc3fd60f5d8.png

安装MySQL后,MySQL自带了4个数据库

  1. information_schema:存储了MySQL服务器管理数据库的信息。
  2. performance_schema:MySQL5.5新增的表,用来保存数据库服务器性能的参数
  3. mysql:MySQL系统数据库,保存的登录用户名,密码,以及每个用户的权限等等
  4. sys:这是MySQL 8.0版本引入的新数据库,它提供了一系列视图和存储过程,用于简化和优化对MySQL服务器的监控和管理。

1.7.2 创建数据库

语法:create database [if not exists] 数据名 [字符编码]([]内的可以省略)

创建数据库:

create database stu;

 

fc4d2a6fb109bc51818508a6e99d90b7.png

如果创建的数据库已存在,就会报错

ERROR 1007 (HY000): Can't create database 'stu'; database exists

 

0e618ab3a8ff41f0e2b1fa29d964c948.png

解决:创建数据库的时候判断一下数据库是否存在,如果不存在再创建

create database if not exists stu;

 

d612f52cacdcb99a850387428f7fa735.png

如果数据库名是关键字和特殊字符要报错

 

b964049243c3f9608be343d83139b34a.png

解决:在特殊字符、关键字行加上反引号

create database `create`;

 

d6aa6c792a6df0d6e6a0f69b5b400014.png

为了创建数据库时万无一失,我们可以在所有的数据库名上加上反引号

创建数据库的时候可以指定字符编码

create database teacher charset=gbk;

 

2d7ffc31f045b23ad9bb9545eeb1066c.png

gbk     简体中文
gb2312: 简体中文
utf8:   通用字符编码

创建数据库如果不指定字符编码,默认和MySQL服务器的字符编码是一致的。

1.7.3 删除数据库

语法:drop database [if exists] 数据库名

删除数据库

drop database teacher;

 

0a36577d477ca33f6375ef872846bcd5.png

如果删除的数据库不存在,会报错

ERROR 1008 (HY000): Can't drop database 'teacher'; database doesn't exist

 

36755df2e2bd9449246fc43dab198379.png

解决:删除之前判断一下,如果存在就删除'

drop database if exists teacher;

 

a791ad0d78167e36796ea4c8b1433e5a.png

1.7.4 显示创建数据库的SQL语句

语法:show create database 数据库名

 

8a2028f943c28583394cda0de2167afd.png

/*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */: 这是一个条件注释,/*!40100 表示这条指令只有在MySQL版本4.1.0或更高版本时才会被执行。这里指定了数据库的默认字符集为 utf8mb4,这是一种编码方式,可以表示更多的字符,包括一些特殊符号和表情符号。COLLATE utf8mb4_0900_ai_ci 是指字符排序规则,ai 表示大小写不敏感(Accent Insensitive),ci 表示不区分大小写(Case Insensitive)。

/*!80016 DEFAULT ENCRYPTION='N' */: 这是另一个条件注释,/*!80016 表示这条指令在MySQL版本8.0.16或更高版本时才会被执行。这里指定了数据库的默认加密状态为 'N',即不加密。

1.7.5 修改数据库

修改数据库的字符编码

语法:alter database 数据库名 charset=字符编码

alter database teacher charset=utf8;

 

105b66f18e0b41412844758d337a0ee7.png

1.7.6 选择数据库

语法:use 数据库名

选择数据库use stu;

 

7bb77312a2fe451d156e1c56d1662cb9.png

1.8 表的操作

1.8.1 显示所有表

语法:show tables

 

2eaa21174e7bf8a860ca992bf0473bc3.png

1.8.2 创建表

语法:

create table [if not exists] 表名(
    字段名 数据类型 [null|not null] [auto_increment] [primary key] [comment],
    字段名 数据类型 [default]…
)engine=存储引擎

单词

  1. null | not null 空|非空
  2. default 默认值
  3. auto_increment 自动增长
  4. primary key 主键
  5. comment 备注
  6. engine 引擎 innodb myisam memory 引擎是决定数据存储的方式

创建简单的表

 

9f9e29ff1ddd07711a80a39617afbfff.png

创建复杂的表

 

2ab268cfb6714750b3b214c607893f48.png

create table 数据库名.表名,用于给指定的数据库创建表

 

dda96db7b12f1585cb8d6b903035b69c.png

70fd2ade4fe0e0f8cece684c6f469664.png

1.8.3 显示创建表的语句

语法:show create table 表名

显示创建teacher表的语句

show create table teacher;

 

8744136040df2fc166d3127769b3ce54.png

将两个字段竖着排列show create table 表名\G

show create table teacher\G;

 

e5ac24f487ef8c11b4022918ac36d77b.png

1.8.4 查看表结构

语法:describe 表名或者desc 表名

查看teacher表的结构

describe teacher;desc teacher;

 

cba1f41fcbb0ef42a00185cbeff21cb7.png

1.8.5 删除表

语法:drop table [if exists] 表1,表2,…

删除表

drop table stu;

 

02f8a7db38a5c370052029658f1c926f.png

如果删除一个不存在的表就会报错,删除的时候可以判断一下,存在就删除。

ERROR 1051 (42S02): Unknown table 'stu'

drop table if exists stu;

 

7fe94ca170699fb2653663b5b0f3fd3a.png

可以一次删除多个表

drop table a1,a2;

 

f3875aa94bd0989c36ca14c7f9333389.png

1.8.6 修改表

语法:alter table 表名

1、添加字段:alter table 表名add [column] 字段名 数据类型 [位置]

例一:添加字段

alter table teacher add age int;

 

1674ed0b3df658b210ffbc960ec2e0c1.png

例二:在第一个位置上添加字段

alter table teacher add email varchar(30) first;

 

c28a10f1cf84dcb822031196636cf707.png

例三:在指定的字段后添加字段

alter table teacher add sex varchar(2) after name;

 

df8afed35bc7102457847d2d75999018.png

2、删除字段:alter table 表 drop [column] 字段名

alter table teacher drop email;

 

da2fab9aa26456dc83c9abd11680e73a.png

3、修改字段(改名改类型):alter table 表 change [column] 原字段名 新字段名 数据类型 …

将字段sex改为xingbie,数据类型为int

alter table teacher change sex xingbie int;

 

409e11b20a210eb4751225c041943c06.png

4、修改字段(不改名):alter table 表 modify 字段名 字段属性…

将性别的数据类型改为varchar(2)

alter table teacher modify xingbie varchar(2);

 

c710a5fe6b2f6f4cdeddf68bfa0d1532.png

5、修改引擎:alter table 表名 engine=引擎名

引擎是决定数据存储的方式

alter table teacher engine=myisam;

 

3904f1874f86a88dee8bb7bb98362a10.png

 

ae64bb875ec2f0a9c116e44384008aaa.png

6、修改表名:alter table 表名 rename to 新表名

alter table teacher rename to stu;

 

279b143e245ed95217ebd59e648a41c0.png

1.8.7 复制表

语法一:create table 新表 select 字段 from 旧表

create table stu1 select * from stu;

特点:不能复制父表的主键,能够复制父表的数据

 

f9b4eab877e0b161248929525545c91a.png

 

77ddbdd1510a708f40f83a38364f31b9.png

语法二:create table 新表 like 旧表

create table stu2 like stu;

特点:只能复制表结构,不能复制表数据

 

0c60f728aca989622c591c40aa33b093.png

1.9 数据操作

创建测试表

 

b57f82301f9e573957c49987709133b1.png

1.9.1 插入数据

插入一条数据

语法:insert into 表名 (字段名,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值