day025 -数据库

这篇博客详细介绍了MySQL数据库的卸载、安装过程,包括解压缩安装文件、编写配置文件、初始化、解决安装中遇到的问题,如DLL错误、服务名缺失等。还涉及配置环境变量和客户端的基本操作,如使用命令行和图形化界面Navicat进行数据库连接和SQL语言的初步学习。
摘要由CSDN通过智能技术生成

第二阶段JavaWeb

数据库

前端(H5,CSS,JS,JQ,Ajax,Bootstrap)

服务器Tomcat

服务器技术Servlet

数据库概念

数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。

数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。

RDBMS

数据库:存储、维护和管理数据的集合。

常见数据库

mysql,sqlserver,Oracle,db2 ===> R(Relation)DBMS ==> 关系型数据库

redis,MongoDB,HBase ==> NOSql ==> Not Only Sql

MySQL介绍

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ccc2Zm1M-1660574328183)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815095840069.png)]

MySQL卸载

  • 开始-控制面板-卸载程序-mysql

​ 如果找到,右键卸载

  • 删除隐藏文件

​ C:\ProgramData\MySQL

  • 删除MySQL文件夹

​ 删除MySQL的安装文件

  • 删除注册表

打开注册表 windos+r 输入 regedit

\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\MySQL

\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\MySQL

将最后一个MySQL文件删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-26bwMEJ4-1660574328183)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815100528760.png)]

MySQL安装

mysql现在安装的是5.7.

mysql的安装方式有两种:

一种是exe方式

另外一种解压版

这次就使用解压版安装


1 解压缩到非中文目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PThzOwBe-1660574328183)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815101235392.png)]

2 编写配置文件

2.1 在安装目录下新建my.ini的配置文件

打开文件后缀和隐藏文件显示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uzI8y01T-1660574328184)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815101352491.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KNFtHH2F-1660574328184)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815101429202.png)]

2.2 新建文件内编写内容

[Client]
port = 3306
 
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql-5.7.20-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-5.7.20-winx64\data
 # 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

特别说明:

basedir 要换成自己的路径

datadir 要换成自己的路径,且该data文件夹不能存在,因为后续会自动创建.现在存在反而后续会初始化失败!!

3 执行命令初始化

3.1 使用管理员权限打开命令提示符(CMD)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PufcfFdB-1660574328184)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815101855345.png)]

3.2 进入到mysql的安装路径的bin目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-icyTx4N1-1660574328185)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815102056294.png)]

3.3 执行命令

安装服务

mysqld --install  //  显示服务安装成功后继续执行命令

Service successfully installed   // 成功了
mysqld --initialize --console  // 初始化,成功后有一个临时密码 0.X*8Ym7AlH2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1m0Vr4ye-1660574328185)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815102430355.png)]

4 开启服务

执行命令,开启mysql服务

net start mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LrjAiPn7-1660574328185)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815102630568.png)]

5 修改密码

登录到mysql

mysql -uroot -p
Enter password: 0.X*8Ym7AlH2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gM29RPu4-1660574328185)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815102744623.png)]

修改密码

set password = password('123456');

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qj1pwZZh-1660574328186)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815102811473.png)]

退出再试

安装BUG

1 报错120.dll

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zFE5bpVt-1660574328186)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815112711058.png)]

下载安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CPrsJmHY-1660574328186)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815112743401.png)]

双击安装后,重新执行命令

2 没有服务名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gBs7yQdT-1660574328186)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/WNCS}CABM0VA~E%9T03RH.png)]

缺失一个步骤,需要执行命令 mysqld --install,后再开启服务

3 初始化失败

执行完mysqld --initialize --console 后,没有出现密码

  1. 确定my.ini配置文件内容是否正确
  2. 安装路径内是否已经存在data文件夹,如果存在的话删除data文件再试

4 万能解决方案

1 认真,慢

2 检查my.ini内容是否正确

3 管理员权限进入cmd

4 执行命令先删除服务 mysqld remove

5 再重新安装服务器mysqld --install

6 在重新初始化产生密码

7 启动服务

配置环境变量

选择我的电脑–>右键属性–>高绩系统设置–>系统环境变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9efyQuZB-1660574328187)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815113727201.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5JFBQgXf-1660574328187)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815113746981.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7C6aArsK-1660574328187)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815113841015.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vRt7YDC7-1660574328187)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815113935206.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RB4urhEr-1660574328188)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815114055811.png)]

客户端基本操作

  • 启动服务

    • 命令启动 net start mysql

    • 图形化启动

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rmRqoH9n-1660574328188)(C:/Users/张海涛/Desktop/zz2212/讲师每日笔记/day25-mysql.assets/image-20220815142230814.png)]

    • 现在,一般情况下,开机自启的.

  • 登录mysql

    • 使用命令行登录 mysql -uroot -p123456
    • Navicat连接
  • 退出

    • exit

SQL语言

SQL:Structure Query Language。(结构化查询语言)

SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。现在遵循的SQL99标准

各数据库厂商都支持ISO的SQL标准。普通话

各数据库厂商在标准的基础上做了自己的扩展。方言


DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据-增删改);

DQL(*)(Data Query Language):数据查询语言,用来查询记录(数据)。

DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

注意: ==sql语句以**;**==结尾(偶尔见到有\g结尾 , \G 也可以…)

DDL

DDL主要是针对数据库,表列的操作,即创建(create),查询(show),删除(alter)

查询数据库

show databases;

创建数据库

create database 数据库名字;

修改数据库

创建数据库时,默认字符集utf8

只能修改字符集,数据库名字不能修改

所以一般不用

删除数据库

drop database 数据库名字;

查询当前数据库名字

