Java教程

数据库

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

目录
  • 数据存取演变史
  • 数据库软件应用史
  • 数据库的本质
  • 数据库的分类
  • MySQL简介
  • MySQL基本使用
  • MySQL系统服务制作
  • MySQL密码相关操作
  • SQL与NoSQL
  • 数据库重要概念
  • MySQL语法
  • 针对库的基本SQL语法
  • 针对表的基本SQL语法
  • 针对记录的基本SQL语法

数据存取演变史

1.文本文件:无法实现代码互通
   文件路径不一致
   文件格式不一致
2.软件开发目录规范:无法实现代码互通
   存储位置一直(db文件夹)
   数据格式未完全统一
3.数据库服务:实现代码互通
    存取位置一致
    数据格式一致

数据库软件应用史

1.单机游戏 
  不同计算机上的相同程序 数据无法共享
  数据库服务全在本地
2.网络游戏
   不同计算机上的相同程序 数据可以共享
   数据库服务单独在网络假设(远程数据库服务)
注:远程数据库服务
	数据库集群
    		1.数据安全性问题
            2.服务器负载问题
     让多台服务器运行相同的数据库服务
 

数据库的本质

1.底层原理层面:数据库指的是专门用于操作数据的进程(运行在内存中的代码)
2.现实应用层面:数据库指的是拥有操作界面的应用程序(用于操作进程的界面)
注:数据库本质上是一款cs架构的应用程序(程序员理论上都可以编写-市面上已经有很多数据库软件)

数据库的分类

1.关系型数据库
  1.1 数据的组织方式有明确的表结构(可以看成是表格-需要指定标题)
  1.2 表与表之间可以建立数据库层面的关系(如业主与房屋表)
      注:只有获取到用户表的一条数据就可以得到与之相关的其余数据
  1.3.种类:
       MySQL:开源 使用最广泛 数据库学习必学
       PostgreSQL:开源 支持二次开发
       MariaDB:开源 与MySQL是同一个作者 使用方法极其相似
       Oracle:收费 安全性极高 主要用于银行及各大重要机关
       sqlite:小型数据库 主要用于本地测试(django框架自带该数据库)
       server:美国Microsoft公司推出的一种关系型数据库系统 可以扩展及高性能的数据管理系统
       db2:IBM开发的一种大型关系型数据库平台
       sq1:
       
 2.非关系型数据库
   2.1 数据的组织方式没有明确的表结构 是以k:v键值对的形式组织的
   2.2 数据之间无法直接建立数据库层面的关系
   2.3 分类
       redis:目前最火 使用频率最高的缓存型数据库
       mongoDB:稳定型数据库 最像关系型的非关系型 主要用于爬虫、大数据
       memcache:通过缓存数据库查询的结果 减少数据库访问次数 已经被redis淘汰
 

MySQL简介

1.MySQL版本分类
  5.6X:前几年使用频率最高的版本
  5.7X:最近尝试迁移的版本(频率+)
  8.0X:最新版 功能强大 但是线上环境几乎不用(本地自己用非常好用)
 注:虽然版本有区别 但是操作上几乎没有区别 主要体现在底层运作
 2.下载
    2.1 访问官方:https://www.mysql.com/
    2.2 DOWNLOADS下载
    2.3 MySQL Community Downloads进入共享界面下载
    2.4 MySQL Community Server最新版本及版本选择界面
    2.5 Archives版本选择-Product Version
    2.6 Download下载
 3.解压安装:压缩包中包含服务端与客户端 支持本地操作
 4.主要文件介绍
    bin文件夹:myaqld.exe服务端   mysql.exe客户端
    data文件夹:存取数据
    my-default.ini:默认配置文件
    

MySQL基本使用

1.启动服务端
  1.1 先切换至MySQL数据库所在位置,如:D盘
  1.2 进入MySQL数据文件夹中(命令:cd mysql按Tab补全剩余文件夹名)
  1.3 进入启动文件夹bin(命令:cd bin)
  1.4 进入MySQL数据库启动文件命令:myaqld
