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;
MySQL数据库day01相关推荐
- mysql数据库 day01
今日内容: 1.mysql的简介 2.如何安装mysql 3.mysql的基本使用方法 一.数据库的简介 什么是mysql: mysql是一种开放源代码的关系型数据库管理系统(RDBMS), 由于my ...
- 【Bootstrap4前端框架+MySQL数据库】前后端综合实训【10天课程 博客汇总表 详细笔记】【附:所有代码】
目 录 日常要求.项目要求 用到的软件版本情况说明 上课时的所有代码.用到的软件安装包 实训第2周--前后端"新闻管理系统"工程所有文件(MySQL语句+eclipse项目) ...
- 《Mysql数据库》
一.MySql(MariDB) 学习数据库主要学习的是如何对数据进行增删改查操作. Mysql菜鸟教程:[https://www.runoob.com/mysql/mysql-tutorial.htm ...
- MySQL数据库学习教程,从0到入门
mysql day01课堂笔记 1.什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么? 数据库:英文单词DataBase,简称DB.按照一定格式存储数据的一些文件的组合.顾名思义 ...
- MySQL数据库记录总结
MySQL数据库记录总结 SQL分类 DDL数据定义语言:如:操作数据库,操作表 DML数据操纵语言:如:对表中的记录操作增删改查 DQL数据查询语言:如:对表中数据的查询操作 DCL数据控制语言:如 ...
- MySQL数据库-详解
Day01. MySQL数据库 目录 1 数据库概述 2 1.1 什么是数据库? 2 1.2 数据库的分类? 2 1.3 什么是关系型数据库? 3 1.4 常见的关系型数据库 3 2 MySQL建库. ...
- .net连接mysql数据_.net连接MYSQL数据库的方法及示例!
连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...
- MySQL数据库+命令大全+常用操作
格式:mysql -h主机地址 -u用户名 -p用户密码 1. 例:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示 ...
- mysql数据库是一个软件呐_15款好用的mysql管理软件
1. Induction Induction是一款用于理解数据关系的开源管理工具,它可用来探索行/列,运行查询和数据可视化等方面.该工具支持多种数据库,包括PostgreSQL,MySQL,SQLit ...
最新文章
- 终端bash美化(FC)
- R语言使用zoo包中的rollapply函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations)、例如,计算两种商品销售额之间的3个月的滚动相关性
- ListView 常用属性
- php 时间操作归类
- vim比vi做的一些改进
- 黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入
- 201771010101 白玛次仁 《2018面向对象程序设计(Java)》第十三周学习总结
- Google传奇Jeff Dean最新演讲:如何构建未来的机器学习芯片
- flask 写数据mysql_flask 创建数据提交到mysql中的方式
- 关于几个BeanPostProcessor各个回调的时机
- leetcode951. Flip Equivalent Binary Trees
- install opencv from source
- PyQt5学习笔记2-GUI编程基础-2
- C++算法学习(力扣:859. 亲密字符串)
- 【python】Tkinter窗口可视化二
- Codeforces Round #155 (Div. 2) C YY题目
- arduino 有源 蜂鸣器_Arduino入门教程--第八课--用蜂鸣器模拟警报器
- 如何给html文件夹密码,怎样给文件夹加上密码_分享两种给文件夹设密码的方法...
- UIToolkit下一代UI系统
- 【springboot项目添加ico方法】