大家好,欢迎来到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
三、二进制安装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