第十七章 数据库操作-CENTOS7.5知识

本文详细对比了MariaDB与MySQL的特性,包括新选项、存储引擎和bug修复等方面的差异。同时,提供了MariaDB的安装、配置、管理及数据库操作教程,涵盖数据库创建、表结构管理、数据查询与更新等核心技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据库介绍
数据库:
sql server : 微软
oracle :甲骨文 收费 闭源
mysql :甲骨文 免费
SUN公司 小型机unix java mysql marrydb
其中MariaDB是MySQL的分支,也是它的进阶产品,未来很有可能替代MySQL。
Fackbook 阿里 : 去IOE产品(IBM ORACLE EMC2(存储柜))拿自己的钱给别人交学费,不必过度依赖传统的IOE架构
阿里:定制系统 服务器 数据库 定制

二、MYRIADB介绍
mysql:
简单易用、免费、查询速度快、安全可靠
独立的服务器,跟linux本身没有关联(包括命令、管理、远程管理等)
数据库结构: 数据库、表、字段、值
(表格、列/字段、1条记录/1行)

MariaDB有许多的新选项、扩展,存储引擎和bug修复,而MySQL是没有的
安装myriadb服务器:(在光盘上有rpm包)
yum install mariadb-server mariadb

数据库配置文件:
设置客户端:
vim /etc/my.cnf.d/mysql-clients.cnf

[mysql]
default-character-set=utf8

设置服务端:

vim /etc/my.cnf.d/server.cnf

[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake


开启mariadb:

Systemctl start mariadb

查看服务状态:
Systemctl status mariadb
netstat -antpl | grep 3306

=============================
mysql安装后,默认没有密码
mysql命令直接进入管理

为mysql账户设置密码:
mysqladmin -u 用户名 -p password 密码
再回车即可,若有原密码,输入原密码回车实现改密码
mysqladmin -uroot -p password 123123
以后进入mysql,通过
mysql -uroot -p123123

进入mysql数据库配置模式:
mysql -u 用户名
mysql -u root //root是mysql自己的管理员账户,默认没有密码

进入mysql数据库配置模式(有密码情况):
mysql -u 用户名 -p密码

mysql -u 用户名 -p
输入密码再回车

如:mysql -u root -p123456
mysql -u root -p

退出mysql配置模式:
quit;

忘记root密码:
vim /etc/my.cnf.d/server.cnf
在[mysqld]下方添加一行信息:skip-grant-tables
保存退出
Systemctl restart mariadb
mysql -u root
update mysql.user set password=PASSWORD('新密码') where user='root';
quit;
vim /etc/my.cnf.d/server.cnf
注释掉skip-grant-tables
保存退出
Systemctl restart mariadb
生效!

=================================

查看/列出所有数据库:
show databases;

进入数据库:
use 数据库名;

查看/列出所有表
show tables;

查看表的内容:
select 字段名 from student;
select * from 表名;
select user,password from 表名

查看/列出表的所有字段:
desc 表名;

建立新数据库:
create database 数据库名;

创建表: 主键
create table 库名.表名 (字段名 类型,字段名 类型,字段名 类型, primary key(字段名));

注释:
int 整数类型 xxxxxxxxxx 10位 4字节
bit 比特类型 0/1
float 单精度浮点类型
char(n) 字符串 固定长度
varchar(n) 字符串 可变长度
text 字符串 可变长度
date xxxx-xx-xx
time hh:mm:ss

添加一条记录/值:
insert into 库名.表名 [(字段名,字段名.....)] values (值,值.....);
------------------------------------------
更改表的字段及类型:(更改表的结构)
help alter; //查看alter命令的帮助信息

修改表的字段:
alter table 库名.表名 add 字段名 类型 [first/after 字段名];
alter table 库名.表名 drop 字段名;
alter table 库名.表名 modify 字段名 类型;

alter table chengji add banji varchar (2);

修改一条记录/值:
update 库名.表名 set 字段=值 [where 条件];
update cj set sex=NULL where 条件;
update cj set shuxue=60,yuwen=60 where name='lsy';
条件语法格式:字段=值
注意:当值为数字时不需要加单引号,如是字符串必须加单引号。

==============================
删除记录:
delete from 库名.表名 where 条件;

删除表:
drop table 库名.表名;

删除数据库:
drop database 数据库名;

如何备份数据库下的指定表,以及绕过数据库用户验证登录
mysqldump -u root -p 库名 表名 > 路径文件
如何备份一个数据库
mysqldump --databases -u用户名root -p db1 >aa.dmp
如何备份所有库
mysqldump --all-databases -u用户名root -p >bb.dmp
进入mysql后
进入数据库
source chengji.dmp;
可以恢复数据

如何授权远程用户登录数据库管理表格

grant all privileges on *.* to lanadmin@'172.18.11.%' identified by '123123';

status;
查看数据库状态


条件查询记录:

select 字段名列表 from 表名;
select 字段名列表 from 表名 [where 条件表达式];

select * from t1 where age > 10;

注释:
字段名列表的表示方式:

  • 所有字段
    字段名1
    字段名1,字段名2, 字段名N

条件的表示方式:
结构: 字段 运算符 值

表的关联查询

MariaDB [cc]> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | char(3) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| sex | char(2) | YES | | NULL | |
| age | char(3) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+

desc t2
-> ;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | char(3) | YES | | NULL | |
| score | int(11) | YES | | NULL | |
| class | char(4) | YES | | NULL | |
| note | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+

MariaDB [cc]> select *from t1;
+------+--------+------+------+
| id | name | sex | age |
+------+--------+------+------+
| 101 | 张三 | 男 | 25 |
| 102 | 李四 | 女 | 23 |
| 103 | 王五 | 男 | 24 |
+------+--------+------+------+

MariaDB [cc]> select * from t2;
+------+-------+-------+------+
| id | score | class | note |
+------+-------+-------+------+
| 101 | 80 | 2 | sd |
| 102 | 90 | 3 | gd |
| 103 | 85 | 2 | bj |
+------+-------+-------+------+

MariaDB [cc]> select t1.name,t1.sex,t2.score,t2.class from t1,t2 where t1.id=t2.id;
+--------+------+-------+-------+
| name | sex | score | class |
+--------+------+-------+-------+
| 张三 | 男 | 80 | 2 |
| 李四 | 女 | 90 | 3 |
| 王五 | 男 | 85 | 2 |
+--------+------+-------+-------+

===============================================

Mysql作业
1、MYSQL更改root密码和添加一个用户的用户密码(忘记密码的情况下)
2、MYSQL建立学籍表与成绩表,进行关联查询,从两个表取出:姓名,性别,分数,班级。
3、MYSQL建立学籍表与成绩表,进行关联查询,从两个表取出:姓名,性别,班级,成绩+10。
4、MYSQL数据备份,模拟库删除后的数据恢复。
*

转载于:https://blog.51cto.com/jxwpx/2318419

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值