数据库(mysql)关键知识
Mysql是目前互联网使用最广的关系数据库,关系数据库的本质是将问题分解为多个分类然后通过关系来查询。 一个经典的问题是用户借书,三张表,一个用户,一个书,一个借书的关系表。当需要查询某个用户借书情况或者是书被那些人借了,就用关系查询来实现。
关系数据库范式
来自英文Normal form,简称NF。要想设计—个好的关系,必须使关系满足一定的约束条件,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。总共有六种范式:第一范式(1NF)、第二范式(2NF)、 第三范式 (3NF)、巴斯-科德范式(BCNF)、 第四范式 (4NF)和 第五范式 (5NF,又称完美范式)。
1NF是指数据库表的每一列都是不可分割的原子数据项。2NF必须满足1NF,要求数据库表中的每行记录必须可以被唯一地区分。3NF在2NF基础上,任何非主 属性 不依赖于其它非主属性(在2NF基础上消除传递依赖)。BCNF是在3NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖), 满足BCNF不再会有任何由于函数依赖导致的异常,但是我们还可能会遇到由于多值依赖导致的异常。4NF的定义很简单:已经是BC范式,并且不包含多值依赖关系。5NF处理的是无损连接问题,这个范式基本没有实际意义,因为无损连接很少出现,而且难以察觉。而域键范式试图定义一个终极范式,该范式考虑所有的依赖和约束类型,但是实用价值也是最小的,只存在理论研究中。
Catalog和Schema
是数据库对象命名空间中的层次,主要用来解决命名冲突的问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等)。但是Mysql的数据库名就是Schema,不支持Catalog。
Mysql的数据库引擎主要有两种MyISAM和InnoDB,MyISAM支持全文检索,InnoDB支持事务。
SQL中的通配符‘%’代表任意字符出现任意次数。‘_’代表任意字符出现一次。SQL与正则表达式结合查询一般用在WHERE table_name REGEXP '^12.34'。子查询是从里到外执行。
数据库联结(join)涉及到外键,外键是指一个表的列是另一个表的主键,那么它就是外键。笛卡尔积联结(不指定联结条件时)生成的记录条目是单纯的第一个表的行乘以第二个表的列数。用得最多的是等值联结也叫内部联结。
高级联结还有自连接,是指查询中的两张表是同一张表,它通常作为外部语句用来代替从相同表中检索数据时使用的子查询。自然联结使每个列只返回一次。外部联结是指联结包含了那些在相关表中没有关联行的行。例如列出所有产品及其订购数量,包括没有人订购的产品。LEFT OUTER JOIN指选择左边表的所有行。
组合查询是指采用UNION等将两个查询结果取并集。
视图是查看存储在别处的数据的一种工具,它本身并不包含数据,因此表的数据修改了,视图返回的数据也将随之修改,因此如果使用了复杂或嵌套视图会对性能有较大的影响。视图的作用之一是隐藏复杂的SQL通常会涉及到联结查询。
存储过程类似于批处理,包含了一条或多条SQL语句。语法:
CREATE PROCEDURE name()
BEGIN
SQL
END
-------------------------
CALL name()//来调用存储过程
游标有DECLARE定义,游标与存储过程是绑定的,存储过程处理完成,游标就会消失。游标被打开后可以使用FETCH语句访问每一行。
触发器是在某个时间发生时自动执行某条SQL语句。语法:
CREATE TRIGGER name AFTER INSERT ON talbe_name FOR EACH ROW
事务处理可以维护数据库的完整性,保证批量的操作要么完全执行,要么完全不执行。包括事务、回退、提交、保留点几个关键术语。ROLLBACK只能在一个事务处理内使用。他不能回退CREATE和DROP操作。使用COMMIT保证事务提交。复杂的事务处理需要部分提交或回退,因此我们需要使用保留点SAVEPOINT。可以使用ROLLBACK TO savepoint_name。保留点越多越好。保留点在事务执行完成后自动释放。
MySQL数据库与PostgreSQL数据库比较 哪个数据库更好些?
MySQL MySQL相对来说比较年轻,首度出现在1994年。它声称自己是最流行的开源数据库。MySQL就是LAMP(用于Web开发的软件包,包括 Linux、Apache及Perl\/PHP\/Python)中的M。构建在LAMP栈之上的大多数应用都会使用MySQL,包括那些知名的应用,如 WordPress、Drupal、Zend及phpBB等。一开始,MySQL的设计目标是成为...
使用CMD备份MySQL数据库的步骤cmd备份mysql命令
使用CMD备份MySQL数据库的步骤 对于MySQL数据库,备份是非常重要的。这有助于确保数据的完整性和安全性,并且可以使数据库在事故发生时随时恢复。使用CMD备份MySQL数据库是一种简便而又可靠的方法,下面我们将讨论在Windows环境下使用CMD备份MySQL数据库的步骤。步骤一:准备CMD环境 打开运行对话框,输入“cmd...
java数据库有哪些
Java数据库主要有以下几种:1. Oracle数据库:Oracle数据库是甲骨文公司开发的集中式数据库系统,广泛用于企业级应用。其稳定性和性能优异,提供丰富的API接口和JDBC驱动程序支持Java应用与数据库的连接和操作。同时Oracle数据库提供了强大的数据仓库功能,支持大数据量的存储和处理。2. MySQL数据库:MySQL是...
数据库有哪些分类
数据库的分类主要包括以下几种:1. 关系型数据库(RDBMS):这类数据库使用关系模型来组织数据,具有高度结构化数据和严格的数据约束。常见的关系型数据库包括MySQL、Oracle和SQL Server。它们适用于存储和管理结构化数据,如企业系统和大型网站。2. 非关系型数据库(NoSQL):非关系型数据库不依赖于固定...
数据库可分为哪几种类型?
数据库的类型主要分为以下几种:1. 关系型数据库(RDBMS):这类数据库使用关系模型来组织数据,具有高度结构化的特点和严格的数据约束。常见的关系型数据库包括MySQL、Oracle和SQL Server。它们适合用于存储和管理结构化数据,例如企业应用程序和大型网站。2. 非关系型数据库(NoSQL):非关系型数据库不...
mysql如何备份数据库
有关于数据备份,推荐您使用Navicat,它提供“人工备份”和“自动备份”两大备份功能。Navicat Premium 是一套可创建多个连接的数据库开发工具,让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 。它与 OceanBase 数据库及 Amazon RDS、Amazon Aurora、Amazon...
mysql是干什么用的?
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是...
几种常用数据库比较_MySQL
国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES。这些产品都支持多平台,如 UNIX、VMS、Windows,但支持的程度不一样。IBM的DB2也是成熟的关系型数据库。但是,DB2是内嵌于IBM的AS\/400系列机中,只支持OS\/400操作系统。1.MySQLMySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL...
MySQL数据库基础+ 数据库的基本操作?
一、数据库的安装 这个就不在这里过多阐述了,因为网上实在是太多安装mysql的教程了,有了我给的mysql,在按照这个安装教程(MySQL安装教程)去看,就能够安装完好。 安装好mysql后,如果需要使用windows命令窗口(也就是cmd)来操作mysql,那么就需要配置环境变量,在安装好的mysql下找到bin,将其目录放到环境变量path中去,就...
MySQL数据库备份的几种方式_MySQL
最近一直想写点博客,但是不知道写什么,感觉自己最近的知识没有什么增加,今天想到了一篇可以写的博客。以前试过根据data文件夹备份MySQL,但是从来没有成功过,前几天帮助朋友还原MySQL,终于成功的将备份的data文件夹还原成功了。MySQL数据库算是常用的数据库中最好使用的数据库了,对于备份的操作也不...
张颜杞药: 1、在Dos C:\mysql\bin> 目录下运行:mysqladmin creat bbs1 命令,生成一个名为bbs1的空数据库. 其中C:\mysql是你机子上装mysql的目录,如果你的mysql不是装在这...
繁峙县13070057184: 什么是Mysql数据库,与其它数据库的区别和特点是什么? - ?
张颜杞药: MySQL(发音为"my ess cue el",不是"my sequel")是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 由于MySQL是开放源代码的,因此...
繁峙县13070057184: MySQL数据库与表的最基本命令是什么? ?
张颜杞药: SELECT DATABASE(); 列出当前所选择的数据库,如果未选择数据库则显示NULL; SHOW DATABASES; 列出服务器上当前存在的MySQL数据库; USE databasename; 选择访问某个数据库; SHOW tables; 找出当前的MySQL数据库包含什么表; DESCRIBE tablename; 列出一个表的结构; SHOW INDEX FROM tablename; 显示表中的索引信息.
繁峙县13070057184: 高级mysql dba必备哪些技能 - ?
张颜杞药: 高级操作1.Mysql 主从同步配置2.Mysql 双master 配置3.Mysql 双master+丛库+keepalived 配置高可用数据库 客户端 作为DBA,一定不要用各种GUI工具,mysql自带命令行client才是你的最佳武器 可选项1.mysql 分区配置,因为限制太多,实际中...
繁峙县13070057184: 请问MySQL区别与MsSQL主要有那些不同? ?
张颜杞药: 1 MySQL支持enum,和set类型,sql server不支持 2 MySQL不支持nchar,nvarchar,ntext类型 3 MySQL的递增语句是AUTO_INCREMENT,而mssql是identity(1,1) 4 msms默...
繁峙县13070057184: 数据库软件的MySQL - ?
张颜杞药: MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司.在2008年1月16号被Sun公司收购.而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站...
繁峙县13070057184: MySQL数据库分区的概念与好处是什么? ?
张颜杞药: 这种做法会使水平分区的大部分功能失效,有时候也会对垂直分区产生影响
繁峙县13070057184: MYSQL数据库命名与其设计规范是什么? ?
张颜杞药: 希望我的回答对你有用. 所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化
繁峙县13070057184: 优化MYSQL数据库的方法?
张颜杞药: (1).选取最适用的字段属性,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值. (2).使用连接(JOIN)来代替子查询(Sub-Queries) (3).使用联合(UNION)来代替手动创建的临时表 (4).尽量少使用 ...
繁峙县13070057184: mysql dba 应该关注 mysql 的 哪些 - ?
张颜杞药: DBA 职责及日常工作职责: 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案. 3.根据开发人员设计的应用系统需求创建数据库存储结构. 4.根据开发...