2.启动用户端
	可能会报错:拷贝报错原因百度查找解决方法
  2.1 先切换至MySQL数据库所在位置,如:D盘
  2.2 进入MySQL数据文件夹中(命令:cd mysql按Tab补全剩余文件夹名)
  2.3 进入启动文件夹bin(命令:cd bin)
  2.4 进入MySQL数据库启动文件命令:myaql(如果直接进入是游客模式,能操作的功能很少)
      用命令:myaql -uroot -p(用户名及密码方式进入,管理员刚开始密码为空)
3.查看
	通过命令:show databases 可以查看数据库中的文件夹
4. 退出
	命令:exit、quit两种方式都可以退出
    

MySQL系统服务制作

1.如何解决每次都需要切换路径查找文件(添加环境变量)
  将bin文件路径添加到环境变量中(右键单击此电脑-属性-高级系统设置-环境变量-系统变量的path中双击点击进入新增粘贴-保存)
   1.1 启动服务端直接启动文件命令:myaqld
   1.2 启动客户端直接启动文件命令:myaql -uroot -p
 2.解决启动服务端与客户端两个cmd窗口
   2.1 将MySQL服务端制作成系统服务(开机自启)
       2.1.1 以管理员身份运行cmd
       2.1.2 开启命令:mysqld --install
       2.1.3 关闭命令:net stop MySQL
       2.1.4 移除系统服务
    		先确保服务已关闭
        	 移除命令:MySQL remove
   注:通过指令查看MySQL已经添加到启动服务里了(命令:services.msc)第一次添加不会自动启动
	   启动方式:
    		  1.点击启动服务里的MySQL右键单击
               2.启动命令:net start myaql

MySQL密码相关操作

1.密码修改
  1.1 管理员密码默认为空
  1.2 命令一:MysqlAdmin(-p直接跟原密码不留空格)
	  mysqladmin -u用户名 -p原密码 password 新密码
  1.3 命令二:set password = PASSWORD('新密码')
	  登录进去后修改,登录谁的账号修改谁的密码(有些版本不能用)
 2.忘记密码
    2.1 方式一:直接重装mysql数据库/修改密码所在的文件
    2.2 方式二:先关闭服务端,然后以不需要校验用户身份的方式启动,修改密码之后重新启动
        关闭服务端命名:net stop MySQL
 	    启动命令:mysqld --skip-grant-tables
 	    重新启动一个cmd窗口:命令 mysql -uroot -p
 	    修改密码命令:update mysql.user set password=password(123) where Host='localhost' and User='root';
  	     关闭第一个cmd窗口命令:net stop mysql
  	     重新启动服务端:net start mysql

SQL与NoSQL

1.SQL语句:操作关系型数据库的语法(有时候表示关系型数据库)
2.NoSQL语句:操作非关系型数据库的语法(有时候表示非关系型数据库)
注:数据库的服务端支持各种语言充当客户端 为了能够兼容所有类型的客户端
     如MySQL服务端(MySQL客户端、python代码编写的客户端、java代码编写的客户端)
     1.服务端兼容:消耗数据库的服务端资源
     2.制定统一标准:SQL语句、NoSQL语句

数据库重要概念

1.库:文件夹
2.表:文件夹里面的文件
3.记录:文件里的一行行记录
注:show databases;命令:查看所有的数据库
    show tables;命令:查看所有的表
    select * from mysql.表名;命令:查看某个表里面的所有数据

MySQL语法

1.结束符:;
2.取消符:\c

针对库的基本SQL语法

1.增:create database 库名;
2.查:show databases;
      show creat database 库名;
3.改:alter database 库名 charset='gbk'
4.删:drop database 库名;

针对表的基本SQL语法

1.增:create table 表名(字段名 字段类型,字段名 字段类型,字段名 字段类型,);
2.查:show tables;
      show create table 表名;
      describe 表名; = desc 表名;
3.改:alter table 旧表名 rename 新表名; #改表名
4.删:drop table 表名;      

针对记录的基本SQL语法

1.增:insert into 表名 values(数据,数据);
      insert into 表名 values(数据,数据),(数据,数据),(数据,数据);
2.查:select * from 表名;  # *表示查看所有字段
      select 字段1,字段2 from 表名;
   注:如果表中字段较多出现错乱 可以结尾写\G 换成列显示
3.改:update 表名 set 字段名=新数据 where 筛选条件;
4.删:delete from 表名;  # 删除表中所有的数据
      del from 表名  where 筛选条件  # 按条件删除数据
这篇关于数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!