数据库服务概述
什么是数据库
数据库介绍
1)存储数据的仓库
2)生活中的数据:视频、音频、图片和文本
常见软件
主流的操作系统:Unix、Linux和Windows
专业术语
1)DB(DataBase):数据库,依照某种数据模型进行组织并存放到存储器的数据集合
2)DBMS(DataBase Mangement System):数据库管理系统,用来操纵和管理数据库的服务软件
3)DBS(DataBase System):数据库系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算机系统
----------------+++++++++++++++++++++++++++++±----------------------
MySQL介绍
起源与发展
1)应用最广泛的开源数据库软件,最早隶属于瑞典的MySQL AB公司;2008年1月,MySQL AB被Sun收购;2009年4月,Sun被Oracle收购
2)崭新的开源分支MariaDB,为应付MySQL可能会闭源的风险而诞生,由MySQL原作者Widenius主导开,发与MySQL保持最大程度兼容
特点及应用
1)主要特点:
适用于中小型规模、关系型数据库系统;
支持Linux、Unix和Windows等多种操作系统;
支持Python、Java、Perl和PHP等编程语言
2)典型应用环境:
LAMP平台,与Apache HTTP Server组合;
LNMP平台,与Nginx组合
构建MySQL服务
MySQL相关参数
MySQL初始配置
初始密码登录
1)数据库管理员名为root
2)默认仅允许root本机连接
3)首次登录密码在安装软件时随机生成
4)随机密码存储在日志文件/var/log/mysqld.log里
5)连接命令 mysql -h数据库地址 -u用户 -p密码
grep 'password' /var/log/mysqld.log #查看随机密码
2020-02-18T19:49:23.132967Z 1 [Note] A temporary password is generated for root@localhost: s=eeigvhg6zU
mysql -hlocalhost -uroot -p's=eeigvhg6zU' #连接数据库
修改root密码
具体操作如下:
1)使用alter user 命令修改登录密码
2)新密码必须满足密码策略
3)管理员root使用新密码连接服务
#进入数据库中,修改密码
mysql > alter user root@"localhost" identified by "密码"
#使用新密码登录
mysql -hlocalhost -uroot -p"密码"
修改密码策略
mysql> show variables like “%password%”; #查看变量
mysql> set global validate_password_policy=0; #修改密码策略
mysql> set global validate_password_length=6; #修改密码长度
[root@mysql ~]# vim /etc/my.cnf #永久配置,添加以下两行
…
[mysqld]
validate_password_policy=0
validate_password_length=6
…
数据库基本管理
连接MySQL服务
连接方式
1)客户端连接MySQL服务的方法:
① 命令行
② web页面
③ 安装图形软件
④ 编写脚本(php、Java、Python、shell……)
2)使用mysql命令
—— mysql -h服务器IP -u用户名 -p密码 【数据库名】
—— quit 或 exit 退出数据库
数据库存储流程
客户端把数据存储到数据库服务器上的步骤
1)连接数据库服务器
2)建库 #类似于文件夹
3)建表 #类似于文件
4)插入记录 #类似于文件内容
5)断开连接
MySQL管理环境
SQL命令使用规则
1)SQL命令不区分大小写(密码、变量值除外)
2)每条SQL命令以;(英文分号)结束
3)默认命令不支持Tab建自动补齐
4)\c 终止SQL命令
常用的SQ命令分类
管理数据库使用SQL(结构化查询语言)
1)DDL数据定义语言 如:create、alter、drop
2)DML数据操作语言 如:insert、update、delete
3)DCL数据控制语言 如:grant、revoke
4)DTL数据事物语言 如:commit、rollback、savepoint
MySQL基本操作
库管理命令
库类似于文件夹,用来存储表
1)可以创建多个库,通过库名区分
2)show databases; #显示已有的库
3)select user(); #显示连接用户
4)use 库名; #切换库
5)select database(); #显示当前所在的库
6)show tables; #显示已有的表
7)drop databases; #删除库
库名命令规则
1)仅可以使用数字、字母、下划线、不能纯数字
2)区分大小写,具有唯一性
3)不可使用指令关键字、特殊字符
表管理命令
建表:
1)表存储数据的文件
mysql> create table 库名.表名(字段名1 类型(宽度),字段名2 类型(宽度)…) default charset=utf8;(指定中文字符集,可以给字段赋值中文)
2)类似于文件
desc 库名.表名; 查看表结构
drop database或table 库名或库名.表名 #删除库或者表
3)记录类似于文件里的行
select * from 库名.表名 #查看表记录
insert into 库名.表名 values(值列表) #插入表记录
update 库名.表名 set 字段=“值” #修改表记录
delete from 表名 #删除表记录
----------------------+++++++++++++++++++++++++++±---------------------------
MySQL数据类型
信息种类
1)数值型:体重、身高、成绩、工资
2)字符型:姓名、工作单位、通信地址
3)枚举型:兴趣爱好、性别、专业
4)日期时间型:出生日期、注册日期
字符类型
1)定长:char(字符个数)
最大字符个数255
不够指定字符个数时在右边用空格补全
字符个数超出时,无法写入数据
2)变长:varcahr(字符个数)
按数据实际大小分配存储空间
字符个数超出时,无法写入数据
3)大文本类型:text/blob
字符数大于65535存储时使用
数值类型
1)整数型:只能存储整数
2)浮点型:
格式1: 字段名 类型
格式2: 字段名 类型(总宽度、小数位数)
事件类型
类型:
1)日期时间 datetime
范围:1000-01-01 00:00:00~ 9999-12-31 23:59:59
格式:yyyymmddhhmmss
2)日期时间 timestap
范围:1970-01-01 00:00:00 ~ 2038-01-19 00:00:00
格式:yyyymmddhhmmss
3)日期 date
范围:0001-01-01 ~ 9999-12-31
格式:yyyymmdd
4)年 year
范围:1901 ~ 2155
格式:yyyy
5)时间 time
范围:00:00 ~23:59:59
格式:HH:MM:SS
关于日期时间字段
1)当未给timestamp字段赋值时,自动以当前系统时间复制,而datetime值为NULL(空)
2)year 类型
要求使用4位数复制
当使用2位数赋值时:
01 ~ 69 视为 2001 ~ 2069
70 ~ 99 视为 1970 ~ 1999
时间函数
MySQL服务内置命令
可以使用时间函数给字段赋值
枚举类型
enum
enum 单选:
格式: 字段名 enum(值1,值2,值N)
1)仅能选一个
2)字段值必须在列表里选择
set
set 多选:
格式:字段名 set(值1,值2,值N)
1)选择一个或多个值
2)字段值必须在列表里选择