一,数据库介绍
一、数据库介绍
1.1 什么是数据库?
1.2 数据是什么?
数据是科学实验、检验、统计等所获得的和用于科学研究、技术设计、查证、决策等的数值。
计算机数据是指计算机中能被识别和处理的物理符号,如数字符号、图形、图像、声音等。数据分为数值型数据(如整数、实数)和非数值型数据(如数字符号、图形、图像、声音等),数据是信息的表现形式。
物流数据是指不能直接满足物流作业系统某一环节的需要,但又与之密切相关,只有经过一系列的信息处理之后才能满足需要的物流情报;而那些能够直接应用或者经过简单处理后就能在某一作业环节发挥作用的物流数据,则称为物流信息。
会计数据是指用于描述各种经济业务属性的数据,例如:银行存款100万元、同定资产800万元、注册资本5000万元和利润总额130万元等
1.3 提供数据库服务的软件有哪些?
1.4 如何决定使用哪种软件 搭建数据库服务
是否要花钱买?是否跨平台?
1.5 专业术语:
DB DBMS DBS
1.6, 特点及应用
二、搭建MySQL数据库服务器
软件安装下载
2.1 MySQL软件介绍
MySQL是世界上最受欢迎的开源数据库软件,其软件在其历史上的下载或分发超过1亿份。MySQL以其优越的速度、可靠性和易用性成为Web、Web2.0、SaaS、ISV、电信公司和前瞻性公司IT经理的首选,因为它消除了与现代在线应用程序的停机、维护和管理相关的主要问题。
世界上许多规模最大、增长最快的公司使用mysql来节省时间和金钱,为他们的高容量网站、关键业务系统和打包软件提供动力–包括雅虎、阿尔卡特朗讯、谷歌、诺基亚、youtube、维基百科和Booking.com等行业领先企业。
MySQL的旗舰产品是MySQLEnterprise,这是一套全面的经过生产测试的软件、积极主动的监控工具,以及在可负担的年度订阅中提供的优质支持服务。
MySQL是LAMP(Linux、Apache、MySQL、PHP/Perl/Python)的关键部分,它是快速增长的开源企业软件栈。越来越多的公司使用LAMP代替昂贵的专有软件栈,因为它的成本较低,而且不受平台锁定。
MySQL数据库由太阳微系统是世界上最大的开源软件贡献者之一。MySQL最初是由两个瑞典人和一个芬兰人在瑞典创建和开发的:David
Axmark、Allan
Larsson和Michael“Monty”Wdenius,他们自20世纪80年代以来一直在一起工作。更多关于MySQL的历史信息是见维基百科
netstat -utnlp | grep :3306 口号 //查看服务信息
ps -C mysqld //查看进程
rpm -qa | grep -i mysql | wc -l //查看包含mysql 的软件 wc -l 统计数量
相关参数
初始密码
修改root密码
alter user root@“localhost“ identified by ”密码“; alter :修改 identified :身份
连接方式
数据存储流程
1,连接数据库服务器
2,建库
3,建表
4,插入记录
5,断开连接
MySQL管理环境
SQL命令使用规则
命令不区分不大小(密码,变量值除外)
每条SQL命令以;结束
默认命令不支持Tab键自动补齐
\c 终止SQL命令
MySQL 命令分类
库管理命令
库管理规则
库名 命令规则
修改密码策略
2.2 搭建MySQL数据库服
务
安装软件
]# tar -xvf mysql-5.7.17.tar
]# yum -y install mysql-community-*.rpm
[root@HOST51 upload]# systemctl start mysqld //起服务
[root@HOST51 upload]# systemctl enable mysqld //开机自启服务
]# ls /var/lib/mysql //查看数据库目录
]# netstat -utnlp | grep 3306
]# grep "password" /var/log/mysqld.log //过滤日志密码
]# mysql -uroot -p'QikKhtR3Ow=:' //首次输入密码随机密码
mysql> alter user root@"localhost" identified by "123qqq...A"; //修改密码
mysql> show databases; //显示库
mysql> quit //退出
]# mysql -uroot -p123qqq…A
mysql>
修改密码策略 并 设置新密码为123456
mysql> show variables like “%password%”; // 查看变量
variables :变量
mysql> set global validate_password_policy=0; // 修改密码策略 (命令行配置)
set :修改 global : 全局
mysql> show variables like “validate_password_policy”; //查看密码策略
mysql> set global validate_password_length=6; 命令配置 //修改密码长度 (命令行配置)
mysql> show variables like “validate_password_length”; //查看密码长度
mysql> alter user root@“localocal” identified by “123456”; // 验证配置
mysql> exit
]# mysql -uroot -p123456
mysql>
]# vim /etc/my.cnf 永久配置
[mysqld]
validate_password_policy=0
validate_password_length=6
:wq
]# systemctl restart mysqld
]# mysql -uroot -p123456
mysql> show variables like "%password%";
systemctl stop mysqld
rm -rf /var/lib/mysql/*
systemctl start mysqld
grep "password" /var/log/mysqld.log
MySQL数据库服务的基本使用
1 连接数据库服务的方式
2 把数据存储到数据服务器上过程
3 sql命令使用规则
4 sql命令分类
常用管理命令演示
show databases; //显示已有的库
select user(); //显示连接用户
use 库名; //切换库
select database(); //显示当前所在的库
create database 库名; //创建新库 (要知道库名的命名规则)
show tables; //显示已有的表
drop database 库名; //删除库
表管理命令
表记录命令
信息类型
字符类型
定长 : char
变长varchar
drop table 表 删除表
create database db1;
create table db1.sutinfo( name char(10) , homeaddr char(20) ); //创建表
use db1; //切换库
show tables;
mysql> desc sutinfo; // 显示表结构
mysql> insert into db1.sutinfo values (“bob”,“usa”),(“lilei”,“china”); //插入表内容
insert 插入 into 到 …中 values 值 | |
---|---|
mysql> insert into db1.sutinfo values (“jerry”,“js”);
mysql> select * from db1.sutinfo; //显示表所有信息
mysql> select name from db1.sutinfo;
mysql> update db1.sutinfo set homeaddr=“bj”;
mysql> update db1.sutinfo set homeaddr=“sh” where name=“lilei”;
mysql> delete from db1.sutinfo where name=“lilei”; //删除表信息 where :条件 from 来自
mysql> delete from db1.sutinfo ; 查看表结构
mysql> select * from db1.stuinfo;
mysql> show tables;
mysql> drop table db1.sutinfo; 删除表结构
建表时指定表的字符集 使其可以存储中文
default charset=utf8; (添加到(库)(表)最后) 可以添加中文数据 | |
---|---|
mysql> create table db1.user2(name char(3))default charset=utf8;
mysql> show create table db1.user2 \G;
mysql> insert into db1.user2 values (“张三疯”);
mysql> select * from db1.user2;
MySQL数据类型
**字符类型 char 和 varchar**
mysql> create table db1.t1(class char(7),name char(20),email varchar(50) );
mysql> insert intodb1.t1 values(“nsd1911”,“bob”,“bob@163.com”);
mysql> insert into db1.t1 values(“nsd1911”,“jerry”,“jerry@qq.com”);
msyql> select * from db1.t1;
desc mysql.user;
数值类型
整数类型 微小整型 小整型 大整型 极大整型
mysql> create table db1.t2(name char(10) , age tinyint unsigned);
只能存整数
mysql> insert into db1.t2 values (“bob” , 256); //报错案列 最大255
ERROR 1264 (22003): Out of range value for column ‘age’ at row 1
mysql>
mysql> insert into db1.t2 values (“bob” , 25);
Query OK, 1 row affected (0.00 sec)
mysql> insert into db1.t2 values (“tom” , -1);
ERROR 1264 (22003): Out of range value for column ‘age’ at row 1
mysql>
mysql> insert into db1.t2 values (“tom” , 1);
Query OK, 1 row affected (0.01 sec)
mysql> insert into db1.t2 values (“jerry” , 19.5); //四舍五入 ,取整数 20
mysql> insert into db1.t2 values (“jack” , 19.4); //四舍五入 ,取整数 19
mysql> select * from db1.t2; //显示表内所有内容
浮点型 11.88
单精度 float
双精度 double
单精度 4个字节 (4个字节就是2的32次方)
双精度 8 个字节
小数的组成
整数.小数 288.22
字段名 float(n,m) xxx.xx 999.99 ~ -999.99
字段名 double(n,m)
n表示总位数 个数 xxxxx.xx 99999.99 ~ -99999.99
m表示小数位 个数
create table db1.t3 (name char(10) , gz float(7,2) );
mysql> desc db1.t3;
mysql> insert into db1.t3 values(“jack”,6888);
mysql> select * from db1.t3;
mysql> insert into db1.t3 values(“jack”,18888.23);
mysql> insert into db1.t3 values(“jack”,118888.23);
日期时间类型
类型
日期时间datetime
-范围 ;1000-01-01 00:00:00~9999-12-31 23:59:59
-格式 :年月日 时分秒日期时间 timestamp
-范围 : 1970-01-01 00:00:00 ~2038 01-19 00:00:00
-格式:年月日 时分秒
日期 date
范围:0001-01-01~9999-12-31
年yearr
-范围 :19201~2155
时间 time
HH:MM:ss
关于日期时间字段
-当未给timestamp 字段赋值时,自动以当前系统时间赋值,而datetime 值为NULL (空值)year 类型
- 要求使用4位数字赋值
- 当使用2位数字赋值时:
- 01~69视为 2001~2069
- 70~99视为 1970~1999 时间函数 MySQL服务内置命令
-可以使用时间函数给字段赋值
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200214194538182.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTk2OTU0OA==,size_16,color_FFFFFF,t_70)
格式 :
show now(); // 显示当前日期时间
select year(now()); //显示年
select month(now()); //显示月份
select curtime(); //显示当前时间
select curdate(); //显示当前期
结构 下表
create table db1.t1 (name char(10),your_start year,uptime time,birthday date,party datetime);
创建表格,时间类型
枚举类型
enum 单选
set 多选
下表构建图
create table db1.t2 (name char(15),likes set("eat","game","film","it"),enum("boy","girl"));
//创建表格 枚举类型