MySQL数据库基础操作

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.数据库概述

1>.什么是数据库

  数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。

2>.什么是数据库管理系统

  数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

3>.常见的数据库管理系统

  MYSQL  :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。

  Oracle     :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。

  DB2        :IBM公司的数据库产品,收费的。常应用在银行系统中.

  SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。

  SyBase    :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。

  SQLite    : 嵌入式的小型数据库,应用在手机端。

  Java相关的数据库:MYSQL,Oracle.本篇博客的主角是MySQL数据库。MySQL中可以有多个数据库,数据库中的表是真正存储数据的地方。

4>.数据库与数据库管理系统的关系

  想要了解更多关于数据库的知识请参考:http://www.cnblogs.com/yinzhengjie/p/6404583.html

二.SQL语句的分类

  数据库的安装可参考:Windows安装(http://www.cnblogs.com/yinzhengjie/p/9000389.html以及Linux安装(http://www.cnblogs.com/yinzhengjie/p/7811884.html

1>.数据定义语言,简称DDL(Data Definition Language):

  用来定义数据库对象,即数据库,表,列等等。对应的关键字:create,alter,drop等。

2>.数据操作语言:简称DML(Data Manipulation Language):

  用来对数据库中表的记录进行更新。对应关键字:insert,delete,update,select等。

3>.数据控制语言:简称DCL(Data Control Language):

  用来定义数据库的访问权限和安全级别以及创建用户,我们叫它数据控制语言。对应的关键字:grant(实现授权),revoke(权限收回)等。

4>.数据查询语言:简称DQL(Data Query Language):

  用来查询数据库中表的记录。对应的关键字:select,from,where等。

三.数据库的基本操作

1>.创建数据库操作

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/
EMAIL:y1053419035@qq.com
*/ /*创建数据库格式:*/
* create database 数据库名;
* create database 数据库名 character set 字符集; /*查看数据库格式:*/
*show databases; /*切换数据库*/
*use 数据库名 /*查看正在使用的数据库*/
*select database(); /*删除数据库格式:*/
*drop database 数据库名;

  接下来我们演示一下如何使用:(注意。创建数据库时最好别用MySQL的关键字去创建哟!)

2>.创建数据表格式

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/
EMAIL:y1053419035@qq.com
*/ /*创建数据表的格式:*/
create table 表名(
字段名1 数据类型(长度) 约束,
字段名2 数据类型(长度) 约束,
.......
字段名2 类型(长度) 约束
); /*查看数据库中的所有表*/
*show tables; /*查看表结构*/
*desc 表名; /*删除表*/
*drop table 表名; /*修改表结构-修改表,添加列名*/
*alter table 表名 add 列名 数据类型(长度) 约束; /*修改表结构-修改表,修改的类型长度及约束*/
*alter table 表名 modify 列名 数据类型(长度) 约束; /*修改表结构-修改表,修改列名*/
*alter table 表名 change 旧列名 新列名 数据类型(长度) 约束; /*修改表结构-修改表表名*/
*rename table 表名 to 新表名; /*修改表的字符集*/
* alter table 表名 character set 字符集; /*插入表记录-向表中插入某些列*/
*insert into 表(列名1,列名2,.....列名n)values(值1,值2,......值n); /*插入表记录-向表中插入所有列*/
*insert into 表 values(值1,值2.值3); /*更新表记录*/
*update 表名 set 字段名=值,字段名=值;
*update 表名 set 字段名=值,字段名=值 where 条件; /*删除记录*/
*delete from 表名 [where 条件];
*truncate table 表名; /*
删除表中所有记录使用delete from 表名; 还是用truncate table 表名;
删除方式:
delete 一条一条删除,不清空auto_increment记录数。
truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。
*/

创建用户表案例:

修改表结构的常见操作:

数据表中添加操作:

更新数据操作:

删除数据操作:

查询数据操作:

  查询语法相对复杂,我将其进行了分类,可参考以下链接
    参考一: MySQL数据库语法-单表查询练习二(http://www.cnblogs.com/yinzhengjie/articles/9029210.html)
    参考二:MySQL数据库语法-多表查询练习一(http://www.cnblogs.com/yinzhengjie/p/9029542.html)

二.事物的特性

1>.什么是事物

  事物是值逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。如果想要了解更多关于MySQL事物的知识可参考:http://www.cnblogs.com/yinzhengjie/p/7868782.html

2>.事物的特性

  a>.原子性(Atomicity)

    原子性是指事务是一个不可分割的工作单位,事物中的操作要么都发生,要么都不发生。

  b>.一致性(Consistency)

    事物前后数据的完整性必须保持一致。

  c>.隔离性(Isolation)

    事物的隔离是指多个用户并发访问数据库时,一个用户的事物不能被其它用户的事物干扰,多个并发事物之间数据要相互隔离。

  d>.持久性(Durability)

    持久性是指一个事物一旦别提交,它对数据库中的数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。

3>.事物读的问题

  两个事物在读数据时有可能发生的情况有以下三点:

  a>.脏读

    一个事物读取到了另一个事务还没有提交的数据。

  b>.不可重复读

    在同一个事物中两次读取到的数据不一致(强调的是其它事物的update操作)。

  c>.虚读

    在同一个事物中两次读取到的数据不一致(强调的是其它事物的insert操作)。

4>.事物的隔离级别

  a>.查看当前事物的隔离级别

  b>.MySQL的隔离级别及特点

      read uncommitted:上面问题也避免不了;

      read committed:能避免脏读问题,其它的避免不了;

      repeatable read:能避免脏读和不可重复读问题,幻读避免不了;

      serializable:能避免所有问题,相当于锁表;

  想要了解更多关于MySQL知识点,可参考Oracle官网,也可以参考我的笔记:http://www.cnblogs.com/yinzhengjie/tag/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/

Java基础-MySQL数据库扫盲篇的更多相关文章

  1. MySQL数据库扫盲篇

    MySQL数据库扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.MySQL概述 1>.什么是MySQL MySQL是瑞典的MySQL AB公司开发的一个可用于各 ...

  2. [JavaWeb基础] 003.JAVA访问Mysql数据库

    上面两篇讲解了简单的JSP + Servlet的搭建和请求,那么后面我们肯定要用到数据交互,也就是操纵数据库的数据,包括对数字的增加,删除,修改,查询.我们就用简单的MySql来做例子 我们需要引入驱 ...

  3. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...

  4. Java 操作MySql数据库

    Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Ja ...

  5. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  6. Java连接MySQL数据库及操作

    Java操作MySQL数据库,需要驱动mysql-connector-java 来进行操作,去下载对应的jar包   一.导入需要的jar包 我用的是maven对包进行管理,在maven中添加如下内容 ...

  7. java与MySQL数据库的连接

    java与MySQL数据库的连接 1.数据库的安装和建立参见上一篇博客中的第1,2步骤.(http://blog.csdn.net/nuptboyzhb/article/details/8043091 ...

  8. Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

  9. Java实现MySQL数据库导入

    距离上班还有一段时间.现在总结一下如何使用Java语言实现MySQL数据库导入: 首先新建名为test的数据库: 其次执行下面Java代码: import java.io.File; import j ...

随机推荐

  1. YQCB冲刺周第五天

    站立会议: 任务看板: 今天的任务为依旧为将用户记录的数据添加到数据库中,以及金额球的设置. 遇到的问题为金额球在jsp页面的显示.

  2. HDU 4126 Genghis Khan the Conqueror 最小生成树+树形dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4126 Genghis Khan the Conqueror Time Limit: 10000/50 ...

  3. 【CSAPP笔记】7. 汇编语言——过程调用

    一个过程调用包括将数据(以参数和返回值的形式)与控制从代码的一部分传递到另一部分.除此之外,在进入时为过程的局部变量分配空间,在退出的时候释放这些空间.数据传递.局部变量的分配和释放通过操纵程序栈来实 ...

  4. 处理Git不能上传大于100M文件问题

    记录一下自己工作遇到的问题,免得下次再遇到了还到处网上查资料解决. 自己的项目的版本控制用的是Git,代码仓库在github托管.项目里用到了百度导航SDK,由于百度导航SDK有了新版本,于是就更新到 ...

  5. 小学四则运算练习(JAVA编写)

    源码在Github的仓库主页链接地址:https://github.com/rucr9/rucr 看到这个题目,大概很多人会发出“切,这也太简单了吧!有必要小题大做?”的感叹!是的,仅仅作为一道数学运 ...

  6. Alpha阶段敏捷冲刺④

    1.提供当天站立式会议照片一张. 每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 改善界面设计 今天计划完成的工作. 数据库和程序的连接 后端框架的继 ...

  7. cxGrid 单元格回车移到下一行,当移到最后一个单元格时回车新增一行【转】

    1 在TcxGridDBTableView中,设定属性 NewItemRow.Visible = True 2 在cxgrid中输入数据怎样回车换行  在TcxGridDBTableView中  将属 ...

  8. python基础(三)python数据类型

    一.数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需 ...

  9. Installing Percona XtraDB Cluster on CentOS

    PXC简介 Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法. 1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. 2.每个节 ...

  10. hdu 3307 简单的指数循环节

    #include<stdio.h>#include<string.h>#include<algorithm>#define LL __int64using name ...