数据库

2022-01-29  本文已影响0人  小赵不在

非原创!!!

一、什么是数据库

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的API用于创建、访问、管理、搜索和复制所有保存的数据。
我们也可以将数据直接存储在文件中,但是直接文件中读写数据速度相抵较慢。
所以我们要使用专门的软件来存储数据(底层还是把数据通过特殊格式的文件存储在硬盘上)。

二、为什么需要数据库

1)数据永远保存!!!
2)速度比较快
3)查询和管理数据方便

三、数据库的分类

数据库主要分为2类:关系型数据库(RDBMS)和非关系型数据库(NOSQL)
关系型数据库(RDBMS)是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Mangagement System)的特点:

四、下载安装MYSQL

下载地址:https://dev.mysql.com/downloads/mysql/
1、

image.png

2、


image.png

3、下载完成后,将zip文件进行解压


image.png

4、


image.png
5、用Notepad++或者文本文档打开my.ini文件进行配置
[client]
#设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
#设置336端口
port = 3306
#设置mysql的安装目录
basedir=D:\mysql-8.0.28-winx64
#设置mysql数据库的数据的存放目录MYSQL 8+ 不需要以下配置,系统自己生成即可否则哟可能报错
#datadir=C:\\web\\sqldata
#允许最大连接数
max_connections=20
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
image.png

6、初始化MySQL数据库,并注册MySQL服务
1、以管理员的身份去打卡cmd命令行工具,切换到MySQL的解压目录下的bin目录


image.png

2、初始化MySQL数据库,并注册MySQL服务 命令:mysqld --initialize --console


image.png
3、执行完成后,会输出root用户的初始默认密码,我的初始默认密码如图红框所示
image.png
4、安装MySQL,命令:mysqld install
有以下红框中的提示就是安装成功了
image.png

5、启动ySQL,命令:net start mysql


image.png
6、登录MySQL
以管理员的身份打开cmd命令行工具,切换到MySQL的解压目录下的bin目录
登录MySQL,命令:mysql -h 主机名 -u 用户名 -p(mysql -h localhost -u root -p)
image.png
image.png

7、修改MySQL密码
将初始化的临时密码改为自己的密码
命令:alter user ‘用户名’@‘主机名’ identified by '新密码';
alter user ‘root’@‘localhost’ identified by '123456';


image.png

8、修改密码成功后,在进行登录


image.png
9、配置环境变量
此电脑——>属性——>高级系统设置——>环境变量 image.png image.png

五、下载Navicat

我的百度网盘有下载好的压缩包
1、打开navicat后——>帮助——>注册——>将key文件中的注册码填入
2、

image.png
3、 image.png
image.png
4、Navicat连接MySQL8和之前的版本有所区别
mysql8之前的版本中加密规则是mysql navicat password,而在mysql8之后的加密规则是caching_sha2_password
1)解决Navicat8连接MySQL8的问题
在cmd命令界面(用管理员打开),执行mysql命令
①更改加密方式:
alter user 'root'@‘localhost’ identified by ‘密码’ password expire never;
②更改用户密码:
alter user 'root'@‘localhost’ identified with mysql_native_password by '密码';
③刷新权限:
flush privileges;
image.png

六、使用Navicat

mysql关键字不区分大小写
1、

image.png
2、SQL语句
1)查询所有的数据库
show databases;
2)创建数据库的SQL语句
格式:
create database 数据库名 default character set 字符编码 collate 字符编码校验规则
例如:
create database demo default character set utf8 collate utf8_general_ci;
3)修改数据库的字符编码
格式:
alter database 数据库名 default character set 字符编码;
例如:
alter database demo default character set gbk;
4)删除数据库
drop database 数据库名;
5)切换操作的数据库
use 数据库名;
3、表的概念
表存储数据是以行的形式来存储,一个行数据就一个完成的概念。
被分解的一个一个单独的信息,我们称之为字段(属性的意思)
4、字段的数据类型
①整型int(存整数的)
②浮点型float和double(存小数的)
float:单精度浮点型,8位精度(4节字符)
double:双精度浮点型,16位精度(8字节)
浮点型是存储近似值,不适合存储金钱
③定点数(存储精确的数值)
decimal(m,d)
定点数,m<65是总个数,d<30且 d<m个小数位
m:代表有效数字的位数,在1~65之间
d:代表小数位,在0~30之间,但是同时需要d<m
④字符串
char:固定长度,最多255个字符
varchar:可变长度,最多65535个字符
text:可变长度,最多65535个字符
longtext:可变长度,最多2的32次方-1个字符
⑤二进制数据
保存图片、压缩包/视频......
这些如果保存到数据库,要先把这些转成二进制的数据再保存到数据库
这个不太常用,因为我们现在有其他更好的方式来存储这些大的文件

七、管理表

mysql关键字不区分大小写
1、查看当前数据库的所有表
show tables;
2、创建表
create table 表名(字段名 字段类型,字段名 字段类型,......);
比如:
CREATE TABLE student(
id INT(10) NOT NULL,
name VARCHAR(100),
age INT(2),
classes VARCHAR(100),
PRIMARY KEY(id)
);
3、修改表
1)给表添加一个字段
alter table 表名 add column 字段名 字段类型;
2)给表添加多个字段
alter table 表名 add 字段名 字段类型,add 字段名 字段类型,......;
3)修改字段数据类型
alter table 表名 modify column 字段名 字段类型;
4)修改字段的名称
alter table 表名 change column 原字段名 新字段名 字段的数据类型;
5)删除表的一个到多个字段
alter table 表名 drop column 字段名;
alter table 表名 drop column 字段名,...,drop column 字段名;
6)修改表名
alter table 原表名 rename to 新表名;
4、删除表
drop table 表名;
5、查看表结构
describe 表名;

八、管理数据

1、查询表的所有数据
select * from 表名;
2、给表插入数据
insert into 表名 values (字段1的值,字段2的值...);
insert into 表名 (字段1,字段2,字段5) values (字段1的值,字段2的值,字段5的值);
3、修改表数据
update 表名 set 字段名 = 字段值,字段名 = 字段值,...;
update 表名 set 字段名 = 字段值 where 字段名 = 字段值;
4、删除表
delete from 表名;
注:如果表中有字段是字段递增类型的,使用delete删除全表后,自动递增的起始点保留(表也仍然保留)。用drop的话就不会保留(连表也会删除掉)。
delete from 表名 where 字段名 = 字段值;

九、查询数据

1、简单查询
1)查询所有列
select * from 表名;
2)查询指定的列
3)合并列查询
函数: concat
①想在在一列中展示班级姓名,表头是“班级-姓名”格式,内容是班级-姓名(一班-张三),需要使用合并列
格式:select concat(str1,str2,...) from student;
例如:select concat(classes,'-',name) '班级-姓名' from student;
②查询学生的姓名和他的总成绩,列也支持算数运算
格式:select name,(成绩1的字段名+成绩2的字段名) '总成绩' from student;
③查询常量
select name,'光明小学' from student;
④去重查询
函数:distinct
查询班级
select distinct classes from student;
2、条件查询
基本格式:select 字段,字段,...,字段 from 表名 where 查询条件;
①比较条件
符号:

=      等于
!=     不等于
>      大于
<      小于
>=    大于等于
<=    小于等于
between and   在a和b两个值之间,包含a和b

②逻辑条件
符号:

and   并且
or    或者

③判空查询
符号:

=''          是空字符串''
is null      是null值
is not null  不是null值
<>           不是,非
<>''         不是空字符串'',也不是null值

3、

上一篇下一篇

猜你喜欢

热点阅读