IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL数据库day01 -> 正文阅读

[大数据]MySQL数据库day01

一、数据库介绍

? ? 1、为什么需要数据库

? ? ? ? a、计算机的资源是有限的,不可能把所有的数据存储在内存中,内存掉电后数据回丢失

? ? ? ? b、为了让数据在程序关闭重启后还能继续使用,必须把数据存储到磁盘的文件中

? ? ? ? c、随着程序的功能越来越复杂、数据越来越多,从文件中读取数据需要大量的重复性操作,

? ? ? ? 从文件中读取指定的数据需要复杂的逻辑

? ? ? ? d、不同的程序它的数据不同、访问数据文件的操作也有所不同,意味着读写文件的代码不能复用

? ? ? ? e、所有程序员非常需要一个统一的、快速的访问磁盘数据的工具

? ? ? ? f、使用数据库时,程序员不需要自己管理数据,而是通过数据库提供统一的接口进行读写数据即可

? ? ? ? ? ? 至于数据在数据库文件中如何保存、查找、修改等与程序员无关

? ? 2、什么是数据库

? ? ? ? 数据库指的是管理数据的软件,而不是存储数据的仓库

? ? 3、数据库的类型

? ? ? ? 层次型:以上下级层次关系组织数据的一种数据库,层次模型类似于树型结构,是早期的组织管理数据库

? ? ? ? 网状型:把相互之间有关系的数据进行连接,形成一张数据网,适合复杂数据的存储

? ? ? ? 关系型:就是把数据看作一张二维表,由行和列组成,这是普通人最容易理解和使用的一种数据组织方式

? ? ? ? ? ? 因此关系型数据库获得了最后的胜利

? ? ? ? key/value型:目前比较流行的一种内存数据库,适合存储高频访问的数据、并且对时间有一定要求

? ? 4、主流的关系型数据库

? ? ? ? 商用型: OceanBase、Oracle、DB2、SQL Server

? ? ? ? 开源型: MySQL、mariaDB、PostgreSQL

? ? ? ? 桌面型: 以微软的Access为代表,可以通过界面操作数据库

? ? ? ? 嵌入式: 以SQLLite为代表,适合嵌入式设备使用的小型数据库

二、SQL语言介绍

? ? 1、什么是SQL

? ? SQL是结构化查询语言的缩写,是数据库的标准库的标准委员会提供,用于访问和操作数据的统一语言标准

? ? ? ? 是所有的数据库都支持SQL语言,也就是说我们只需要学习SQL语言就能操作所有的数据

? ? 虽然ANSI组织定义了统一的SQL语言标准,但是不同的数据库厂商对SQL的支持不同,甚至有的还添加自己新的语法

? ? ? ? 把各种数据库中独有的SQL语法称为SQL的方言

? ? 标准SQL语句不区分大小写(int或INT),但是自定义的标识符(表名)是区分大小的

? ? 2、SQL语句的功能分类

? ? ? ? 数据控制语句:用于权限的划分的回收

? ? ? ? 数据定义语句:用于建立、修改、删除数据库对象(表、视图等)

? ? ? ? 数据操作语句:用于改变表中的数据(增、删、改)

? ? ? ? 数据查询语句:根据各种不同的条件进行查询数据

? ? ? ? 事务控制语句:用于维护数据库的统一性

? ?

? ? 3、SQL语句中的数据类型

? ? 数值型:

? ? ? ? 整型:

? ? ? ? ? ? TINYINT ? 1 Byte

? ? ? ? ? ? SMALLINT ?2 Bytes

? ? ? ? ? ? MEDIUMINT 3 Bytes

? ? ? ? ? ? INT ? ? ? 4 Bytes

? ? ? ? ? ? BIGINT ? ?8 Bytes

? ? ? ? 浮点型:

? ? ? ? ? ? FLOAT ? ? 4 Bytes

? ? ? ? ? ? DOUBLE ? ?8 Bytes

? ? 日期\时间型:

? ? ? ? DATE ? ? ? ?3 ? 1000-01-01/9999-12-31

? ? ? ? TIME ? ? ? ?3 ? '-838:59:59'/'838:59:59'

? ? ? ? YEAR ? ? ? ?1 ? 1901/2155

? ? ? ? DATETIME ? ?8 ? 1000-01-01 00:00:00/9999-12-31 23:59:59

? ? ? ? TIMESTAMP ? 4 ? 1970-01-01 00:00:00/2038

? ? 字符串型:

? ? ? ? CHAR ? ? ? ?0-255 bytes

? ? ? ? VARCHAR ? ? 0-65535 bytes

? ? ? ? LONGTEXT ? ?0-4 294 967 295 bytes

