数据库管理与高可用----数据库管理

前言

  • MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一
  • MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

一:数据库基本操作命令

1.1:MySQL常用管理操作

  • 查看数据库结构
    创建及删除库和表
    管理表的记录

  • 查看数据库列表信息的命令

show databases;
  • 查看数据库中的数据表信息
 use 数据库名;
 show tables;
  • 显示数据表的结构(字段)
describe [数据库名.]表名;
 use ;desccribe 表名;

1.2: SQL语句概述

1.2.1: SQL语言

  • Structuered Query Language 的缩写,即结构化查询语言

  • 关系型数据库的标准语言

  • 用于维护管理数据库

    包括数据查询,数据更新,访问控制,对象管理等功能

1.2.2: SQL分类

  • DDL(Data Defifinition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter、rename、truncate。
  • DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括insert、delete、update等。
  • DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。
  • DQL(Data Query Language)语句:数据查询语句,用于从一个或多个表中检索信息。主要的语句关键字包括 select

1.3:DDL 数据定义语言

1.3.1:DDL语句作用

  • DDL语句用于创建数据库对象,如库,表,索引等

1.3.2:DDL语句创建库,表的命令

  • 创建数据库:create database 数据库名
  • 创建数据表:create table 表名(字段定义…)
  • create table 表名 (字段01名称 字段01类型 字段01约束,字段02名称 字段02类型 字段02约束,…)存储引擎,字符集
mysql> create database school;
mysql> use school;
mysql> create table ky03 (id int(4) not null primary key auto_increment,name varchar(10) not null,age int(5) not null );

注意: int (5) 整型 00000-99999

​ double 浮点型 8字节

​ decimal(5,2) 有效数字是5位,小数点后面保留两位 100.00 099.50

​ float 单精度浮点 4字节

​ char (10) 固定长度字符串

​ varchar (50) 可变长度字符串

​ 字段01的约束:

​ 非空约束: 内容不允许为空

​ 主键约束: 非空且唯一 标识

​ 默认值: 假如没有填数据,默认预先设定的值填写

​ 自增特性: id 1234

​ 存储引擎:

​ myisam innodb

​ 字符集:

​ UTF8

1.3.3:DDL语句删除表库命令

  • 删除指定的数据表:drop table [数据库名.]表名

  • 删除指定的数据库:drop database 数据库名

    mysql> drop table school.ky03;	'//删除表'  //绝对路径
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> drop database school;	'//删除库'   //相对路径
    Query OK, 0 rows affected (0.00 sec)
    

1.3.4: 修改表的属性

alter table:修改表的属性
alter table t2 add id int first; 增加一列成为第一列 
alter table t2 add id2 int after id; 在id后面增加一列叫id2 
alter table t2 drop id2; 删除id2这个列 
alter table t2 change id ID bigint; 修改列名和数据类型 
alter table t2 modify ID int; 修改列的数据类型 
show engines; 查看数据库有哪些存储引擎 
alter table t20 engine MyISAM; 修改表的存储引擎 
show create table t20; 查看修改存储引擎是否成功 
alter table t20 default charset=utf8; 修改表的语言编码

1.4:DML操作命令

1.4.1:DML语句的作用是?

  • DML语句用于对表中的数据进行管理
  • 包括以下操作
    insert:插入新数据
    update:更新原有数据
    delete:删除不需要的数据

1.4.2:向数据表中插入新的数据记录

  • insert into 表名(字段1,字段2,…)values(字段1的值,字段2的值,…)
mysql> create table kgc (id int(4) not null primary key auto_increment,name varchar(10) not null,age int(4) not null );

1.4.3:修改,更新数据表中的数据记录

  • update 表名 set 字段名 1=值1[,字段名2=值2] where条件表达式
mysql> select * from kgc;
+----+----------+-----+
| id | name     | age |
+----+----------+-----+
|  1 | zhangsan |  18 |
|  2 | lisi     |  28 |
+----+----------+-----+
2 rows in set (0.00 sec)
mysql> update kgc set name='wangwu' where id=2;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from kgc;
+----+----------+-----+
| id | name     | age |
+----+----------+-----+
|  1 | zhangsan |  18 |
|  2 | wangwu   |  28 |
+----+----------+-----+
2 rows in set (0.01 sec)

1.4.4:在数据表中删除指定的数据记录语句

  • delete from 表名 where条件表达式
mysql> delete from kgc where id=2;
Query OK, 1 row affected (0.00 sec)

mysql> select * from kgc;
+----+----------+-----+
| id | name     | age |
+----+----------+-----+
|  1 | zhangsan |  18 |
+----+----------+-----+
1 row in set (0.00 sec)
  • 不带where条件的语句表示删除表中所有记录(谨慎操作)
mysql> delete from kgc;
Query OK, 1 row affected (0.00 sec)

mysql> select * from kgc;
Empty set (0.00 sec)

1.4.5:清空表

drop .;					//删除表,删除记录同时删除表结构
delete from tablename;      //删除表的记录
truncate table tmp;			//删除所有记录,保留表的结构

1.5:DQL操作命令

1.5.1:DQL语句的作用

  • DQL是数据查询语句,只有一条:SELECT
  • 用于从数据表中查找符合条件的数据记录

1.5.2:不指定条件查询语句

  • SELECT字段名1,字段名2…FROM表名
mysql> select id,name from kgc;
+----+--------+
| id | name   |
+----+--------+
|  1 | wangwu |
|  2 | lisi   |
+----+--------+
2 rows in set (0.00 sec)

1.5.3:指定条件查询的语句

  • SELECT字段名1,字段名2…FROM表名 WHERE条件表达式
mysql> select id,name from kgc where id=1;
+----+--------+
| id | name   |
+----+--------+
|  1 | wangwu |
+----+--------+
1 row in set (0.00 sec)

1.6:DCL操作命令

1.6.1:DCL语句的作用是?

  • 设置或查看用户的权限,或者创建用户

1.6.2:设置用户权限的命令

  • 若用户已存在,则更改用户密码
  • 若用户不存在,则新建用户
  • GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [IDENTIFIED BY ‘密码′ ]
mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;
'//all privileges:所有权限,%:所有终端'
Query OK, 0 rows affected, 1 warning (0.00 sec)

1.6.3:查看用户权限的命令

  • SHOW GRANTS FOR 用户名@来源地址
mysql> show grants for 'root'@'%';
+-------------------------------------------------------------+
| Grants for root@%                                           |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)

