zoukankan      html  css  js  c++  java
  • 数据库

    一、库操作:
    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | performance_schema |
    | test |
    +--------------------+
    1.系统数据库:
    information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
    performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象
    mysql: 授权库,主要存储系统用户的权限信息
    test: MySQL数据库系统自动创建的测试数据库
    2.创建数据库:
    help create # 查看帮助信息
    help create database
    # https://dev.mysql.com/doc/refman/5.6/en/create-database.html
    ...

    语法:
    create database 数据库名 charset utf8;
    create database db1 charset utf8;
    命名规则:
    可以由字母、数字、下划线、@、#、$
    区分大小写
    唯一性
    不能使用关键字如 create select
    不能单独使用数字
    最长128位
    3.数据库相关操作:
    查看数据库
    show databases;
    show create database db1;
    select database();
    选择数据库
    use db1;
    删除数据库
    drop database db1;
    修改数据库
    alter database db1 charset utf8;
    alter database db1 charset gbk;

    二、表操作:
    1.什么是存储引擎:
    mysql中建立的库===>文件夹
    库中建立的表===>文件

    存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
    因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)
    存储引擎:表的类型 (表就是文件) 有不同的文件类型 .mp4 .txt

                     

      
    2.mysql支持得存储引擎:
    mysql> show engines; # #查看所有支持的存储引擎
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | Engine | Support | Comment | Transactions | XA | Savepoints |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
    | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
    | MyISAM | YES | MyISAM storage engine | NO | NO | NO |
    | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
    | CSV | YES | CSV storage engine | NO | NO | NO |
    | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
    | ARCHIVE | YES | Archive storage engine | NO | NO | NO |
    | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
    | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    9 rows in set (0.00 sec mysql> show variables like 'storage_engine%'; #查看正在使用的存储引 +----------------+--------+ | Variable_name | Value | +----------------+--------+ | storage_engine | InnoDB | +----------------+--------+
            1 row in set (0.00 sec)

    1、InnoDB 存储引擎
    支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。
    2、MyISAM 存储引擎
    不支持事务、表锁设计、支持全文索引,主要面向一些 OLAP 数 据库应用。
    在 MySQL 5.5.8 版本之前默认的存储引擎(除 Windows 版本外)。
    3、NDB 存储引擎
    NDB 存储引擎是一个集群存储引擎,类似于 Oracle 的 RAC 集群。
    4、Memory 存储引擎
    Memory 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失。
    5、Infobright 存储引擎
    第三方的存储引擎。其特点是存储是按照列而非行的,因此非常 适合 OLAP 的数据库应用。
    其官方网站是 http://www.infobright.org/,上面有不少成功的数据 仓库案例可供分析。
    6、NTSE 存储引擎
    网易公司开发的面向其内部使用的存储引擎。
    7、BLACKHOLE
    黑洞存储引擎,可以应用于主备复制中的分发主库。
    3.使用存储引擎:
    1.建表时指定
    create table t1(id int,name char)
    create table t2(id int,name char)engine=innodb;
    create table t3(id int,name char(6))engine=memory;
    2.在配置文件中指定默认的存储引擎
    /etc/my.cnf
    [mysqld]
    default-storage-engine=INNODB
    innodb_file_per_table=1
    3.查看
    [root@egon db1]# cd /var/lib/mysql/db1/
    [root@egon db1]# ls
    db.opt t1.frm t1.ibd t2.frm t2.ibd
    4.练习
    创建四个表,分别使用innodb,myisam,memory,blackhole存储引擎,进行插入数据测试
    [db1]> create table t1(id int)engine=innodb;
    [db1]> create table t2(id int)engine=myisam;
    [db1]> create table t3(id int)engine=memory;
    [db1]> create table t4(id int)engine=blackhole;
    [db1]> exit

    1.windows:
    文件夹中查看到发现memory和blackhole两种存储引擎只有表结构,无数据
    db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm
    测试后两种存储引擎是否无数据,重启mysql查看

    停止mysql服务:
    net stop MySQL

    启动mysql服务:
    net start MySQL

    memory,在重启mysql或者重启机器后,表内数据清空
    blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录

               2.linux:
    [root@egon db1]# ls /var/lib/mysql/db1/ #发现后两种存储引擎只有表结构,无数据
    db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm
    查看mysql版本:
    status; # s
    select version();
    mysql> select version();
    +-------------------------+
    | version() |
    +-------------------------+
    | 5.7.21-0ubuntu0.16.04.1 |
    +-------------------------+
    1 row in set (0.00 sec)
    # 重启mysql服务:
    # service mysqld restart
    # service mysql restart (5.5.7版本命令)
    # 或者:
    # /etc/init.d/mysql restart
    # 停止:
    # service mysql stop
    # 或者:/etc/init.d/mysql stop

    # 启动:
    # service mysql start
    # 或者:
    # /etc/init.d/mysql start

    #memory,在重启mysql或者重启机器后,表内数据清空
    #blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录
  • 相关阅读:
    【k8s】livenessProbe-exec
    【Kubernetes】结束前执行-HTTPGET
    【Kubernetes】启动后执行-HTTPGET
    【Kubernetes】结束前执行-exec
    【Kubernetes】启动后执行-exec
    【Kubernetes】镜像拉取策略-Never
    JavaWeb 之 备用
    JavaWeb 之 备用
    JavaWeb 之 Session
    JavaWeb 之 Cookie
  • 原文地址:https://www.cnblogs.com/mumupa0824/p/9417983.html
Copyright © 2011-2022 走看看