msyql数据库[云图智联]
免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/
1.数据库的基本介绍
1.1数据库介绍
1.1.1生活中的数据?
大家在生活中随处可见可收集的非常多的信息,比如说手机上的短信、报纸上的新闻、硬盘中的文件等等,这些信息我们都可以统称为数据,那么数据一般存放在哪里呢?大家会发现数据都必须要存放在“载体”上,那么我们也会根据不同的数据选择不同的载体。
1.1.2什么是数据库?
数据库是数据的仓库。与普通的“数据仓库”不同的是,数据库依据“数据结构”来组织数据,因为“数据结构”,所以我们看到的数据是比较“条理化”的(比如不会跟以前的普通文件存储式存储成一个文件那么不条理化,我们的数据库分成一个个库,分成一个个表,分成一条条记录,这些记录是多么分明),
例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那的人事管理就可以达到极高的水平。
1.1.3数据库能够做什么?
存数据库是计算机应用系统中的一种专门管理数据资源的系统。
⑴ 实现数据共享
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
⑵ 减少数据的冗余度
同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
⑶ 数据的独立性
数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
⑷ 数据实现集中控制
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
⑸ 数据一致性和可维护性,以确保数据的安全性和可靠性
主要包括:安全性控制、完整性控制、并发控制,使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。
⑹ 故障恢复
1.1.4常见的数据库
1.MySQL数据库
MySql 短小精悍,像 access 一样的文件型数据库,但比 access强百倍,是真正多用户多任务的数据库系统其从 Linux上移植过来的,安全性非常好,不过大部分操作是在 dos 下进行,虽然也有第三方开发的图形界面但并不好用。MySQL 是跨多平台的数据库管理软件,可运行于 LINUX、NT、UNIX 等系统,可支持命令和图形化管理,对于一般的数据库足以应付了,占用系统资源较少,速度较快,而且是开源的、免费的。
由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。
2.Oracle数据库
Oracle Database又名Oracle RDBMS或简称Oracle。是甲骨文公司的一款关系数据库管理系统,Oracle优越的性能使得其成为大型应用和超大型系统的首选数据库,提供了基于角色的权限管理模式。通过角色管理,大大加强了数据库的安全性,同时,也为DBA提供了更加方便、快捷的管理用户和权限的途径。可良好地支持大数据存储格式,如图形、音频、视频、动画等媒体格式。提供了良好的分布式管理功能,用户可以很轻松地实现多数据库的协调工作。数据库应用于企业应用需要进行购买使用。
3.sqlServer数据库
是基于服务器端的中型的数据库, 可以适合大容量数据的应用, 在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的 SQL 语言对数据库进行管理,所以如果是标准 SQL 语言,两者基本上都可以通用的。 Microsoft SQL Server 还有更多的扩展,可以用存储过程,数据库大小无极限限制。
2.1 数据库的概念
2.1.1数据库(Data Base)
数据库(Data Base,简称DB)是长期存储在计算机内、有组织的、可共享的、统一管理的相关数据的集合。例如:我们可以把每一个客观存在的,可以被描述的事务都可以称为数据库的实体数据。
每一个数据库都是由若干个数据表组成,每一个表与表之间建立相应的关系及操作的对象,数据库中的每一列我们可以称为每一个字段,描述着当前表数据的基本数据信息,每一行表示着我们的每一条数据记录。
数据库的功能:组织、存储和管理数据。
2.1.2数据库管理系统(Data Base Management System)
数据库管理系统(Data Base Management System,简称DBMS)是位于用户应用程序与操作系统之间的一层数据管理软件,是数据库系统的核心组成部分。为用户或应用程序提供访问数据库的方法:包括数据库的建立、查询、更新以及各种数据控制。
数据库管理系统是为了科学地组织和存储数据、高效地获取和维护数据。
2.1.3 MySQL运行机制
(1)最上层:
最上层是一些客户端和连接服务,包含本地的sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信,主要完成一些类似于连接处理、授权认证及相关的安全方案,
在该层上引用了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于ssl的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。
(2)第二层:
第二层架构主要完成大多数的核心服务功能。如sql接口,并完成缓存的查询。sql的分析和优化 以及部分内置函数的执行。
所有跨存储引擎的功能也在这一层实现,如过程,函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等。
最后生成相应的执行操作。如select语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样就解决大量读操作的环境中能够很好的提升系统的性能。
(3)存储引擎层:
存储引擎真正的负责MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信,不同的存储引擎具有的功能不同,这样可以根据自己的实际需进行选取。
(4)数据存储层:
主要是将数据存储在运行于裸设备的文件系统之上,并完成于存储引擎的交互。
2.2 Windows上如何安装MySQL
1、获取MySQL,可以从官网上直接下载 https://dev.mysql.com/downloads/mysql/
2、下载完成之后,找到下载的路径,解压即可!
2 安装教程
(1)配置环境变量
变量名:MYSQL_HOME
变量值:C:\software
(2)生成data文件
以管理员身份运行cmd
进入C:\software\mysql-8.0.19-winx64.zip\mysql-8.0.19-winx64\bin下
执行命令:mysqld --initialize-insecure --user=mysql 在C:\software\mysql-8.0.19-winx64.zip\mysql-8.0.19-winx64下和bin同级目录生成data目录
3) 安装MySQL
继续执行命令:mysqld -install
(4)启动服务
继续执行命令:net start MySQL
(5)登录MySQL
登录mysql:(因为之前没设置密码,所以密码为空,不用输入密码,直接回车即可)
mysql -u root -p
(6)查询用户密码
查询用户密码命令:mysql> select host,user,authentication_string from mysql.user;
(7)设置(或修改)root用户密码
mysql> use mysql
提别注意:下面这个修改密码的方式不正确,可能是因为版本问题。最近解决了。
mysql> update mysql.user set authentication_string=("123456") where user="root";
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
解决方案如下:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> flush privileges;
#作用:相当于保存,执行此命令后,设置才生效,若不执行,还是之前的密码不变
Query OK, 0 rows affected (0.01 sec)
(8)退出
mysql> quit
Bye
(9)再次登录
2.3 mysql文件结构
主要文件夹
-
bin目录:用于放置一些可执行文件,如mysql.exe、mysqld.exe、mysqlshow.exe.等。
-
data目录:用于放置一些日志文件以及数据库。
-
include目录:用于放置一些头文件,如mysql.h、mysqld_ername.h等。
-
lib目录:用于放置一些列的库文件。
-
share目录:用于存放字符集、语言等信息。
-
关于ini文件的介绍如下:
my.ini:是MySQL数据库中使用的配置文件。
my-huge.ini:适合超大型数据库的配置文件。
my-large.ini:适合大型数据库的配置文件。
my-medium.ini:适合中型数据库的配置文件。
my-small.ini:适合小型数据库的配置文件。
my-template.ini:是配置文件的模板,MySQL配置向导将该配置文件中选择项写入到my.ini文件。
2.4 结构化语言
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
常见的几种语言分类如下:
2.5 SQL中的运算符
1)算术运算符
一种符号,它是用来进行列间或者变量之间的比较和数学运算,一般包括算术运算符、赋值运算符、比较运算符、逻辑运算符
2)赋值运算符
3)逻辑运算符
4)比较运算符
2.6 SQL中的数据类型
MySQL支持所有标准SQL数值数据类型。大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1)数值类型
2) 字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
3) 日期类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。
2.7 数据库的基本操作语法
1) 创建数据库
在使用数据库前,除了系统数据库以外,我们还需要自己创建属于用户的数据库,一般使用数据库创建语句进行创建。
语法:
mysql CREATE DATABASE 数据库名;
2) 查看数据库
如果需要查看MySQL已创建的数据库,可以在终端窗口输入命令:
语法:
mysql SHOW databases;
3 ) 使用数据库
在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。在 mysql> 提示窗口中可以很简单的选择特定的数据库。你可以使用SQL命令来选择指定的数据库。
语法:
mysql USE 数据库名;
4) 删除数据库
删除数据库是一个谨慎操作,有可能造成重要数据的丢失。如果确实需要删除已经存在的数据库,删除数据库的命令为:
语法:
mysql drop database <数据库名>
2.8 数据库的表操作
MySQL是一种关系型数据库,关系型数据库最重要的概念就是表,表具有固定的列数和任意的行数,在数学上称为“关系”二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录,表中的列属性,称为Field,相当于通常记录中的一个数据项,也叫做列、字段。 面向对象的类,类似于关系型数据库中表的概念 ORM思想:对象-关系映射
1) 创建数据表
语法:
创建数据表的注意事项:
1.多字段使用逗号分隔
2.保留字用撇号括起来
3.单行注释:#...... 多行注释:/……/
另外还需要注意的是,在创建表的同时有时会指定字段属性及字段约束,常见的字段属性及字段约束如下:
2) 查看数据表和表结构
1.查看数据表
语法:
2.查看表结构
mysql DESCRIBE 表名; 或 DESC 表名;
3)删除数据表
在删除表之前,先使用IF EXISTS语句验证表是否存在。
语法:
mysql DROP TABLE [IF EXISTS] 表名;
2.9 数据库表结构操作
1) 修改表名
语法 :
mysql ALTER TABLE 旧表名 RENAME [TO] 新表名;
2)添加表字段
语法:
mysql ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
3) 修改表字段
语法:
mysql ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
4) 删除表字段
语法:
mysql ALTER TABLE 表名 DROP 字段名;
2.10 数据表中的主外键约束及概念
1)添加主键
数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用于其他表的外键关联,以及本记录的修改与删除.
mysql ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
2) 添加外键
外键表示了两个表之间的相联关系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。外键用于与另一张表的关联。是能确定另一张表记录的字段,保持数据的一致性、完整性。
mysql ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 关联表名(关联字段);
3.1 msyql帮助系统
在学习还是在实际工作中,我们都会经常遇到各种意想不到的困难,不能总是期望别人伸出援助之手来帮我们解决,如何才能及时解决学习 MySQL 时的疑惑呢?可以通过 MySQL 的系统帮助来解决遇到的问题。
在 MySQL 中,查看帮助的命令是 HELP,语法格式如下:
mysql HELP 查询内容
(想要了解更多的职场,职业规划方面的经验,文章第一时间发布于云图智联官网)
免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/