MY SQL 实验一:

一、实验目的

通过实验了解MYSQL数据库服务器的基本架构及基本的使用方法。

二、实验原理、条件

本实验采用著名的开源数据库软件MYSQL 作为实验平台。MYSQL有多种版本,常用的是服务器版。数据库引擎是用于存储、处理和保护数据的核心服务。MYSQL有多个数据库引擎,不同的数据引擎针对不同的应用场景。InnoDB和MyISAM是最常用的两个表类型,MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持及外部键等高级数据库功能。MySQL服务器可以支持多种字符集,在同一台服务器,同一个数据库,甚至同一个表的不同字段都可以指定使用不同的字符集。 windows7 操作系统, mysql5.6 数据库服务器。

三、实验内容、方法、步骤、结果

(一)启动服务器

1.在计算机屏幕左下角,点击开始按钮, 输入 cmd 命令,开启命令窗口。

2.输入命令启动服务器: mysqld --console

(二)登录到mysql服务器

1.在计算机屏幕左下角,点击开始按钮, 输入 cmd 命令,开启命令窗口。

2.输入命令 mysql -u root -p 回车后提示你输入密码

(三)了解数据库引擎

  1. 显示数据库引擎

    mysql> show engines;

    mysql>show engines\G

    \G -表示结果竖排显示

    记录有多少种引擎,列出引擎清单。

    比较 MyISAM与InnoDB引擎的区别(从输出结果中,填写下表)

  2. 了解InnoDB引擎

    InnoDB引擎关键特性:插入缓冲,两次写,自适应哈希索引,异步IO,刷新邻接页。

    mysql> show engine INNODB status \G;

    显示InnoDB引擎的监控输出

    BACKGROUD THREAD 非常核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性。

    SEMAPHORES 信号量,线程同步的概念。

    TRANSACTIONS 事务

    FILE I/O InnoDB引擎大量使用了AIO(Async IO)(异步IO)来处理请求,极大提高数据库的性能。主要是 insert buffer,log,read,write thread

    INSERT BUFFER AND ADAPTIVE HASH INDEX 插入缓冲,自适应哈希索引

    LOG 日志

    BUFFER POOL AND MEMORY 缓冲池是数据库性能的瓶颈。 缓冲池是一个很大的内存区域,存放各种类型的页(默认大小为16KB),数据库缓冲池是通过LRU(Latest Recent Used,最近最少使用)算法来进行管理的,即最频繁使用的页在LRU列表的前面 。

  3. 更改数据库引擎

    1)在建表的时候指定。该表采用的数据库引擎

    建表时指定(这部分待完成本实验的 (七)部分创建测试数据库 后再做,因为还没有指定数据库):

    create table tab1(

    id int primary key,

    name char(6)

    ) ENGINE=MyISAM;

    ( 注意: 将TYPE = MYISAM; 改为 ENGINE = MyISAM; 即可,TYPE 是mysql4.0之前版本用,mysql5.5后采用ENGINE

    复制代码
       2) 建表后更改 (这部分待完成本实验的 (七)部分 创建测试数据库 后再做,因为还没有指定数据库):

alter table tab1 ENGINE = InnoDB;

(四) 了解字符集

1.查看字符集

mysql>show charset;

mysql>status;

注意 Server 服务器,DB,及client, conn. 的字符集characterset

2.指定字符集

了解下列语法,在本实验的 (六)创建测试数据库部分实践字符集操作

  1. 创建库的时候指定字符集:

语法:create database 库名 default character set=字符集;

复制代码
         2) 创建表的时候指定字符集:
          语法:create table 表名(属性,类型)default character set = 字符集;
    
        3) 修改库的字符集
          语法:alter database 库名 default character set 字符集;

       4) 修改表的字符集
         语法:alter table 表名 convert to character set 字符集;

(五)常用的方法

查看服务器配置状态:status;

查询时间:select now();

查询当前用户:select user();

查询数据库版本:select version();

查询当前使用的数据库:select database();

列出数据库:show databases;

选择数据库:use 数据库名;

列出表清单:show tables;

查看表结构: desc table;

复制代码
    mysql>show databases;
      记录数据库清单
    mysql>use mysql 
         切换到mysql 数据库, (要注意切换数据库)
    mysql>select database();
           显示当前数据库
    mysql>show tables
        记录mysql 数据库下的表清单
   mysql>desc user;
        显示user表的结构
    mysql>select * from user \G;
     注意: \G 表示竖排显示

(六)创建测试数据库

1.创建数据库

语法:create database 库名 default character set=字符集;

CREATE database testdb1 DEFAULT CHARACTER SET gb2312 ;

2.为数据库创建表

切换到该数据库 mysql> use testdb1;

创建表products

create table products(

id int,

category char(6),

name varchar(20),

quantity int,

price float)default character set = 'gbk';

复制代码
   3.为表添加新纪录
      insert into products values(1001,'钢笔','红色钢笔',500,1.23);
      insert into products values(1002,'钢笔','蓝色钢笔',800,1.25);
      insert into products values(1003,'钢笔','黑色钢笔',200,1.26);
      insert into products values(1004,'钢笔','白色钢笔',900,1.27);
      insert into products values(1005,'铅笔','2B铅笔',1000,0.56);
      insert into products values(1006,'铅笔','2H铅笔',600,0.58);

4.检查数据库的纪录

mysql> select * from products;

查看服务器中的data目录下是否存在testdb1

C:\wamp\bin\mysql\mysql5.6.17\data\testdb1

相关推荐
TDengine (老段)2 分钟前
TDengine 特殊函数 MODE() 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
没学上了3 分钟前
数据库的连接_qt
数据库
好名字更能让你们记住我6 分钟前
MYSQL数据库初阶 之 MYSQL用户管理
linux·数据库·sql·mysql·adb·数据库开发·数据库架构
网硕互联的小客服7 分钟前
Mysql服务无法启动,显示错误1067如何处理?
数据库·mysql
哥哥还在IT中8 分钟前
mysql分库分表数据量核查问题
数据库·mysql·adb
黎相思18 分钟前
MySQL在Centos 7环境下安装
数据库·mysql·centos
vxtkjzxt88825 分钟前
手机群控平台的核心功能
数据库·数据仓库
TG_yilongcloud30 分钟前
阿里云国际代理:怎么保障数据库在凭据变更过程中的安全与稳定?
数据库·安全·阿里云·云计算
恣艺1 小时前
Redis有序集合(ZSet):排行榜功能的最优解,原理与实战
数据库·chrome·redis
麦兜*1 小时前
MongoDB 与 GraphQL 结合:现代 API 开发新范式
java·数据库·spring boot·mongodb·spring·maven·graphql