1.6.4:撤销用户权限的命令

  • REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址
mysql> revoke all privileges on *.* from 'root'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for 'root'@'%';
+----------------------------------------------------+
| Grants for root@%                                  |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'%' WITH GRANT OPTION |
+----------------------------------------------------+
1 row in set (0.00 sec)

1.7: 临时表建立

mysql> create temporary table temp_kgc (id int(4) not null auto_increment,name varchar(10) not null,hobby varchar(10) not null, primary key(id))engine=innodb default charset=utf8;
mysql> insert into temp_kgc (name,hobby) values ('tom','cat');
Query OK, 1 row affected (0.00 sec)

mysql> show tables;            //看不到临时表,其保存在硬盘内
+------------------+
| Tables_in_school |
+------------------+
| kgc              |
| ky03             |
+------------------+
mysql> select * from temp_kgc;   //能够查看临时表的内容
+----+------+-------+
| id | name | hobby |
+----+------+-------+
|  1 | tom  | cat   |
+----+------+-------+
mysql> exit
Bye
[root@mysql ~]# mysql -uroot -pabc123
mysql> use school;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from temp_kgc;   //重新连接数据库,临时表丢失
ERROR 1146 (42S02): Table 'school.temp_kgc' doesn't exist
mysql> 

1.8: 克隆表

  • like方法

    从kgc完整复制表结构生成test表,再导入数据

    mysql> create table test like kgc;  //复制表结构
    mysql> insert into test select * from kgc;	//插入数据
    mysql> select * from test;
    +----+--------+-----+
    | id | name   | age |
    +----+--------+-----+
    |  1 | wangwu |  18 |
    |  2 | lisi   |  28 |
    +----+--------+-----+
    
    
  • show create table 方法

    先查看kgc表完整结构,根据次结构创建名字不同结构相同的表test ,再插入数据

    mysql> show create table kgc\G         '\G代表竖行显示'
    *************************** 1. row ***************************
           Table: kgc
    Create Table: CREATE TABLE "kgc" (
      "id" int(4) NOT NULL AUTO_INCREMENT,
      "name" varchar(10) NOT NULL,
      "age" int(5) NOT NULL,
      PRIMARY KEY ("id")
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
    1 row in set (0.00 sec)
    
    mysql> create table test02 (id int(4) not null primary key auto_increment,name varchar(10) not null,age int(5) not null );
    
    mysql> insert into test02 (id,name,age) values (2,'lisi','28'),('1','wangwu','18');
    
    mysql> select * from test02;
    +----+--------+-----+
    | id | name   | age |
    +----+--------+-----+
    |  1 | wangwu |  18 |
    |  2 | lisi   |  28 |
    +----+--------+-----+
    

1.9: 创建用户

create user user@host identified by 'password'; @'%' @ip @'network' 

//说明:用户的信息保存在mysql数据库中的user表中,验证用户是否创建成功如下: 
select user,host,password from mysql.user;

1.10: 删除用户

mysql> drop user user01@'localhost'; 删除用户
mysql> select user from mysql.user where user='user01'; 验证用户是否删除成功
mysql> drop user user; 默认删除该用户从任意主机登陆
mysql> rename user u01@'instructor.example.com' to u001@'localhost'; 重命名用户名 
mysql> show grants; 查看用户权限 
mysql> show grants for user02@'%'; 查看指定用户的权限 
mysql> drop user ''@'rhel6.example.com'; 删除一个匿名用户 
mysql> delete from mysql.user where user=''; 删除mysql中的匿名用户 
mysql> delete from mysql.user where user='root' and host='::1'; 
mysql> flush privileges;

二:Windows安装字符界面MySQL方法

2.1:准备软件包

  • 准备软件包,可官网下载,需要资源,也可私我

2.2:安装

  • 双击打开后,一直下一步即可(点击next,excute,finish等)

mark

mark

mark

mark

mark

mark

mark

  • 全部一直下一步就行了

mark

mark

mark

mark

mark

mark

mark

mark

mark

mark

mark

mark

mark

2.3:设置环境变量

  • 复制环境路径

    此电脑–C盘–Program Files–MySQL–MySQL Server 5.7–bin–复制路径

mark

mark

mark
mark

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值