select database()sel;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| java2212           |
| javaee2212         |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> select database javaee2212;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'javaee2212' at line 1
mysql> select database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| java2212           |
| javaee2212         |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> use javaee2212;
Database changed
mysql> select database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql> select database();
+------------+
| database() |
+------------+
| javaee2212 |
+------------+
1 row in set (0.00 sec)

mysql>

建库完成后,操作需要在库中进行

常用数据类型

数据类型解释长度
int整型11,可以不写,默认11
varchar字符串0-255
char字符串0-255
double浮点型(5,2)总长5位,其中包含两位小数,999.99
date日期没有长度
datetime日期时间没有长度
timestamp时间戳没有长度

数据库中,字符串不分单字符,所有字符串都是单引号括.使用char和varchar都可以代表字符串

varchar和char的区别

var是variable的缩写,就是可变化的字符串

1.数据库的调用

use 数据库名;

2.建立表

create table 图表名字(
    名字  数据类型,
    ....
);

3.修改表明

rename table  新的表名;

4.修改列明

alter table 表名 change 旧名 新名字 数据类型(长度);

5.增加列

alter table 表名 add 新列名 数据类型(长度);

6.删除列

alter table 表名 drop 列名;

7.展示表结构

desc 表名;

8.删除表

drop table 表名字;
 create table student;
ERROR 1113 (42000): A table must have at least 1 column
mysql> create table student();
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
mysql> create table student(
    -> id int(6),
    -> name varchar(32),
    -> sex char(3),
    -> brithday date
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> show table student;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'student' at line 1
mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(6)      | YES  |     | NULL    |       |
| name     | varchar(32) | YES  |     | NULL    |       |
| sex      | char(3)     | YES  |     | NULL    |       |
| brithday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> alter table add age int;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'add age int' at line 1
mysql> alter table student add age int;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(6)      | YES  |     | NULL    |       |
| name     | varchar(32) | YES  |     | NULL    |       |
| sex      | char(3)     | YES  |     | NULL    |       |
| brithday | date        | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table student change age aage int(8);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(6)      | YES  |     | NULL    |       |
| name     | varchar(32) | YES  |     | NULL    |       |
| sex      | char(3)     | YES  |     | NULL    |       |
| brithday | date        | YES  |     | NULL    |       |
| aage     | int(8)      | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table student drop aage;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(6)      | YES  |     | NULL    |       |
| name     | varchar(32) | YES  |     | NULL    |       |
| sex      | char(3)     | YES  |     | NULL    |       |
| brithday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql>


图形化界面

SQLYog

Navicat

DBeaver


Navicat图形化操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M6xm7yaR-1660574328188)(D:/day25/day25/code/day25-mysql.assets/image-20220815161253508.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AR9SppJn-1660574328188)(D:/day25/day25/code/day25-mysql.assets/image-20220815161440343.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q4LOO5a3-1660574328189)(D:/day25/day25/code/day25-mysql.assets/image-20220815161546701.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iK4igDFc-1660574328189)(D:/day25/day25/code/day25-mysql.assets/image-20220815161929668.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bW1vuXZX-1660574328189)(D:/day25/day25/code/day25-mysql.assets/image-20220815162114748.png)]

Navicat命令操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MTjvmbcI-1660574328190)(D:/day25/day25/code/day25-mysql.assets/image-20220815162241702.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YU0ZL2xi-1660574328190)(D:/day25/day25/code/day25-mysql.assets/image-20220815162400393.png)]

Navicat编辑器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VsQXgGmu-1660574328190)(D:/day25/day25/code/day25-mysql.assets/image-20220815162609999.png)]

DML

数据操作语言,针对表中数据进行操作,主要是对表数据进行增,删,改。

增加所有数据(中间用逗号隔开)

insert into 表名字 (数据名字...) values(对应的数据类型...)

增加部分数据

insert into 表名字 (部分数据名字...) values(部分数据对应的数据类型...)

插入多条数据

如果是全部数据,数据名字可以省略不写,但数据类型必须与之对相应

insert into 表名字values
(数据对应的数据类型...),
(数据对应的数据类型...),
(数据对应的数据类型...),
(数据对应的数据类型...);

修改数据

[]代表不强制,可以有,也可以没有

where可以不加,但是实际开发时必须加上

update 表名 set 字段1=1[,字段2=2,...] [where 字段 =];

删除数据

delete from 表名 [where 数据名字 =];
insert into stu values
(2,'东方不败',68,'男','1987-06-15');
insert into stu (id,name,age,sex,brithday)values
(3,'独孤求败',998,'女','1987/12/08');
insert into stu values 
(4,'赵敏',18,'女','1987/12/28'),
(5,'梵高',66,'女','1997/12/08'),
(6,'呆毛',87,'女','2000/06/18');
delete from stu where id = 1;
update stu set age = 68,name = '花琪' where id = 2;
update stu set age = 3,brithday = '1998-03-16' where id = 3;
insert into stu (id,name) values (7,'樱');

以没有

where可以不加,但是实际开发时必须加上

update 表名 set 字段1=1[,字段2=2,...] [where 字段 =];

删除数据

delete from 表名 [where 数据名字 =];
insert into stu values
(2,'东方不败',68,'男','1987-06-15');
insert into stu (id,name,age,sex,brithday)values
(3,'独孤求败',998,'女','1987/12/08');
insert into stu values 
(4,'赵敏',18,'女','1987/12/28'),
(5,'梵高',66,'女','1997/12/08'),
(6,'呆毛',87,'女','2000/06/18');
delete from stu where id = 1;
update stu set age = 68,name = '花琪' where id = 2;
update stu set age = 3,brithday = '1998-03-16' where id = 3;
insert into stu (id,name) values (7,'樱');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值