西安做网站微信公司哪家好,湛江企业网站,ui高级培训机构,公章在线制作网站做不了一、数据库管理系统DBMS
数据库技术是计算机科学的核心技术之一#xff0c;具有完备的理论基础。使用数据库可以高效且条理分明地存储数据#xff0c;使人们能够更加迅速、方便地管理数据
1.可以结构化存储大量的数据信息#xff0c;方便用户进行有效的检索和访问
2.可以…一、数据库管理系统DBMS
数据库技术是计算机科学的核心技术之一具有完备的理论基础。使用数据库可以高效且条理分明地存储数据使人们能够更加迅速、方便地管理数据
1.可以结构化存储大量的数据信息方便用户进行有效的检索和访问
2.可以有效地保持数据信息的一致性、完整性降低数据冗余
3.可以满足应用的共享和安全方面的要求
文件管理系统缺点数据库管理系统DBMS优点编写应用程序不方便相互关联的数据的集合数据冗余不可避免较少的数据冗余应用程序依赖性程序与数据相互独立不支持对文件的并发访问保证数据的安全、可靠数据间联系弱最大限度地保证数据的正确性难以按用户视图表示数据数据可以并发使用并能同时保证一致性无安全控制功能
1.DBMS的功能
数据管理系统的基本功能为数据定义、数据处理、数据安全、数据备份
1.数据库的建立和维护功能包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能
2.数据定义功能包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式及信息格式等功能。保证存储在数据库中的数据正确、有效和相容以防止不合语义的错误数据被输入或输出
3.数据操纵功能包括数据查询统计和数据更新两个方面
4.数据库的运行管理功能这是数据库管理系统的核心部分包括并发控制、存取控制、数据库内部维护等功能
5.通信功能DBMS与其他软件系统之间的通信,如Access能与其他Office组件进行数据交换
2.DBMS架构
单机架构、大型主机/终端架构、主从式架构C/S、分布式架构
3.DBMS分类
1.层次数据库
层次模型数据库系统是最早研制成功的数据库系统这种数据库最成功的典型是IMSIMS的全称是Information Management System由IBM公司研制成功。IMS于1969年投入运行最早的版本有IMS/360-1和IMS/360-2。较近的版本有IMS/VS DL/1它是在操作系统DOS/VSDisk Operation System/Virtual Storage支持下运行
2.网状数据库
网状数据库是采用网状原理和方法以网状数据模型为基础建立的数据库。一般是指由网状数据库管理系统产生的网状数据库系统。网状数据模型是以记录类型为结点的网络结构即一个结点可以有一个或多个下级结点也可以有一个或多个上级结点两个结点之间甚至可以有多种联系。例如“教师”与“课程”两个记录类型可以有“任课”和“辅导”两种联系称之为复合链。两个记录类型之间的值可以是多对多的联系例如一门课程被多个学生修读一个学生选修多门课程
3.RDBMS关系型数据库
Relational Database Management System,关系模型最初由IBM公司的英国计算机科学家埃德加·科德(Edgar F. Codd)于1969年描述,1974年IBM开始开发系统R这是一个开发RDBMS原型的研究项目。然而第一个商业上可用的RDBMS是甲骨文于1979年由关系软件现为甲骨文公司发布
二、RDBMS关系型数据库
1.关系型数据库
1.关系Relational关系就是二维表其中表中的行、列次序不重要
2.行row表中的每一行又称为一条记录record
3.列column表中的每一列称为属性字段域field
4.主键primary keyPK用于唯一确定一个记录的字段一张表只有一个主键
5.域domain属性的取值范围例如性别只能是男或女
2.常用关系数据库
1.MYSQL免费、开源、体积小
2.SQL Server面向Windows操作系统、简单、容易使用
3.Oracle面向所有主流平台、安全完善、操作复杂
4.DB2面向所有主流平台、大型、安全完善
5.PostgreSQL(简称pgsql,EnterpriseDB)
3、关系型数据库三要素
实体对应现实世界中可区别于其他对象的“事件”或“事物”如银行客户、银行账户等
属性实体所具有的某一特性一个实体可以有多个属性如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性
联系实体集之间的对应关系称为联系也称为关系如银行客户和银行账户之间存在“储蓄”的关系
4.关系型数据库与非关系型数据库
1.关系数据库
关系型数据库的存储结构是二维表格在每个二维表中每一行称为一条记录用来描述一个对象的信息每一列称为一个字段用来描述对象的一个属性
1.关系数据库系统是基于关系模型的数据库系统
2.关系模型的数据结构使用简单易懂的二维数据表
3.关系模型可用简单的“实体-关系”E-R图来表示
4.E-R图中包含了实体数据对象、关系和属性三个要素
2.非关系数据库
非关系型数据库存储数据不以关系模型为依据不需要固定的表格式常用的非关系数据库Redis、mongoDB等
1.数据库可高并发读写
2.对海量数据高效率存储与访问
3.数据库具有高扩展性与高可用性
三、数据库基础
数据库内核的作用调用硬件资源
1.数据
1.描述事物的符号记录
2.包括数字、文字、图形、图像、声音、档案记录等
3.以“记录”形式按统一的格式进行存储
2.表
1.将不同的记录组织在一起
2.用来存储具体数据
3.数据库
1.表的集合是存储数据的仓库
2.以一定的组织方式存储的相互有关的数据集合
4.访问数据库的流程 过程应用程序把查询SQL语句发给服务器端执行服务器解析请求的SQL语句语句执行
注确保SQL语法正确确保SQL语义上的正确性即对象是否存在数据库用户是否具有相应的访问权限
四、数据库介绍
1.数据库系统
数据库系统是由人机系统、硬件、OS、数据库、DBMS、应用软件和数据库用户组成用户可以通过DBMS或应用程序操作数据库
数据库分两大类关系型数据库和非关系型数据库
关系数据库SQL
操作命令SQL语句
存储结构二维表格
存储的数据结构化数据
每一行称为一条记录用来描述一个对象的信息
每一列称为一个字段用来描述对象的一个属性
非关系数据库NoSQL:
存储结构键值对文档索引时间序列
缓存型Redis Memcached
文档型MongoDB
索引型ElasticSearch
时序型Prometheus InfluxDB
主键
主键Primary Key是一个数据库表中的一列或一组列用于确保数据的唯一性和数据行的唯一标识在表中主键的值是唯一的
主键具有以下特点
1.唯一性主键列中的值必须是唯一的每一行的主键值都不相同
2.非空性主键列的值不能为空也就是不允许为空值或NULL值
3.唯一标识性主键用于识别和区分表中的不同行数据通过主键可以快速定位和访问表中的数据
主键还可以用于建立表与表之间的关系实现数据的关联和连接操作
2.MySQL数据库的特点和三大分支
MySQL数据库特点
1.性能卓越、服务稳定
2.开源无版权限制成本低
3.多线程多用户
4.基于C/S客户端/服务端架构
5.安全可靠
MySQL三大分支
1.mysql
2.mariadb
3.percona Server
查看MySQL版本mysql -V
3.MySQL的组成
客户端程序
1.mysql交互式的CLI工具
2.mysqladmin基于mysql协议管理mysqld
3.mysqlimport数据导入工具
4.myisamchk检查MyISAM库
5.myisampack打包MyISAM表只读
服务器端程序
1.mysqld_safe
2.mysqld
3.mysqld_multi多实例
4.常用的数据类型
int 整型 无符号[0,232-1]有符号[-231,2^31-1] float 单精度浮点 4字节32位 double 双精度浮点 8字节64位 char 固定长度的字符类型 varchar 可变长度的字符类型 text 文本 image 图片 decimal(5,2) 5个有效长度数字小数点后面有2位
5.SQL语句
SQL语句用于维护管理数据库包括数据查询、数据更新、访问控制、对象管理等功能。
SQL语言分类 DDL数据定义语言用于创建数据库对象如库、表、索引等 DML数据操纵语言用于对表中的数据进行管理 DQL数据查询语言用于从数据表中查找符合条件的数据记录 DCL数据控制语言用于设置或者更改数据库用户或角色权限
6.MySQL的约束特性
1.primary key(主键约束)字段的值不能重复且不能为null一个表只能有一个唯一键
2.uniq key(唯一性约束)字段的值不能重复可以为null一个表可以有多个唯一键
3.not null(非空约束)字段的值不能为null
4.default(默认值约束)字段的值如果没有设置则使用默认值自动填充
5.auto_increment (自增约束) 字段的值如果没有设置默认会从1开始每次自动递增1要求自增字段必须设置主键
6.int(N) zerofill (零填充)
五、编译安装MySQL数据库
1.安装相关依赖包 yum -y install gcc gcc-c bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel ncurses-devel autoconf cmake 2.下载并解压压缩源码包 cd /opt tar xf mysql-boost-5.7.20.tar.gz 3.切换到mysql目录下检测编译环境并选择功能 cd mysql-5.7.20 cmake \ -DCMAKE_INSTALL_PREFIX/usr/local/mysql \ -DMYSQL_UNIX_ADDR/usr/local/mysql/mysql.sock \ -DSYSCONFDIR/etc \ -DSYSTEMD_PID_DIR/usr/local/mysql \ -DDEFAULT_CHARSETutf8 \ -DDEFAULT_COLLATIONutf8_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE1 \ -DWITH_ARCHIVE_STORAGE_ENGINE1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE1 \ -DMYSQL_DATADIR/usr/local/mysql/data \ -DWITH_BOOSTboost \ -DWITH_SYSTEMD1 4.编译安装时间较久 make -j2 make install 5.数据库目录进行权限调整改变属主属组 useradd -s /sbin/nologin mysql chown -R mysql:mysql /usr/local/mysql chown mysql:mysql /etc/my.cnf 6.编辑配置文件 vim /etc/my.cnf [client] port 3306 default-character-setutf8 socket /usr/local/mysql/mysql.sock [mysql] port 3306 default-character-setutf8 socket /usr/local/mysql/mysql.sock [mysqld] user mysql basedir /usr/local/mysql datadir /usr/local/mysql/data port 3306 character_set_serverutf8 pid-file /usr/local/mysql/mysqld.pid socket /usr/local/mysql/mysql.sock server-id 1 sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES 7.设置环境变量 #配置环境变量 echo PATH/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH /etc/profile echo export PATH /etc/profile #刷新 source /etc/profile #查看环境变量是否配置成功 echo $PATH 8.初始化数据库 #切换目录 cd /usr/local/mysql #初始化 bin/mysqld \ --initialize-insecure \ --usermysql \ --basedir/usr/local/mysql \ --datadir/usr/local/mysql/data 9.复制 cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ 10.数据库开启自启、关闭、状态 #设置开机自启 systemctl enable mysqld #开启 systemctl start mysqld #关闭 systemctl stop mysqld #查看状态 systemctl status mysqld #过滤端口验证是否开启 ss -anpt |grep 3306 11.设置MySQL密码 #设置密码为123开始初始密码为空直接回车即可 mysqladmin -u root -p password 123 12.登录和登出mysql #登录 mysql -u root -p #退出 quit 六、yum安装mysql数据库
1.yum安装5.7版本 yum install mariadb-server -y 2.启动 MariaDB 数据库服务 systemctl start mariadb.service 3.对MariaDB数据库进行初始化设置这里只用设置一个密码一路回车即可 #进入初始化设置 mysql_secure_installation 4.创建一个新的YUM仓库配置文件将相关的仓库信息写入到这个文件中 #创建一个新的yum仓库配置文件 tee /etc/yum.repos.d/mysql.repo EOF #将此内容写入该文件官方源5.7.3 [mysql57-community] nameMySQL 5.7 Community Server baseurlhttp://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/ enabled1 gpgcheck0 EOF 5.使用yum包管理器安装MySQL服务器 yum -y install mysql-community-server 6.启动mysql服务 systemctl start mysqld 7.查看3306端口使用情况 ss -ntap |grep 3306 8.启动mysql mysql -u root -p 输入密码 七、MySQL数据库基本操作
1.登录Mysql数据库
表名和库名区分大小写命令不区分大小写 #登录 mysql -u root -p 2.新建数据库与查看数据库的基础信息 #建立数据库 create database eva; #查看数据库的基础信息 show create database eva; 3.新建数据库指定字符集 #指定utf8字符集 create database eva charsetutf8; #查看数据库的基础信息 show create database eva; 4.if no exists是否存在判断数据库是否存在 #判断数据库是否存在 create database IF NOT EXISTS eva; #查看警告信息 show warnings; #创建数据库的SQL语句用于创建一个名为zabbix的数据库并指定字符集为utf8排序规则为utf8_bin create database 是创建新数据库的SQL语句 esdeath 是要创建的数据库的名称 character set utf8 指定了数据库的默认字符集为utf8这意味着存储在数据库中的所有字符串数据将使用utf8编码 collate utf8_bin 指定了数据库的默认字符排序规则为utf8_bin这意味着字符串比较将区分大小写 create database zabbix character set utf8 collate utf8_bin; #查看该数据库的基础信息 show create database esdeath; 5.删除数据库 #删除名为esdeath的数据库 drop database eva; 6.查看数据库列表 #查看所有数据库不推荐 show databases; 7.新建表 #进入数据库 use eva; #创建数据表名为studentid 2个字节不加符号主键 插入新数据时自动为主键分配唯一递增的值名字 可变最多10个字符age 一个字节 不加符号性别 多选M或F默认为M create table student (id smallint unsigned primary key auto_increment, name varchar(10), age tinyint unsigned,gender enum(M,F) default M ); #加入数据,名字和年龄分别为eva18岁 insert student (name,age) values(eva,18); #查看student数据表记录 select * from student; #加入空字段 insert student values(); #查看student数据表记录 select * from student; #删除该空字段 delete from student where id2; #查看student数据表记录 select * from student; #描述数据库中名为student表的结构信息 desc student; #查看创建数据表的语句 show create table student; #删除数据表 drop table student;