zoukankan      html  css  js  c++  java
  • MySQL数据库基础操作

                  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>.创建数据库操作

     1 /*
     2 @author :yinzhengjie
     3 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/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 
     8 /*创建数据库格式:*/
     9     * create database 数据库名;
    10     * create database 数据库名 character set 字符集;
    11 
    12 /*查看数据库格式:*/
    13     *show databases;
    14 
    15 /*切换数据库*/
    16     *use 数据库名
    17 
    18 /*查看正在使用的数据库*/
    19     *select database();
    20 
    21 /*删除数据库格式:*/
    22     *drop database 数据库名;

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

    2>.创建数据表格式 

     1 /*
     2 @author :yinzhengjie
     3 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/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 
     8 /*创建数据表的格式:*/
     9 create table 表名(
    10    字段名1   数据类型(长度)  约束,
    11    字段名2   数据类型(长度)  约束,
    12    .......
    13     字段名2 类型(长度) 约束
    14 );
    15 
    16 
    17 /*查看数据库中的所有表*/
    18     *show tables;
    19 
    20 /*查看表结构*/
    21     *desc 表名;
    22 
    23 /*删除表*/
    24     *drop table 表名;
    25 
    26 /*修改表结构-修改表,添加列名*/
    27     *alter table 表名 add 列名 数据类型(长度)  约束;
    28 
    29 /*修改表结构-修改表,修改的类型长度及约束*/
    30     *alter table 表名 modify 列名 数据类型(长度)  约束;    
    31 
    32 /*修改表结构-修改表,修改列名*/
    33     *alter table 表名 change 旧列名 新列名 数据类型(长度)  约束;
    34 
    35 /*修改表结构-修改表表名*/
    36     *rename table 表名 to 新表名;
    37 
    38 /*修改表的字符集*/
    39    * alter table 表名 character set 字符集;
    40 
    41 /*插入表记录-向表中插入某些列*/
    42     *insert into 表(列名1,列名2,.....列名n)values(值1,值2,......值n);
    43 
    44 /*插入表记录-向表中插入所有列*/
    45      *insert intovalues(值1,值2.值3);
    46 
    47 /*更新表记录*/
    48      *update 表名 set 字段名=值,字段名=值;
    49      *update 表名 set  字段名=值,字段名=where 条件;
    50 
    51 /*删除记录*/
    52      *delete from 表名 [where 条件];
    53       *truncate table 表名;
    54 
    55 /*
    56 删除表中所有记录使用delete from 表名; 还是用truncate table 表名;
    57 删除方式:
    58             delete 一条一条删除,不清空auto_increment记录数。
    59              truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。
    60 */

    创建用户表案例:

     

    修改表结构的常见操作:

    数据表中添加操作:

     

    更新数据操作:

     

    删除数据操作:

     

    查询数据操作:

      查询语法相对复杂,我将其进行了分类,可参考以下链接
        参考一: 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/

  • 相关阅读:
    特征选择常用算法综述
    C++中的extern "C"
    OpenGL管道概括
    使用CGAL查找输入三角网格模型独立模型个数
    图形学领域的关键算法及源码链接
    STL学习笔记
    CGAL+QT4.84+Boost1.53 错误[Parse error at "BOOST_JOIN"]
    Template函数
    在windows环境下安装配置CGAL
    关于C++中的堆、栈
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/9011342.html
Copyright © 2011-2022 走看看