这里写目录标题

  • 一、数据库概览
    • 1、数据库概念
    • 2、数据库软件
    • 3、MySQL数据库
    • 4、用于数据库的编程语言
  • 二、MySQL数据库基础
    • 1、数据库的操作
    • 2、 字符集
    • 3、SQL语句常用的数据结构
      • 数值类型
      • 字符串类型
      • 如何判断文本数据和二进制数据?
      • 日期类型
    • 4、表的操作

一、数据库概览

首先了解一个岗位:DBA(数据库管理员),yyds

数据库的特点:

  • 数据结构化,能保证数据完整性
  • 数据共享度高(通过外键关联实现共享)
  • 数据冗余度低,易于扩展
  • 数据独立性高(物理独立性和逻辑独立性)

数据库事务:访问并可能操作各种数据项的一个数据库的操作序列

数据库事务的四个特性

  1. 原子性:事务中全部操作在数据库中是不可分割的,要么全部执行,要么就全部不执行

已落实的事务会保证所有操作均已完成,并且在事务回滚中,所有操作产生的影响均已得到恢复,此事件体现原子性

  1. 持久性:对于已经提交的事务,系统保证该事务对数据库的改变不被丢失,即使数据库出现故障
  2. 隔离性:事务的执行不收其他事务的干扰,事务执行的中间结果对于其他事务是透明的
  3. 一致性 :几个并行执行的事务,其执行的结果必须与 按某一顺序 串行执行 的结果一致

1、数据库概念

  1. 数据库
    是一类软件,具体来把大量的数据进行存储的,数据库软件存储内部往往大量依赖了数据结构,其主要把数据存在磁盘
  2. 数据结构
    是一门学科,研究如何组织大量的数据,主要研究把数据存在内存
  3. 注意:访问磁盘的数量比访问内存慢3~4个数量级(几千倍,几万倍)
    数据库把数据存在磁盘上
    磁盘上的数据删除,并不是真正的彻底的把数据删没了,而是把对应的盘块给标记成“未使用”状态,可在上面继续存储数据,如果在上面再存了数据,以前的数据就真的没有了
    暴力删除:砸硬盘

2、数据库软件

关系型数据库(RDBMS) 把数据按“表”的形式组织,没有数组类型
MySQL 瑞典MySQL AB公司创建,后被Sun公司收购,后被Oracle公司收购;牛逼的是 ,MySQL团队又另起炉灶,创建MariaDB
SQLSever 微软搞的,SQLSever和Windows Sever捆绑销售
Oracle 甲骨文公司,业界第一(收钱),主要是银行用,收购了创建JAVA的Sun公司
SQLite 轻量级数据库,安卓系统内置
PostgreSql 加州大学伯克利分校创建
非关系型数据库 把数据按“文档”的形式来组织,有“数组”类型
Redis
HBase
MongDB
hadoop 大数据方向的数据库

3、MySQL数据库

MySQL是一个客户端/服务器结构的程序,MySQL服务器真正管理数据,MySQL客户端只是用户界面(可以是控制台的,也可以是图形化的(workbench))
网络编程的基本概念:
客户端:主动发起请求的一方
服务器:被动接受请求的一方
网络通信,可以跨主机

4、用于数据库的编程语言

  1. SQL语句
    编程语言,与JAVA并列,各种不同的数据库软件都支持SQL语句,SQL语句不分大小写
  2. JDBC编程
    JAVA操作数据库的一组类,使用这些类可以通过JAVA完成对数据库的数据处理

二、MySQL数据库基础

1、数据库的操作

一个数据库服务器上,可以包含多个“数据集合”(一组数据构成的集合),每个“数据集合”都可以称为一个“数据库”
学校数据库服务器上就有多个数据库,比如学生数据库,教师数据库,实习单位数据库…

数据库操作
显示当前所有的数据库 show databases;
创建数据库 create database [if no exists] 数据库名;
选中数据库 use 数据库名;
删除数据库 drop database [if exists] 数据库名;
[ ] 可以不写

创建数据库
create database [if no exists] 数据库名
[character set 指定数据库采用的字符集
[collate 指定数据库字符集的校验方式] ]

如果没有指定的字符集和校验规则时,系统默认字符集:utf-8校验规则:utf-8_general_ci

值得注意的是MySQL中的utf-8并不是真正的utf-8,没有完全支持utf-8中的所有内容(没法支持
emoji(表情))

2、 字符集

因为计算机以二进制方式储存数据,如ASCLL码表
用数字表示汉字,每一套这样的表格,称之为一种“字符集”或“字符编码”
常用字符集
GBK(中国大陆用,但是汉字数量少)
unicode(utf-8)

3、SQL语句常用的数据结构

数值类型

数据类型 大小/对应JAVA类型
int 4字节 Integer
smallint 2字节 Short
bigint 8字节 Long
tinyint 1字节 Byte
float(M , D) 4字节 M是有效数字,D是小数点后的位数,会发生精度丢失 Float
double(M , D) 8字节 Double
decimal(M , D) M/D最大值+2 BigDecimal
numeric(M , D) 同decimal
有效数字:从第一个非零的数字算起的所有数字

Java中的float和double是存在问题的,不能精确的表示某些数据,不能用==比较浮点数
Bigdecimal内部使用了其他方式能精确的表示浮点数,但开销更大

字符串类型

数据类型 大小/说明/对应Java类型
varchar(size) 0~65535字节 可变长度字符串 String
text 0~65535字节 长文本数据 String
mediutext 0~16777215字节 中等长度文本数据 String
blob 0~65535字节 二进制形式的长文本数据 byte[ ]

如何判断文本数据和二进制数据?

