MySQL数据库基础

数据库基础


什么是数据库?

数据库是保存有组织的数据的容器(通俗来说,就是可以保存在硬件设备上的文件)。注意与数据库管理系统(DBMS)的区别,我们不是直接访问数据库,而是使用数据库管理系统对数据库进行访问。


什么是SQL?

SQL是一种结构化查询语言,用来与数据库通信的语言。


什么是MySQL?

前面介绍了数据库和SQL,数据的所有存储、检索、管理是由数据库管理软件完成的。MySQL就是一种数据库管理软件。

说白了我们平时做的工作就是:在MySQL管理软件中使用SQL语言与数据库进行通信(一般包括数据库的增删改查)。


什么是表?

表是某种特定类型数据的结构化清单。

同一个数据库下的表,名字不能相同;不同数据库下的表,名字可以相同;

列:表中的一个字段;行:表中的一条记录;


什么是主键?

能够唯一区分每一行的一列或多列

例如,在学校里面每一个学生有且仅有一个学号,所以通过学号就可以直接定位一个学生,所以学号可以作为主键,但是名字不可以,因为会有重名的情况发生。

注意:主键可以是一列,也可以多列的组合(使用多列组合作为主键时,一般是因为表中的任意一列都不能确定一条记录,而多列组合一般可以)

表的任何一列都可以作为主键,只要满足以下条件:

  • 1. 任意两行都不具有相同的主键
  • 2. 每一行都有一个主键值,主键值不得为NULL

建议:

  • 总是定义主键
  • 不更新主键列中的值
  • 不重用主键列中的值
  • 不在主键列中使用可能会更改的值

 

事务处理


什么是事务?

事务通俗来说就是我们需要做的事情,例如,你使用支付宝转账就是事务。

在MySQL里面是完成一项事务即表现为执行一系列指令,最终达到完成事务的目的。


事务有什么特性?

  • A: 原子性
  • C: 一致性
  • I: 隔离性
  • D: 持久性

MySQL哪种引擎支持事务?

  • Innodb(也是推荐的,最常用的引擎) 
  • NDB Cluster

有关事务的几个关键词:

START TRANSACTION: 事务,表示开始一项事务;

ROLLBACK: 回滚,撤销指定SQL语句的执行过程;

COMMIT: 提交,将结果写入数据库表;

SAVEPOINT: 保留点,指设置的事务占位符,与ROLLBACK配合使用;


ROLLBACK可以回滚一切语句吗?

  • ROLLBACK只可以在执行START TRANSACTION指令后使用,即只可以在事务中使用;
  • ROLLBACK可以回滚INSERT , UPDATE, DELETE指令
  • ROLLBACK不可以回滚DROP, CREATE, SELECT指令

 参考文章:

对mysql事务提交、回滚的错误理解

使用JDBC进行数据库的事务操作

检索数据


 检索一列: 

SELECT column_name FROM table_name;

检索多列:

SELECT column1_name, column2_name, column3_name FROM table_name;

检索所有列:

SELECT * FROM table_name;

限制检索结果的行数

SELECT column_name FROM table_name

LIMIT M, N ;

检索从第M行开始的N行数据(注意: 数据库表从第0行开始, LIMIT 0, 1 表示检索第0行数据

DISTINCT限制:

SELECT DISTINCT column_name FROM table_name;

表示检索column_name字段不重复的列

注意:当使用DISTINCT检索多列数据时,DISTINCT应用于所有列。

 SELECT DISTINCT a,b,c FROM table;   -- 此时是将a,b,c三列所有不同的组合全部列出来,而不仅仅只是DISTINCT a 


原文地址:https://www.cnblogs.com/iwangzhengchao/p/10102329.html