Java教程

初识数据库

本文主要是介绍初识数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • 数据演变史
    • 单独的文本文件
    • 软件开发目录规范
    • 数据库应用
  • 数据库应用发展史
    • 单机游戏阶段
    • 多机游戏阶段
  • 数据库本质
    • 在微观层面
    • 在宏观层面
    • 数据库软件的本质
  • 数据库分类
    • 关系型数据库
      • 关系型的特点
      • 常见关系型数据库名称
    • 非关系型数据库
      • 非关系型的特点
      • 常见非关系型数据库名称
  • SQL与NoSQL
    • SQL与NoSQL的由来
    • SQL语句
    • NoSQL语句
  • MySQL简介
  • MySQL下载与安装
    • 版本问题
    • 下载使用
    • 目录结构
  • MySQL基本使用
  • 系统服务制作
    • 添加环境变量解决频繁切换路径的问题
    • 编写固定的指令解决需要每次启动服务端
    • 移除系统服务的方法
  • 设置和修改密码
    • 直接输入mysql登录
    • 如何区分当前是否是游客模式
    • 使用用户名和密码的方式登录
    • 修改管理员密码
  • 重要概念
  • 基本SQL语句
    • 操作库的基本SQL语句
    • 操作表的基本SQL语句
      • 如何查看表的所属库
      • 如何切换到指定库下
    • 操作记录的基本SQL语句
        • 逐行展示数据
        • 查看指定字段
        • 单条数据
        • 多条数据

数据演变史

单独的文本文件

没有固定的存放位置
例如:
C:\info.txt D:\data\userinfo.txt F:\userdata\admininfo.txt
没有固定的数据格式
例如:
jack_ma|123456 pony_ma$123456 robin_li~123456
因为没有统一的标准,程序彼此无法兼容

软件开发目录规范

按照文件功能的不同规定了相应的位置。文件查找变得统一,但是没有解决最关键的格式问题

数据库应用

解决了存放位置和数据格式问题,将数据处理部分统一了起来

数据库应用发展史

单机游戏阶段

数据各自保存在各自的计算机上,无法实现远程共享
特点:无需连接互联网

多机游戏阶段

数据统一基于网络保存到某个固定的服务器上,实现了数据共享
特点:必须连接互联网

数据库本质

在微观层面

运行在计算机上专门处理数据的进程(程序)
例如:
内存中的pycharm代码

在宏观层面

提供给操作者一个简单快捷的操作进程的软件
例如:
屏幕上的pycharm界面
注意:工日常作中提到数据库的时候大部分指的是操作数据库的应用软件

数据库软件的本质

数据库软件的本质其实也是一款CS架构的软件, 所以现在市面上其实存在很多数据库软件

数据库分类

关系型数据库

关系型的特点

  1. 有固定的表结构(最主要的特征)
    例如:
    有固定字段的excel表格
    id name gender age height
  2. 并且表与表之间可以建立代码层面的关系
    例如:
    用户表与车牌表
    用户购车 那么用户数据和车辆牌照数据就应建立关系

常见关系型数据库名称

MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server

据库名称 特点
MySQL 关系型数据库的代表,开源免费,使用频率极高
Oracle 关系型数据库的代表,开源免费,使用频率极高
PostgreSQL 支持二次开发(自己嫁接、扩展功能)
MariaDB 与MySQL是同一个作者,开发的初衷是作为MySQL的替代品
sqlite 小型数据库,携带方便但功能较少;主要用于本地测试使用
sql server 老牌数据库软件,目前使用较少

非关系型数据库

非关系型的特点

  1. 没有固定的表结构
    数据存取采用K:V键值对的形式(最主要的特征)
    {'name':'kevid'} {'adminname':'admin','pwd':qwer1234}
  2. 并且表与表之间无法建立代码层面的关系

常见非关系型数据库名称

Redis、MongoDB、Memcache

数据库名称 特点
Redis 目前最火的非关系型数据库,数据类型丰富,功能强大
MongoDB 最像关系型数据库的非关系型数据库,主要用于爬虫和大数据
Memcache 被Redis取代了

SQL与NoSQL

SQL与NoSQL的由来

数据库服务端支持很多客户端来链接使用
例如:
数据库自带的客户端,python代码编写的客户端,java代码编写的客户端等
如何让服务端兼容诸多客户端,实现正常交互
方式一:让服务端识别并自动切换对应语言(不太合理)
方式二:提前规定SQL语句与NoSQL语句,统一沟通标准(更加合理)

SQL语句

与关系型数据库交互的语言
注意:SQL有时候用来标识关系型数据库,有时候表示SQL语句

NoSQL语句

与非关系型数据库交互的语言
注意:NoSQL有时候用来标识非关系型数据库,有时候表示NoSQL语句

MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

MySQL下载与安装

版本问题

5.6X:使用最为广泛的稳定版本
5.7X:目前正在逐步过渡使用的版本
8.0X:最新版本

下载使用

官网:https://www.mysql.com/

  1. 点击步骤:
    第一步:downloads
    第二步:(GPL) Downloads
    第三步:MySQL Community Server
    第四步:Archives
    选择版本和系统(以5.6.44为例)
    点击下载对应的zip压缩包即可

  1. 解压处理
    建议压缩到D或者E、F盘的根目录方便查找

目录结构

  • bin文件夹
    mysqld.exe 服务端
    mysql.exe 客户端

  • data文件夹
    存放数据

  • my-default.ini文件
    默认配置文件

  • README文件
    说明书

MySQL基本使用

必须要先启动服务端,再启动客户端链接
以F:\mysql-5.6.44-winx64为例

  1. 以管理员身份运行cmd
    切换到bin路径下
    F:
    cd mysql-5.6.44-winx64\bin

  1. 启动服务端
    mysqld
    维持cmd窗口不要关闭,重新打开一个新的cmd窗口
  2. 启动客户端链接服务端
    先切换到bin路径下
    F:
    cd mysql-5.6.44-winx64\bin
    然后直接输入mysql即可登录服务端
    提示:不带用户名和密码 是游客模式(只能体验基本功能)

系统服务制作

添加环境变量解决频繁切换路径的问题

将F:\mysql-5.6.44-winx64\bin添加到系统环境变量

编写固定的指令解决需要每次启动服务端

  1. 先确保之前测试的服务端关闭(直接点击关闭cmd窗口即可)
  2. 重新以管理员的身份打开cmd窗口
    mysqld --install
    结果显示:Service successfully installed.
  3. 初次启动需要人为干预
    net start mysql
  4. 关闭所有的cmd,随意打开一个cmd窗口
    输入mysql即可链接到服务端

移除系统服务的方法

  1. 管理员身份运行cmd
  2. 先停止服务端
    net stop mysql
    3 .移除系统服务
    mysqld --remove
    结果显示:Service successfully removed.

设置和修改密码

直接输入mysql登录

默认是游客模式,操作权限有限

如何区分当前是否是游客模式

执行show database;
结果如果是两条 表示是游客
结果如果是四条及以上 表示是用户

使用用户名和密码的方式登录

  • 普通用户登录
    mysql -u用户名 -p密码
  • 管理员账号登录
    第一次登录没有密码,直接回车即可
    mysql -uroot -p
    提示输入密码,直接回车

修改管理员密码

方式1:在cmd窗口下直接修改(无需登录)
mysqladmin -u用户名 -p原密码 password 新密码

  • 第一次无密码修改
    -p后面放空即可

  • 有密码之后修改
    mysqladmin -uroot -p原密码 password 新密码

方式2:登录状态下修改当前用户密码(先登录)
set password=PASSWORD('新密码'); 最新版不支持

重要概念

概念 类似
文件夹
文件
记录 文件中一行行数据

基本SQL语句

操作库的基本SQL语句

show databases; 查看所有的库名称
show create database 库名; 指定查看某个库的信息

create database 库名;

alter database 库名 charset='gbk'; 修改字符编码

drop database 库名;

操作表的基本SQL语句

表是存放于库里面,所以操作表之前,应该先确定表所在的库

如何查看表的所属库

select database();
结果如果是NULL表示当前没有切换到任何库下

如何切换到指定库下

use 库名;

注意:强调我们在操作库、表、记录的时候,MySQL默认自带的都不要修改

show tables; 查看当前库下所有的表名称
show create table 表名; 指定查看某个表的信息
describe 表名; 指定查看表的字段信息
desc 表名; 指定查看表的字段信息的简写方式

create table 表名(字段名称1 字段类型1,字段名称2 字段类型2);

alter table 表名 rename 新表名; 修改表名

drop table 表名;

操作记录的基本SQL语句

操作记录之前,肯定要先确定记录数据所在的库和表

select * from 表名; 查看表里面所有的数据
select * from 库名.表名; 查看指定库下面的指定表里面的所有数据

逐行展示数据

select * from 表名\G;
select * from 库名.表名\G;

查看指定字段

select Host,User from mysql.user

单条数据

insert into 表名 values(值1,值2);

多条数据

insert into 表名 values(值1,值2),(值3,值4);

update 表名 set 字段=新值 where 筛选条件;
update staff_wage set name='tom007' where id=002;

delete from 表名 where 筛选条件;
delete from staff_wage where id=3;
注意:如果不加筛选条件就是删除所有的数据

这篇关于初识数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!