(如何判断一个文件是文本文件和二进制文件)
用记事本(记事本默认以文本形式打开)打开文件,能看懂的是文本文件;看不懂的是二进制文件
如图片是二进制文件,把图片放到数据库中,用blob数据类型;
word文档(DOCX文档)也是二进制文件
excel文档 是二进制文件或文本文件

日期类型

数据类型 大小/说明
datetime 8字节 1000~9999年,不会进行时区的检索和转换
timestamp 4字节 1970~2038,自动检索当前时区并进行转换

如果在数据库中使用 datetime 数据类型,now() 获取当前时间

数据库中的 datetime 在Java程序中 对应 Timestamp 类型, new Timestamp(System.currentTimeMillis()) 获取当前时间的 Timestamp 类型

4、表的操作

需要操作数据库中的表时,要先使用这个数据库
use 数据库名;

查看指定数据库中的所有的表 show tables;
查看表的结构 desc 表名;
创建一个表 create table 表名(列名 列的数据类型 ,列名 列的数据类型)
删除表 drop table [if exists] 表名
注意:如果列名是数据库中的关键字,一定使用``(英文) 将列名引起来

累了,困了,来看“MySQL”,让你梦回吹角连营相关推荐

  1. 从数据结构的角度来看Mysql为什么使用B+树

    Mysql数据库为什么使用B+树作为索引?这篇文章我们不鼓吹B+树的优点,我们从数据结构上来看这个问题. 一.数据结构 数据结构大致可以分为两种 -- 线性结构 和 非线性结构. 1. 线性结构 线性 ...

  2. 编程累了,一起来看电视吧,实战Windows 7的Windows Media Center。

    简介 本文讲述如何通过Windows 7的Windows Media Center搭建强劲的综合娱乐电视系统,同时讲述Windows Media Center的实际使用感受,以及如何通过Windows ...

  3. MySQL查询累计值的方法

    假设有借贷记录表,字段有借入,贷出,以及记账日期.表中记录如下所示: 现在想统计某一天,或者某一时间段内,每天的借贷累总额,以及历史累计总额,比如,2021-10-07日的借贷总额是1100,1000 ...

  4. MySQL 8.0有什么新功能

    https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/ 我们自豪地宣布MySQL 8.0的一般可用性. 现在下载 ...

  5. MySQL数据库多种安装方法及企业级安装实践

    本文来自老男孩老师第三本书籍著作<老男孩的MySQL私房菜>第三章内容分享! 3.1 MySQL数据库的安装方法及选择 在当今的互联网企业里,MySQL数据库大多运行在Linux系列操作系 ...

  6. 浅谈Redis与MySQL的耦合性以及利用管道完成MySQL到Redis的高效迁移

    ㈠ Redis 与 MySQL 的耦合性 在业务架构早期.我们便该"吃着碗里的看着锅里的".切莫让MySQL 有梦.而Redis 无心 毕竟.有些关系型的结构不适合放到Redis跑 ...

  7. mysql的常用存储引擎_MySQL常见的三种存储引擎

    Ok,我们知道了,引擎就是一个程序的核心组件. 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有O ...

  8. 第 16 章 MySQL Cluster

    前言: MySQL Cluster 是一个基于 NDB Cluster 存储引擎的完整的分布式数据库系统.不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能.和 Oracle Real Cl ...

  9. mysql数据库加载太慢_mysql千万级数据库插入速度和读取速度的调整记录

    一般情况下mysql上百万数据读取和插入更新是没什么问题了,但到了上千万级就会出现很慢,下面我们来看mysql千万级数据库插入速度和读取速度的调整记录吧. (1)提高数据库插入性能中心思想:尽量将数据 ...

最新文章

  1. 雷赛运动控制卡_EeIE智博会展商推荐雷赛智能—智能装备运动控制领域的知名品牌和行业领军企业...
  2. 用For循环加cat按顺序合并文件
  3. 重庆中职计算机试题及答案,重庆市计算机专业高职复习题参考答案
  4. Ranger-AdminServer安装
  5. StretchBlt()函数使用
  6. 在RedHat Linux系统中安装和配置snmp服务
  7. [arXiv18]更快的基于非二叉化自底向上策略的转移系统成分句法分析
  8. CentOS安装MySQL及其使用(总结整理)
  9. python爬取网易付费音乐包_爬取网易云音乐“三部曲”(三):轻松下载网易音乐歌曲!...
  10. 传奇DBC2000安装及配置图文详细教程
  11. DNS加密 防止被DNS劫持 保护网络安全
  12. 移动机器人定位方法概述
  13. linux基本操作大全centos7
  14. Android游戏之仿 微信飞机大战
  15. 基于MATLAB的Cholesky分解法
  16. 医疗管理系统软件 linux系统,MyPatients 4.0.2 发布,医疗信息管理系统
  17. 什么是多租户saas架构设计
  18. 注册非公共邮箱,学校邮箱
  19. 2018年计算机考研调剂信息概况
  20. 参考文献里的各个字母含义

热门文章

  1. HTTP编程(Java爬虫-简单爬取网页数据)
  2. 仓库摆放示意图_仓库合理堆放标准,货物入库摆放规范
  3. Linux 压缩、解压工具
  4. windows环境安装lzo和python-lzo
  5. 数据库MYSQL及MYSQL ODBC
  6. 5GNR漫谈4:CORESET与SearchSpace
  7. python---控制时间的函数time()
  8. 计算机毕业设计-基于VUE+SpringBoot+MyBatis+MySQL的学生作业管理系统
  9. 赛车游戏java_Java 赛车游戏
  10. Maven的阿里云镜像配置