• MySQL存储引擎及数据库的操作管理


    一、存储引擎

    存储引擎实际上就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据。存储引擎也可以称为表类型。

    MySQL提供了插件式(pluggable)的存储引擎,存储引擎是基于表的。同一个数据库,不同的表,存储引擎可以不同。甚至,同一个数据库表在不同的场合可以应用不同的存储引擎。

    查看当前MySQL数据库支持的存储引擎。有两种方式,第一种通过 show engines 命令;第二种是通过 show variables like ‘have%’ 语句。

    语法格式如下:

    SHOW ENGINES;

    说明:上述语句可以使用分号 “;” 结束,也可以使用 “g” 或者 “G” 结束,其中,“g” 的作用于分号作用相同,而 ”G” 可以让结果更加美观。

    二、字符集

    1、概述

      字符集简单地说就是一套文字符号及其编码、比较规则的集合。

      产生原因:计算机只能识别二进制代码,为了使计算机不仅能做科学计算,也能处理文字信息,人们想出了给每个文字符号编码以便于计算机识别处理的办法,这就是计算机字符集产生的原因。

    2、MySQL支持的字符集

      MySQL 服务器可以支持多种字符集,在同一台服务器、同一个数据库甚至同一个表的不同字段都可以使用相同的字符集,可以用 show character set  查看所有可以使用的字符集。

      MySQL 字符集包括字符集和校对规则两个概念。字符集用来定义 MySQL 存储字符串的方式,校对规则定义比较字符串的方式。

      MySQL 支持 30 多种字符集的 70 多种校对规则。

    3、MySQL 字符集的设置

    (1)服务器字符集和校对规则

    show variables like 'character_set_server';  命令查询字符集
    show variables like 'collation_server';      命令查看校对规则

    (2)数据库字符集和校验规则

    要显示当前数据库字符集和校验规则可用以下两条命名分别查看:

    show variables like 'character_set_database';
    show variables like 'collation_database';

    三、数据库的操作管理

    1、创建数据库

    语法格式:

    CREATE {DATABASE | SCHEMA} [IF NOT EXISTS ]db_name 
    [[DEFAULT] CHARACTER SET charset_name]
    [[DEFALUT] COLLATE collation_name] 

    在MySQL中不区分大小写,在一定程度上方便使用。

    【例1】创建一个名为 StudentInfo 的数据库,一般情况下在创建之间要用 IF NOT EXISTS 命令先判断数据库是否不存在。 

    CREATE DATABASE IF NOT EXISTS studentInfo ;

    为了检验数据库中是否已经存在名为 studentInfo 的数据库,使用 SHOW DATABASES; 命令查看所有的数据库

    2. 修改数据库

    语法格式:

    ALTER {DATABASE | SCHEMA} [db_name] 
    [DEFAULT CHARACTER SET charset_name]
    | [[DEFAULT] COLLATE collation_name]

    ALTER DATABASE用于更改数据库的全局特性,用户必须有数据库修改权限,才可以使用ALTER DATABASE修改数据库。

    【例2】修改 studentInfo 数据库的字符集为 gbk,执行结果如下:

    3. 删除数据库

    语法格式:

    DROP DATABASE [IF EXISTS] db_name;

    注意:删除数据库是指在数据库系统删除已经存在的数据库,删除数据库成功后,原来分配的空间将被收回。再删除数据库时,会删除数据库中的所有的表和所有的数据,因此,删除数据库时需要慎重考虑。

    【例3】用 drop database studentInfo 命令删除刚才建立的 studentInfo 数据库,执行结果如下:

    【例4】用以下两种命令再次删除 studentInfo 数据库,会有不同的提示:

  • 相关阅读:
    20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践
    20165205 2017-2018-2 《Java程序设计》第八周学习总结
    20165205 2017-2018-2《Java程序设计》结对编程一 第二周总结
    20165104 第一周学习心得
    Linux安装及命令入门
    做中学learning by doing个人感想
    我所期望的师生关系
    2018-2019 20165235《信息安全系统设计基础》第三周学习总结
    20165235 缓冲区溢出漏洞实验
    2018-2019-20165235 《信息安全系统设计基础》第二周学习总结
  • 原文地址:https://www.cnblogs.com/qiuxirufeng/p/9991323.html
Copyright © 2020-2023  润新知