第一章 数据库操作

这篇具有很好参考价值的文章主要介绍了第一章 数据库操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 数据库操作

1.1 创建数据库

  1. 创建数据库是指在数据库系统中划分一块空间,用来存储相应的数据,这是进行表操作的基础,也是数据库管理的基础
  2. 在MySQL中创建数据库之前,可以使用show语句来显示当前已经存在的数据库,具体SQL语句如下
    show databases
    
  3. 创建数据库的SQL语句如下,其中参数database_name代表所要创建的数据库的名称
    create database database_name;
    
  4. 创建数据库之前判断是否已存在,其中参数database_name代表所要创建的数据库的名称
    create database if not exists database_name
    
  5. 创建数据库并指定字符集,其中参数database_name代表所要创建的数据库的名称、UTF8代表字符集
    create database database_name character set utf8
    

1.2 选择数据库

  1. 在操作数据对象之前,首先需要确定是哪一个数据库,即在对数据库操作对象进行操作时,需要先选择一个数据库,语句如下
    use database_name
    
  2. 如果选择一个不存在的数据库,就会出现unkown database 'database_name’错误

1.3 删除数据库

  1. 在删除数据库之前,首先需要确定所需要的数据库对象已经存在,在MySQL中删除数据库使用SQL语句 drop database来实现,语句如下
    drop database datavase_name;
    

二、 什么是存储引擎

  1. MySQL中提到了存储引擎的概念,简而言之,存储引擎就是指表的类型,在具体开发时,为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据实际需要来选择存储引擎,存储引擎指定了表的类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算机中的存储方式
  2. 用户在选择存储引擎之前,首先需要确定数据库管理系统支持那些存储引擎,在MySQL数据库管理系统中,通过show engines来查看支持的存储引擎,语法如下
    show engines;
    
    第一章 数据库操作
  • engines参数:表示存储引擎的名称
  • Support参数:表示MySQL数据库系统是否支持该存储引擎
  • default参数:系统默认支持的存储引擎
  • Comment参数:表示对存储引擎的评论
  • Transaction参数:表示存储引擎是否支持事务
  • XA参数:表示存储引擎所支持的分布式是否复合XA规范
  • Savepoints参数:表示存储引擎是否支持事务处理的保存点
  1. 还可以通过show variables来查看所支持的存储引擎,具体语句如下
    show variables like 'have%';
    
  2. 创建表时,若没有指定存储引擎,表的存储引擎将为默认存储引擎,查看默认存储引擎,语句如下
    show variables like 'default_storage_engine%'
    
    第一章 数据库操作
  • variable_name参数:表示存储引擎的名字
  • value参数:表示MySQL数据库管理系统是否支持存储引擎