三、如何访问数据库

? ? 1、本地访问

? ? ? ? mysql -u用户名 -p密码 ? 方便但是容易泄漏密码

? ? ? ? mysql -u用户名 -p ? 建议这样登录

? ? 2、远程登录

? ? ? ? 先使用 ssh 或 telnet ?远程登录MySQL服务器

? ? ? ? ? ? ssh 服务器用户名@ip地址 输入密码

? ? ? ? 后通过 mysql -u用户名 -p 访问数据库

? ? 3、客户端登录

? ? ? ? 详情见数据库环境搭建

? ? 注意:登陆后,一定要选择具体的数据库

? ? ? ? use 数据库名;

? ? ? ? use testDB;

? ? ? ? ctrl + Enter 快速执行选中的语句

四、数据定义语句

? ? 1、创建表

? ? ? ? create table 表名(字段名 字段类型,...);

? ? 2、查看表结构

? ? ? ? desc 表名;

? ? 3、修改表

? ? ? ? --修改表名

? ? ? ? rename table 旧表名 to 新表名;

? ? ? ? --增加列

? ? ? ? alter table 表名 add(新字段名 字段类型);

? ? ? ? --删除列

? ? ? ? alter table 表名 drop 字段名;

? ? 4、删除表

? ? ? ? --删除表数据,保留表结构

? ? ? ? truncate 表名;

? ? ? ? --删除表 包括数据和结构

? ? ? ? drop table 表名;

五、数据操作语句

? ? 1、插入数据

? ? --按照全字段的顺序插入 必须完全相同

? ? insert into 表名 values(数据);

? ? --按照指定字段顺序插入

? ? insert into 表名(字段名) values(数据);

? ?

? ? 2、删除数据

? ? delete from 表名 where 条件;

? ? --delete from stu where name="hehe";

? ? 注意: 如果where不写,相当于删除整张表的数据

? ? 注意: SQL中 = 就是等于号,数据都可以直接=比较

? ? 3、修改数据

? ? update 表名 set 字段1=数据,字段2=数据 [where 条件];

? ? 注意: 如果不写where,则整张表的数据都修改

六、数据查询语句

? ? select 字段名1,字段名2,... from 表名;

? ? -- * 在SQL语句中也是通配符,代表所有字段

? ? --select * from 表名;

七、事务控制语句

? ? 1、commit 提交

? ? 在数据库中,一个用户修改、插入一条数据时,只有它自己能查询到结果,其它用户不能立即看到,

? ? ? ? 只有该用户执行commit语句后,其他用户才能看到

? ? 注意:默认情况下会默认自动提交

? ? A转账1000元给B

? ? if(A余额>1000)

? ? {

? ? ? ? A-=1000;

? ? ? ? if(检查B是否存在)

? ? ? ? {

? ? ? ? ? ? B+=1000;

? ? ? ? ? ? commit;

? ? ? ? }

? ? ? ? else

? ? ? ? {

? ? ? ? ? ? 取消

? ? ? ? ? ? //A+=1000;

? ? ? ? }

? ? }

? ? else

? ? {}

? ? 2、rollback

? ? 当用户对数据进行操作后,如果发现想要取消操作,可以使用rollback语句返回到上一次commit时的状态

? ? 使用commit\rollback的优点:

? ? 1、让数据库批量性提交操作,提高数据库的操作效率

? ? 2、减少读写磁盘的次数,延长硬盘的使用寿命

? ? 3、使用rollback可以撤销大量操作,提高效率

? ? 3、MySQL的自动提交

? ? 默认情况下,MySQL是自动进行commit

? ? --查询当前用户的自动提交是否开启

? ? show variables like 'autocommit';

? ? --关闭或开启当前用户的自动提交

? ? set session autocommit = 0 | 1;

? ? 注意:这些修改都只能该当前次生效,想要永久生效要修改配置文件

? ? 4、设置保存点

? ? 使用rollback会取消commit后所有操作,这样就可能浪费一些有意义的操作,可以在某一个节点设置一个保存点,

? ? ? ? 让rollback返回指定的保存点

? ? insert into stu values("h1",1,'x',1,"中国");

? ? savepoint s1;

? ? insert into stu values("h2",1,'x',1,"中国");

? ? savepoint s2;

? ? insert into stu values("h3",1,'x',1,"中国");

? ? savepoint s3;

? ? insert into stu values("h4",1,'x',1,"中国");

? ? savepoint s4;

? ? insert into stu values("h5",1,'x',1,"中国");

? ? select * from stu;

? ? rollback to savepoint s1;

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:22:23  更:2022-10-22 21:23:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/22 18:09:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码