数据库管理系统介绍及基础应用

数据库管理系统介绍及基础应用数据库管理系统

大家好,欢迎来到IT知识分享网。

数据库管理系统介绍及基础应用

一、数据库管理系统的介绍

1.介绍

数据库管理系统。能高效的合理的有规划的存储和应用海量数据

DBA:database administrator 数据库管理工程师

互联网相关认证

  • 网络相关:华为H3C hcip hcia
  • 网络安全:cisp scisp cissp
  • DBA:OCP OCM
  • 等级保护:等保测评师

2.数据库的分类

  • 关系型数据库
    特点:数据结构严谨,存储数据严格格式要求,所有数据支持永久存储与备份,适用于海量数据的永久性保存
    代表产品:MySQL,Oracle,PostgreSQL,sql server,Access,Sqlit
  • 非关系型数据库(NoSql)
    nosql:not only sql
    特点:数据类型灵活,支持数据存储格式非常的多,所有数据的运行和存储都在内存中,更高效,读写性能更好
    代表产品:Redis,MongoDB,ElasticSearch,Memcache
  • 新型数据库
    特点:数据库架构(分布式数据库架构)既包含了关系型数据库的功能,也具备非关系型数据库的组件
    代表产品:TiDB,OceanBase,达梦,人大金仓,TdSQL

二、MySQL介绍

1.介绍

官网:MySQL.com

2.MySQL版本介绍

5.5 5.6 5.7

8.0

MySQL-ce #社区版

MySQL-ee #企业版

3.下载MySQL

043989f2a3a3a41112bdf73b9aeeaf6e

三、二进制安装MySQL

1.安装方式

  • yum:自动化简单
  • 编译安装:过于繁琐
  • 二进制安装:将编译安装好的文件打包

2.二进制安装MySQL

# 清空系统环境 yum autoremove mariadb* # 准备MySQL安装环境 创建运行用户 useradd -M -s /sbin/nologin mysql 安装依赖环境 yum install libaio -y 解压二进制包 cd /usr/local tar xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz ln -s /usr/local/mysql-8.0.18-linux-glibc2.12-x86_64 mysql8 二进制包介绍 bin #存放mysql命令 mysql #连接数据库客户端工具 mysqladmin #数据库系统管理工具 mysqld #数据库服务端运行启动脚本 mysqld_safe #启动数据库 mysqldump #数据备份工具 run #存放内存运行文件 support-files #程序运行支持工具脚本 mysqld_multi.server #运行MySQL脚本 mysql-log-rotate #数据库日志切割脚本 mysql.server #最终使用的服务启动脚本 配置MySQL启动命令 export PATH="$PATH:/usr/local/mysql8/bin" echo 'export PATH="$PATH:/usr/local/mysql8/bin"' >>/etc/profile 准备管理脚本 cp -rp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysql-start 准备数据目录并授权 mkdir /data/mysql8 -p chown -R mysql.mysql /data /usr/local/mysql-8.0.18-linux-glibc2.12-x86_64 数据库的基础数据初始化 mysqld --initialize-insecure --basedir=/usr/local/mysql8 --datadir=/data/mysql8 --user mysql --initialize-insecure #初始化数据库,没有密码 --basedir #MySQL的基础目录 --datadir #数据目录 echo $? 如果遇到初始化失败,重新初始化,要先清空数据目录 准备MySQL配置文件 cat >/etc/my.cnf<<'EOF' [mysqld] port=3306 user=mysql basedir=/usr/local/mysql8 datadir=/data/mysql8 EOF 启动数据库 /etc/init.d/mysql-start start start stop restart status 

四、数据库程序结构

C/S的服务架构的程序

服务端

  • mysqld_safe:服务端总进程派生父进程
  • mysqld:服务端数据库的线程调度器
  • 工作线程:处理数据库事务的工作线程
  • 预分配的内存结构:加载所需处理的数据页

客户端

  • 作用:用于登录,操作服务端
  • mysql:官方提供命令行客户端
  • 第三方客户端工具:图形化,windows工具
    navicat
    workbench
    sqlyog
  • api连接工具:
    java:ODBC
    python:py-mysql
    php:php-mysqlnd php-pdo
远程授权 create user root@'%' identified with mysql_native_password by '123'; grant all on *.* to root@'%'; 

五、SQL语句

1.介绍

结构化查询语言。专门用于数据库操作的交互语句,规范数据库操作语句语法

