数据库服务概述 、 构建MySQL服务 、 数据库基本管理 、 MySQL数据类型

一、数据库的介绍及其相关概念

数据库:存储数据的仓库;

1.DB(DateBase)
数据库
依照某种数据模型进行组织并放到存储器的数据集合

2.DBMS(DateBase Management System)
数据库管理系统
用来操纵和管理数据库的服务软件

3.DBS(DataBase System)
数据库系统:即DB+DBMS
指带有数据库并整合了数据库管理软件的计算机系统

典型应用环境
LAMP平台,与Apache HTTP Server组合
LNMP平台,与Nginx组合

安装软件
**在这里插入图片描述**

[root@proxy ~]# systemctl start mysqld  #启动服务
[root@proxy ~]# ss -auntlp | grep 3306  #查看服务是否已经启动

在这里插入图片描述
information是在mysql的目录下没有的,这是属于虚拟库,数据存在
内存中,只读,不能进行删除,存储的是服务器参数设置

二、数据库的相关基础操作

1、修改登陆密码

首先查找初始密码,去日志里面查找,有特殊符号时需要加单引号

[root@proxy ~]# grep password  /var/log/mysqld.log  
[root@proxy ~]# mysql -uroot -p'vcY;pJT,f8Es'
mysql> alter user root@"localhost" identified by "123qqq...A";

如果日志没有初始密码,删除mysql的目录,重新启动服务(忘记密码也可以做该操作)

1.1、修改密码策略

在这里插入图片描述
临时修改

mysql> show variables like "%password%";  #查看变量
mysql> set global validate_password_policy=0;  #修改密码策略
mysql> set global validate_password_length=6;  #修改密码长度

永久修改

[root@proxy ~]# vim /etc/my.cnf
              [mysqld]
              ....
              validate_password_policy=0
              validate_password_length=6

2、常用的SQL命令分类

在这里插入图片描述

2.1、库管理命令

在这里插入图片描述
在这里插入图片描述

2.2、表管理命令

mysql> create database db1; #创建库
mysql> create table db1.sun(name char(10),homeadd char(20)); #创建表
mysql> create table db1.yun(password char(50),name char(5))default charset=utf8; #创建表,并支持中文
mysql> use db1 #进入该库目录下
mysql> show tables; #查看该库下所有表
mysql> desc db1.sun; #查看表结构
mysql> drop table db1.sun; #删除表

2.3、记录管理命令

在这里插入图片描述

mysql> insert into db1.yun values("jie","mao"),("f760","李峰"); #添加两行,可以用逗号隔开
mysql> select * from db1.yun; #查看表的内容
mysql> select name from yun; #查看表的name列内容
mysql> update db1.yun set name="李凤" where password="f760"; #修改表的内容
mysql> select * from db1.yun\G; #当表的内容过多,可以使用\G,竖直看
mysql> delete from yun; #删除表的内容,不删除表,也可以用它删除行,要加条件删除

3、MySQL数据类型

在这里插入图片描述

3.1、字符类型

定长:char(字符个数)
最大字符个数255
不够指定字符个数是在右边用空格补全
字符个数超出时,无法写入数据

边长:varchar(字符个数)
按数据实际大小分配存储空间
字符个数超出时,无法写入数据(65535)

大型文本类型:text/bob
字符数大于65535存储时使用

3.2、数值类型

3.2.1、整数型
在这里插入图片描述

mysql> create table db1.t1(name char(10),age tinyint unsigned);  #age的数值类型且使用无符号存储范围
mysql> insert into t1 values("jack","19.4");  #当输入的数带小数点时,会进行四舍五入

3.2.2、浮点型
在这里插入图片描述
字段名 float(n,m) xxx.xx 999.99 ~ -999.99
字段名 double(n,m) xxxxx.xx 99999.99 ~ -99999.99
n表示总位数 个数
m表示小数位 个数

mysql> create table t2(name char(10),gz float(7,2)); 
mysql> insert into t2 values("jack","77777"); 
mysql> select * from t2;
+------+----------+
| name | gz       |
+------+----------+
| jack | 77777.00 |
+------+----------+

3.3、日期时间类型

-日期时间 datetime
1.范围:1000-01-01 00:00:00~9999-12-31 23:59:59 2.格式:yyyymmddhhmmss

-日期时间 timestamp
1.范围:1970-01-01 00:00:00~2038-01-19 00:00:00 2.格式:yyyymmddhhmmss
PS:当timestamp字段赋值时,自动一当前系统时间赋值,而datetime值为null(空)

-日期 date
1.范围:0001-01-01~9999-12-31 2.格式:yyyymmdd

-年 year
1.范围:1901-2155 2.格式:yyyy
PS:当使用2位数赋值时:01-69视为 2001-2069 、70-99视为 1970-1999

-时间time
格式:HH:MM:SS

mysql> create table db2.t11(name char(15),csnf year,birthday date,up_class time,party datetime);
mysql> insert into db2.t11 values("bob",2020,20200214,090000,20200214090000);
mysql> create table db3.t1(name char(10),meetting datetime,party timestamp); #查看timestamp与datetime的区别
mysql> insert into db3.t1(name,meetting) values("mao",20200214090000);
mysql> insert into db3.t1(name,party) values("jie",20200214090000);

在这里插入图片描述

mysql> select curtime();
mysql> select curdate;
mysql> select time(now());
mysql> insert into db2.t11 values("jack",year(now()),date(now()),time(now()),now());  #插入当前系统时间

3.4、枚举类型

enum 单选
1.格式:字段名 enum(值1,值2,值N)
2.仅能选择一个值
3.字段值必须在列表里选择

set多选
1.格式:字段名 set(值1,值2,值N)
2.选择一个或多个值
3.字段值必须在列表里选择

mysql> create table db1.t7(name char(15),sex enum("boy","girl"),likes set("eat","game","it"));
mysql> insert into db1.t7 values("mao","boy","eat,it"); 
发布了25 篇原创文章 · 获赞 2 · 访问量 586

猜你喜欢

转载自blog.csdn.net/f5500/article/details/104284153