day12--数据库(Mysql)

1. 数据库介绍

什么是数据库?(https://www.cnblogs.com/alex3714/articles/5950372.html)

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,
每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database

下图就是一个数据库

RDBMS 术语

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

数据库: 数据库是一些关联表的集合;

数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格;

列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据;

行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据

冗余:存储两倍数据,冗余可以使系统速度更快。(表的规范化程度越高,表与表之间的关系就越多;查询时可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度。例如,学生的信息存储在student表中,院系信息存储在department表中。通过student表中的dept_id字段与department表建立关联关系。如果要查询一个学生所在系的名称,必须从student表中查找学生所在院系的编号(dept_id),然后根据这个编号去department查找系的名称。如果经常需要进行这个操作时,连接查询会浪费很多的时间。因此可以在student表中增加一个冗余字段dept_name,该字段用来存储学生所在院系的名称。这样就不用每次都进行连接操作了。)

主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据;

外键:外键用于关联两个表;

复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引;

索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录;

参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性;

    Mysql数据库

Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

1.Mysql是开源的,所以你不需要支付额外的费用;

2.Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库;

3.MySQL使用标准的SQL数据语言形式;

4.Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;

5.Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言;

6.MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB;

7.Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

    2. MYSQ数据库的安装使用

    Linux/UNIX上安装Mysql

Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址:

1.MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器;

2.MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器;

3.MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包;

4.MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL;

5.MySQL-bench - MySQL数据库服务器的基准和性能测试工具。

以下安装Mysql RMP的实例是在SuSE Linux系统上进行,当然该安装步骤也适合应用于其他支持RPM的Linux系统,如:Centos。

安装步骤如下:

使用root用户登陆你的Linux系统。

下载Mysql RPM包,下载地址为:MySQL 下载

通过以下命令执行Mysql安装,rpm包为你下载的rpm包:

[[email protected]]# rpm -i MySQL-5.0.9-0.i386.rpm

以上安装mysql服务器的过程会创建mysql用户,并创建一个mysql配置文件my.cnf。

你可以在/usr/bin和/usr/sbin中找到所有与MySQL相关的二进制文件。所有数据表和数据库将在/var/lib/mysql目录中创建。

以下是一些mysql可选包的安装过程,你可以根据自己的需要来安装:

[[email protected]]# rpm -i MySQL-client-5.0.9-0.i386.rpm
[[email protected]]# rpm -i MySQL-devel-5.0.9-0.i386.rpm
[[email protected]]# rpm -i MySQL-shared-5.0.9-0.i386.rpm
[[email protected]]# rpm -i MySQL-bench-5.0.9-0.i386.rpm 

    Window上安装Mysql

Window上安装Mysql相对来说会较为简单,你只需要载 MySQL 下载中下载window版本的mysql安装包,并解压安装包。

双击 setup.exe 文件,接下来你只需要安装默认的配置点击"next"即可,默认情况下安装信息会在C:\mysql目录中。

接下来你可以通过"开始" =》在搜索框中输入 " cmd" 命令 =》 在命令提示符上切换到 C:\mysql\bin 目录,并输入一下命令:

mysqld.exe --console

如果安装成功以上命令将输出一些mysql启动及InnoDB信息。

    验证Mysql安装

在成功安装Mysql后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证Mysql是否工作正常。

使用 mysqladmin 工具来获取服务器状态:

使用 mysqladmin 命令俩检查服务器的版本,在linux上该二进制文件位于 /usr/bin on linux ,在window上该二进制文件位于C:\mysql\bin 。

[[email protected]]# mysqladmin --version

linux上该命令将输出以下结果,该结果基于你的系统信息:

mysqladmin  Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386

如果以上命令执行后未输入任何信息,说明你的Mysql未安装成功。

    使用 MySQL Client(Mysql客户端) 执行简单的SQL命令

你可以在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到Mysql服务器上,默认情况下Mysql服务器的密码为空,所以本实例不需要输入密码。

命令如下:

[[email protected]]# mysql

以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:

mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.13 sec)
时间: 2024-10-12 15:31:40

day12--数据库(Mysql)的相关文章

MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

1.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户mysql> insert into mysql.user(Host,User,Password) values('localhost','jeecn',password('jeecn'));//刷新系统权限表mysql>flush privileges;这样就创建了一个名为:jeecn  密码为:jeecn  的用户. //退出后登录一下mysql>exit;@>mysql -u

趁一切还来得及【六】数据库MySQL读写分离与主主同步