2.SQL分类

  • DCL语句:数据控制语句。
    专门针对权限管理。grant revoke
  • DDL语句:数据定义语句。
    专门针对资源创建和修改。create drop alter
  • DML语句:数据操作语句。
    专门针对数据进行增删改。insert update delete
  • DQL语句:数据查询语句。
    专门针对数据进行查询。show select
  • TCL语句:事务控制语句。
    专门针对数据库事务做管理操作。begin rollback

3.数据库用户管理

数据库用户:用户名@‘可用域’

#用户操作语句 创建用户 create user 用户名@'可用域' identified by '密码'; create user 用户名@'可用域' identified with mysql_native_password by '密码'; 创建本地登录用户的dms用户 create user dms@'localhost' identified by '123'; create user dms@'%' identified with mysql_native_password by '123'; 注意:Mysql8的特点 密码的加密方式不一样:8以后版本 sha256加密算法 8以前版本 使用的mysql_native_password 修改加密方式 alter user dms@'%' identified with mysql_native_password by '123'; 查看用户 select user,host,plugin from mysql.user; 删除用户 drop user dms@'%'; 可用域范围 create user dms@'10.0.0.%' identified with mysql_native_password by '123'; 

4.DCL数据控制语句

grant:用于针对用户权限进行授权 #语法格式 grant 权限 on 库.表 to 用户名@'可用域'; 注意:Mysql8以后不支持用grant修改用户密码 查看系统中可以管理的权限 show privileges; create #创建资源的权限 drop #删除资源的权限 update #更新数据的权限 delete #删除资源的权限 alter #修改资源属性的权限 授予dms用户创库的权限 grant create,drop on *.* to dms@'%'; 创建test的管理员用户 grant all on *.* to test@'%'; 管理员用户默认没有授权权限 创建有授权权限的test管理员用户、 grant all on *.* to test@'%' with grant option; #grant只能授权不能回收权限 
revoke:权限回收 #语法格式 revoke 权限 on 库.表 from 用户名@'可用域'; revoke create on *.* from michael@'%'; 

六、SQL语句基础概念内容

1.sql_mode

作用:用于限制sql语句的执行逻辑,为了让sql语句的数据处理时更加符合现实生活的常识

select @@sql_mode; ONLY_FULL_GROUP_BY #限制group_by子句的应用 STRICT_TRANS_TABLES #限制数据库事务语句的执行 NO_ZERO_IN_DATE #日期格式不可以有0 NO_ZERO_DATE #年份不可以有0 ERROR_FOR_DIVISION_BY_ZERO #限制0不可以作为数学表达式中的除数 NO_ENGINE_SUBSTITUTION #每次创建表必须有默认的存储引擎类型的。如果没有则按照系统默认的创建 

2.数据库中的存储引擎的分类

  • 库:多个数据表构成一个库
  • 表:多个数据行构成一个表。每一个表都有一个存储引擎,用于规划表中数据存储逻辑
  • 数据行:多列数据构成一个数列行
show engines; InnoDB MyISAM 

3.字符集

show charset; 以库为单位设定字符集 latin1 仅支持数字和字母。支持单个字符最大1字节。不支持汉字 utf8 支持汉字。支持最大长度3字节。不支持emoji utf8mb4 支持emoji。支持最大长度4字节 

4.排序规则

通过ASCII码对数据文本进行排序 与字符集对应

show collation; *_general_ci #默认排序规则 *_bin #排序规则严谨性更高。区分大小写排序 

5.数据类型

整型(数字类型) tinyint #最大支持1字节的长度。8位 256。数字范围-128~127 int #最大支持4字节的长度。32位。支持10位数 bigint #最大支持8字节的长度。64位。支持20位数 
浮点型(小数) float 小数类型 decimal 小数类型 
字符类型 char #固定长度字符类型.最长支持256个 char(16) #固定每条数据都会占用16个字符的空间。 varchar #可变长度的字符类型.最长支持65534个字符 varchar(16) #每条数据根据十几个数额外占用1个空间。 text #没有长度上限 
时间格式类型 date #年月日 daytime #年月日 时分秒 timestamp #时间戳 
枚举类型 enum enum('男','女') 

6.列的属性(列约束)

主键(primary key):非空,唯一。每个表中只可以有一个主键列 非空(not null):不能为空 唯一(unique);一列中不能有重复值 自增(auto increment):根据排序规则,自动填充下一个值 默认值(defalut):默认值 注释(comment):解释描述某一列的意思 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/146559.html

(0)
上一篇 2025-04-13 19:20
下一篇 2025-04-13 19:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信