2.1 InnoDB存储引擎

  1. InnoDB是MySQL数据库的一中存储引擎, InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全,MySQL从3.23.34a开始就包含InnoDB存储引擎,InnoDB是MySQL第一个提供外键约束的表引擎,而且InnoDB对事务处理的能力是MySQL的其它存储引擎所无法比拟的。
  2. InnDB存储引擎支持自动增长列auto_increment。自动增长列的值不能为空吗,且值必须唯一,MySQL中规定自动增长列必须为主键,在插入值时,如果自动增长列不输入值,插入的值就为自动增长后的值,如果输入的值为0或空,插入的值也为自动增长后的值,如果插入某个确定的值,且该值在前面没有出现过,就可以直接插入
  3. InnoDB存储引擎支持外键(foreign key,外键所在的表为子表,外键所依赖的表为父表,父表中被子表外键关联的字段必须为主键,当删除、更新父表某条信息时,子表必须有相应的变化
  4. InnoDB存储引擎的优势在于提供了良好的事务管理、崩溃修复能力和并发控制,缺点是读写效率差,占用数据空间相对比较大

2.2 MyISAM

  1. MyISAM存储引擎的表存储成三个文件,文件的名字和表名相同,扩展名包括frm、MYD和MYI,其中,frm为扩展名的文件存储表的结构;MYD为扩展名的文件存储数据,其是MYData的缩写;MYI为扩展名的文件存储的索引,其是MYIndex的缩写
  2. 基于MyISAM存储引擎的表支持三种存储格式,包括静态型、动态型和压缩型。其中,静态型为MyISAM存储引擎的默认存储格式,其字段是固定长度的,动态性包括变长字段,记录的长度是不固定的,压缩型需要使用myisampack工具创建,占用的磁盘空间较小
  3. MyISAM存储引擎的优点在于占用空间小,处理数据块,缺点是不支持事务的完整性和并发性

2.3 MEMORY存储引擎

  1. MEMORY存储引擎是MySQL中的一类特殊的存储引擎,其使用存储在内存中的内容来创建表,而且所有数据都放在内存中, 这些特性都与InnDB存储引擎、MyISAM存储引擎不同
  2. 每个基于MEMORY存储引擎的表实际对应一个磁盘空间,该文件的文件名与表名相同,类型为frm,该文件中只存储表的结构,而其数据文件都存储在内存中,这样有利于对数据的快速处理,提高整个表的处理效率,值得注意的是,服务器需要足够的内存来维持MEMORY存储引擎的表的使用,如果不需要使用就可以释放这些内存,甚至可以删除不需要的表
  3. MEMORY存储引擎默认使用哈希索引,其数据要比使用B型树索引快,如果需要使用B型树索引,就可以在创建索引时选择使用
  4. MEMORY表的大小是受到限制的,表的大小主要取决于两个参数,分别是max_rows和max_heap_table_size。其中max_rows可以在创建表时指定;max_heap_table_size的大小默认为16MB,可以按需要扩大,因此其存在内存中的特性,这类表的处理数据非常快,但是,其数据容易丢失,生命周期短,基于这个缺陷,选择MEMORY存储引擎时需要特别小心

2.4 选择存储引擎

  1. 在具体使用MySQL数据库管理系统时,选择一个合适的存储引擎是一个非常复杂的问题,因为每种存储引擎都有自己的特性,优势和应用场合,所以不能随便选择存储引擎,为了正确的选择存储引擎必须掌握各种存储引擎的特性
  2. 下面从存储引擎的事务安全、存储限制、空间使用、内存使用、插入数据的数据和对外键支持等角度来比较InnDB、MyISAM和MEMORY。
特性 InnoDB MyISAM MEMORY
事务安全 支持
存储显示 64TB
空间使用
内存使用
插入数据的速度
锁机制 行锁 表锁 表锁
对外键的支持 支持
数据可压缩 支持
批量插入速度
  • INNoDB存储引擎支持事务处理,支持外键,同时支持崩溃修复能力和并发控制,如果对事务的完整性要求比较高,要求实现并发控制,那么选择INNoDB存储引擎有很大的优势,**需要频繁的更新、删除操作的数据库,**也可以选择INNoDB存储引擎,因为这类存储引擎可以实现事务的提交和回滚
  • MyISAM存储引擎出入数据块,空间和内存使用比较低,如果表主要用于插入新记录和读出记录,那么选择MyISAM存储引擎能实现处理的高效率,如果应用的完整性、并发性要求很低,也可以选择MyISAM 存储引擎
  • MEMORY存储引擎的所有数据都在内存中,数据的处理速度快,但安全性不高,如果要很快的读写速度,对数据的安全性要求比较低,就可以选择MEMORY存储引擎,MEMORY存储引擎对表的大小有要求,不能建立太大的表,所有这类数据库使用相对较小的数据库表,
  • 这些选择存储引擎的建议是根据各个存储引擎的不同的特点提出的,并不是绝对的,实际应用中还需要根据实际情况进行分析
  • 在同一个数据库中,不同的表可以使用不同的存储引擎,如果一个表要求较高的事务处理,就可以使用InnoDB存储引擎,如果一个表会被频繁查询,就可以选择MyISAM存储引擎,如果一个用于查询的临时表,就可以选择MEMORY存储引擎

面试题

  1. 如何查看默认存储引擎
  2. 如何选择存储引擎

文章来源地址https://www.toymoban.com/news/detail-452297.html

到了这里,关于第一章 数据库操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库系统概论(第五版)——第一章参考答案

    第1章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 ( 1 )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系

    2024年01月23日
    浏览(45)
  • 开源数据库MYSQL DBA运维实战 第一章 部署

    数据库管理系统  DBMS    SQL(RDS关系型数据库) DBA  工程师 DDL  数据库定义语言:数据库,表,视图,索引,存储过程,函数 DML  数据库操纵语言:插入数据insert,删除数据delete,更新数据update DQL  数据库查询语言:查询数据selete DCL  数据库控制语言:例如控制用户的访

    2024年02月21日
    浏览(59)
  • 【软考数据库】第一章 计算机系统基础知识

    目录 目录 1.1 计算机系统 1.1.1 计算机硬件组成 1.1.2 中央处理单元 1.1.3 数据表示 1.1.4 校验码 1.2 计算机体系结构 1.2.1 体系结构分类 1.2.2 指令系统存 1.2.3 储系系统 1.2.4 输入/输出技术 1.2.5 总线结构 1.3 可靠性、性能、安全 1.3.1 计算机可靠性 1.3.2 计算机系统的性能评价 1.

    2023年04月13日
    浏览(110)
  • 数据库系统概述——第一章 绪论(知识点复习+练习题)

    ✨ 博主: 命运之光 🦄 专栏: 离散数学考前复习(知识点+题) 🍓 专栏: 概率论期末速成(一套卷) 🐳 专栏: 数字电路考前复习 🦚 专栏: 数据库系统概述 ✨ 博主的其他文章: 点击进入博主的主页​​​​​ 前言: 身为大学生考前复习一定十分痛苦,你有没有过以

    2024年02月09日
    浏览(56)
  • 数据库安全-第一章 Mysql 安全基础-【web 环境搭建——LAMP-1】-LAMP & LNMP 简介

    WEB 的本意是蜘蛛网和网,在网页设计中称为网页。现广泛译作网络、互联网等技术领域。日常生活中用户使用浏览器请求一个 URL ,这个 URL 标识着某个特定的服务器的特定资源,服务器接收到请求之后,服务器就把生成的 HTML 网页通过 HTTP 协议发送给浏览器。 早期的 WEB 页

    2024年01月18日
    浏览(52)
  • 数据库安全-第一章 Mysql 安全基础-【web 环境搭建——LAMP-2】(LAMP——apache2环境搭建)

    Apache HTTP 服务器项目致力于为现代操作系统(包括 UNIX 和 Windows)开发和维护开源 HTTP 服务器。该项目的目标是提供一个安全、高效且可扩展的服务器,该服务器提供与当前 HTTP 标准同步的 HTTP 服务。 Apache 软件基金会和 Apache HTTP 服务器项目在2021年6月1日宣布发布 Apache HTTP 服

    2024年02月20日
    浏览(51)
  • MongoDB创建用户 、数据库、索引等基础操作

    MongoDB的权限认证是相对来说比较复杂的,不同的库创建后需要创建用户来管理。 本机中的MongoDB是docker 启动的,所以先进入docker的镜像中 这样就进入到了镜像MongoDB中,然后输入命令连接MongoDB数据库   注意用户名密码以及数据库名称  出现这个界面说明登录成功 接下来开始

    2024年02月14日
    浏览(47)
  • MySQL数据库创建表一系列操作

    1. 创建表         在MySQL数据库中,创建新表使用CREATE TABLE语句。语法格式: CREATE[ TEMPORARY ]TABLE[ IF NOT EXISTS] table_name [ ([ column_definition ],…… [ index_definition ])] [ table_option][ SELECT_statement] ;   【例4.1】在学生信息数据库stusys中创建student表。 在MySQL命令行客户端输入如下SQL语句

    2024年02月04日
    浏览(43)
  • 创建数据库Market、Team,按要求完成指定操作

    创建数据库Market,在Market中创建数据表customers,customers表结构如表4.6所示,按要求进行操作。  代码如下: 在Market中创建数据表orders,orders表结构如表4.7所示,按要求进行操作。 代码如下: 在关联customers_info 表中的主键c_num时,orders表中的c_id和customers_info表中的c_num 的类型

    2024年02月13日
    浏览(50)
  • ②【MySQL表操作】 数据库表的创建、查询、修改、删除

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 数据库表中的数据类型 : 数值类型: TINYINT :小整数 SMALLINT :大整数 MEDIUMINT :大整数,范围大于SMALLINT

    2024年02月06日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包