相思相见知何日?此时此夜难为情.                                                      --[唐]李白 第一章 数据库MySQL主从复制读写分离授权 1.1 主从复制读写分离方案简单分析 ①数据库主从复制搭建之后,因为数据是单向的,因此默认规则就是所有的数据(主从相关收据)写入和更新都在主库上进行操作,避免主从同步的时候造成冲突. ②严格上来讲,从库上的非同步的库写入数据,只要和主库没有关系,也是可以写入的(或者作为主库),但是如果主从都想其中

第二百八十五节,MySQL数据库-MySQL函数

MySQL数据库-MySQL函数 1.MySQL内置函数 SELECT执行函数,后面跟要执行的函数 CHAR_LENGTH(str)函数:返回字符串的字符长度 -- CHAR_LENGTH(str)函数:返回字符串的字符长度 SELECT CHAR_LENGTH('欢迎光临'); LENGTH(str)函数:返回字符串的字节长度 -- LENGTH(str)函数:返回字符串的字节长度 SELECT LENGTH('欢迎光临'); CONCAT(str1,str2,...)函数:拼接字符串 --

Java处理数据库Mysql汉字显示乱码问题

问题:在unbuntu用eclipse编写程序的时候,发现存入数据库mysql的汉字都变成了??? 原因:eclipse和mysql的默认编码方式不一致 解决方法:把eclipse和mysql的编码方式都设置为utf8 1.设置mysql默认编码方式为utf8 修改mysql数据库的my.cnf文件,my.cnf文件路径为/etc/mysql/my.cnf 在[client]下面添加 default-character-set = utf8 在[mysqld]下面添加 character-set

Centos7下Gitlab迁移数据库mysql过程

第1章 系统准备 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# uname -r 3.10.0-327.el7.x86_64 1.1添加阿里云的镜像 cd /etc/yum.repos.d #备份原镜像 mv CentOS-Base.repo CentOS-Base.repo.backup     #添加阿里云Base源 wget

paip.导入数据英文音标到数据库mysql为空的问题之道解决原理

#---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax from log import * iniLog (r"c:\enWzPhonetic.log") n=0 for line in lines: if(n>100000 ):break; if( not isContain(lin

数据库---mysql主从复制读写分离

http://m.open-open.com/m/lib/view/1413274853450.html 原理及架构分析 部署前准备 下载好源码包存放位置要与脚本中对应 mysql-5.5.22.tar.gz,cmake-2.8.6.tar.gz,amoeba-mysql-binary-2.2.0.tar.gz,jdk-6u14-linux-x64.bin selinux和iptables不做设置,关闭 系统光盘镜像为本地yum源,配置好yum文件 环境介绍: 主服务器(master):192.

数据库mysql 分库备份脚本

数据库mysql 分库备份脚本 在企业工作中,我们经常会遇到数据库备份问题,当然我之前不止提到过mysql 主从,现在我们 先来看看单库如何来实现分库定期进行备份的,先看一下以下脚本: vi mysql_backup.sh #!/bin/sh #backup tiandao bbs edoing #coding tonye.li MYUSER=root MYPASS=meidi SOCKET=/data/3306/mysql.sock MYCMD="mysql -u$MYUSER -p$MYPA

数据库mysql 自动分库分表备份脚本

数据库mysql 自动分库分表备份脚本 当我们在公司中遇到数据库的备份,项目比较多,经常进行数据库和表的添加工作,那么我们 想要让系统脚本自动进行查询数据库里的库和表结构,然后进行自动的定期进行数据库和表的定期份, 那么我们该如何实现呢,大家看看以下的脚本: vi mysql_backup.sh #!/bin/sh #backup tiandao bbs edoing #coding tonye.li MYUSER=root MYPASS=meidi SOCKET=/data/3306/mysq

趁一切还来得及【一】数据库MySQL基础知识及编译安装

此情更待成追忆,只是当时已惘然.                                        --[唐]李商隐 第一章 数据库概述及分类特点应用 1.1 数据库种类.语言处理.典型产品 ①数据库的理解:就是一个存放数据的仓库,这个仓库是按照一定的数据结构,来组织和存储的.可以通过数据库提供的多种方法来管理数据库. ②数据库的种类:按照早期的数据库理论分为层次数据库.网络式数据库.和关系型数据库.当今互联网最常用的就是关系型数据库和非关系型数据库(NOSQL). ③关系型数据库: