一、数据库介绍

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相关推荐

  1. mysql数据库 day01

    今日内容: 1.mysql的简介 2.如何安装mysql 3.mysql的基本使用方法 一.数据库的简介 什么是mysql: mysql是一种开放源代码的关系型数据库管理系统(RDBMS), 由于my ...

  2. 【Bootstrap4前端框架+MySQL数据库】前后端综合实训【10天课程 博客汇总表 详细笔记】【附:所有代码】

    目   录 日常要求.项目要求 用到的软件版本情况说明 上课时的所有代码.用到的软件安装包 实训第2周--前后端"新闻管理系统"工程所有文件(MySQL语句+eclipse项目) ...

  3. 《Mysql数据库》

    一.MySql(MariDB) 学习数据库主要学习的是如何对数据进行增删改查操作. Mysql菜鸟教程:[https://www.runoob.com/mysql/mysql-tutorial.htm ...

  4. MySQL数据库学习教程,从0到入门

    mysql day01课堂笔记 1.什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么? 数据库:英文单词DataBase,简称DB.按照一定格式存储数据的一些文件的组合.顾名思义 ...

  5. MySQL数据库记录总结

    MySQL数据库记录总结 SQL分类 DDL数据定义语言:如:操作数据库,操作表 DML数据操纵语言:如:对表中的记录操作增删改查 DQL数据查询语言:如:对表中数据的查询操作 DCL数据控制语言:如 ...

  6. MySQL数据库-详解

    Day01. MySQL数据库 目录 1 数据库概述 2 1.1 什么是数据库? 2 1.2 数据库的分类? 2 1.3 什么是关系型数据库? 3 1.4 常见的关系型数据库 3 2 MySQL建库. ...

  7. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  8. MySQL数据库+命令大全+常用操作

    格式:mysql -h主机地址 -u用户名 -p用户密码 1. 例:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示 ...

  9. mysql数据库是一个软件呐_15款好用的mysql管理软件

    1. Induction Induction是一款用于理解数据关系的开源管理工具,它可用来探索行/列,运行查询和数据可视化等方面.该工具支持多种数据库,包括PostgreSQL,MySQL,SQLit ...

最新文章

  1. 终端bash美化(FC)
  2. R语言使用zoo包中的rollapply函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations)、例如,计算两种商品销售额之间的3个月的滚动相关性
  3. ListView 常用属性
  4. php 时间操作归类
  5. vim比vi做的一些改进
  6. 黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入
  7. 201771010101 白玛次仁 《2018面向对象程序设计(Java)》第十三周学习总结
  8. Google传奇Jeff Dean最新演讲:如何构建未来的机器学习芯片
  9. flask 写数据mysql_flask 创建数据提交到mysql中的方式
  10. 关于几个BeanPostProcessor各个回调的时机
  11. leetcode951. Flip Equivalent Binary Trees
  12. install opencv from source
  13. PyQt5学习笔记2-GUI编程基础-2
  14. C++算法学习(力扣:859. 亲密字符串)
  15. 【python】Tkinter窗口可视化二
  16. Codeforces Round #155 (Div. 2) C YY题目
  17. arduino 有源 蜂鸣器_Arduino入门教程--第八课--用蜂鸣器模拟警报器
  18. 如何给html文件夹密码,怎样给文件夹加上密码_分享两种给文件夹设密码的方法...
  19. UIToolkit下一代UI系统
  20. 【springboot项目添加ico方法】

热门文章

  1. Android 获取手机所有短信
  2. 素数 android10万以内,10万以内的质数表?
  3. python 最简单的方法实现一个斐波那契数列
  4. 号称“更快更稳”的华为云全新云服务器S6性能大评测
  5. OpenStack基础知识及搭建云平台先电的基本虚拟机配置
  6. 以太坊加速区块同步方法
  7. 2018-2021,60+篇阿里研发效能提升合集,都在这里了
  8. Redis list分页功能
  9. 安装ESIM事件相机模拟器遇到的一些问题及解决方法
  10. 安装ST LINK驱动后显示成功,但无法识别问题的解决办法之一