目录

引言

一、MySQL基本概念

1.1 库和表

1.2  常用的数据类型

1.3  MySQL数据库日志

二、查看数据库

2.1 查看当前服务器中的数据库

2.1.1  进入数据库

2.1.2  查看数据库信息 

2.2 查看数据库中包含的表

2.3  显示数据表的结构(字段)

2.4  查看mysql版本

 三、SQL语句

3.1  DDL 

3.1.1  创建新的数据库

 3.1.2 创建新的表

3.1.3  删除指定的数据表

3.1.4  删除指定的数据库

3.2   DML 管理表中的数据记录

3.2.1  向数据表中插入新的数据记录

3.2.2  修改、更新数据表中的数据记录 

3.2.3  在数据表中删除指定的数据记录 

3.3   DQL  查询数据记录

3.4  DCL 修改表名和表结构

3.4.1  修改表名

3.4.2  扩展表结构(增加字段)

编辑3.4.3   修改字段(列)名,添加唯一键

3.4.4 删除字段

3.5  使用 if 判断 创建表并测试自增和填充

 四、总结


引言

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

本章将介绍MySQL数据库的基本操作管理的命令,了解MySQL数据库是怎么运行的。

一、MySQL基本概念

1.1 库和表

数据库–---->数据表–----->行(记录):用来描述一个对象的信息

数据库 ----> 数据表 ----->  列(字段):用来描述对象的一个属性

1.2  常用的数据类型

类型 

                                       说明

int  

整型(定义整数类型数据)

float

单精度浮点,4字节32位,准确到小数点后六位

double 

双精度浮点,8字节64位

char

固定长度的字符类型,定义字符类数据

varchar

可变长度的字符类型

text

文本

image 

图片

decimal (5,2)

5个有效长度数字,小数点后面有2位,指定长度数组

 
 
    
   
    
    
    
   
    
 

(1)char 为固定长度值,不足的以空格替代。

(2)varchar 为可变值,最大为设置的长度值,当不足时,即为当前长度大小。

(3)例如:定义char(4)和varchar(4) ,当输入ab时,char的长度就为4,虽然不足,但是不足的部分使用了空格进行补充;而varchar的长度就为3,因为ab两个字节再加一个结尾字符也算一个字节。

(4)char :占用空间,查询效率非常高(最大的字符为:255); varchar:不占用空间,查询数据非常差,不常用(字符可设为:65535)

注: 主键是唯一的,但主键可以由多个字段组成

1.3  MySQL数据库日志

数据库日志

数据库日志文件用于备份,恢复,故障定位、分析是最核心的部分。

MySQL  与  Oracle 日志有所区别:

mysql  写一条数据,同步到日志中一条

PS: insert  into ky12 (id,name,score)  values (1,'lisi',20);

oracle :  重做日志组

一个组中至少3个日志成员,轮流存储日志,还会有另一个组与同步、备份

阿里云oss  对象存储,一式三份备份(使用重做日志组思想)

对象存储:存储大多是一些静态文件(图片、音频、视频);不能直接在对象存储中修改数据

飞天平台、盘古系统、钟馗:安全

女娲:选举、调度,盘古一式三份

MySQL  存储引擎

mysam 和  innodb

  • myisam : 快速读取,不支持事务
  • innodb : 更注重写,支持事务

二、查看数据库

2.1 查看当前服务器中的数据库

2.1.1  进入数据库

mysql -u root -p密码
-u 连接数据库的用户名
-p 后面跟的是连接数据库的密码(不能有空格)

MYSQL管理工具使用教程 mysql 管理_database

2.1.2  查看数据库信息 

#大小写不区分,分号“;”表示结束
SHOW DATABASES;

MYSQL管理工具使用教程 mysql 管理_database_02

2.2 查看数据库中包含的表

USE 数据库名;  ##切换到数据库中
SHOW TABLES;  
 
#示例1
use mysql
show tables;
或者可以不进入数据库中,但必须加上库名
show  tables in MySQL

MYSQL管理工具使用教程 mysql 管理_mysql_03

MYSQL管理工具使用教程 mysql 管理_mysql_04

2.3  显示数据表的结构(字段)

USE 数据库名;
describe user;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;

注:ASC|DESC 
ASC 是按照升序进行排序的,默认的排序方式,即ASC可以省略。select 语句中如果没有指定具体的排序方式,默认按ASC方式进行排序。

DESC  是按降序方式进行排列的。当然order by 前面也可以使用where 子句对查询结果进行过滤。

表中字段的含义

MYSQL管理工具使用教程 mysql 管理_MYSQL管理工具使用教程_05

field:字段名称
type:数据类型
null:是否允许为空
key:主键
default:默认值
extra:扩展属性,例如:标志符列(标识了种子,增量/步长)1  2
id: 1 3 5 7

示例1:使用相对路径查看

方法一:

MYSQL管理工具使用教程 mysql 管理_MYSQL管理工具使用教程_06

方法二:加  \G

MYSQL管理工具使用教程 mysql 管理_mysql_07

 示例2:使用绝对路径查看

MYSQL管理工具使用教程 mysql 管理_数据库_08

2.4  查看mysql版本

#在mysql内查看mysql版本
select version();
 
#在linux系统中查看mysql版本
mysql -V

MYSQL管理工具使用教程 mysql 管理_mysql_09

 三、SQL语句

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

SQL语句分类:

    语句  

                              代表的意思

DDL

 数据定义语言,用于创建数据库对象,如库、表、索引等(create )

DML 

数据操纵语言,用于对表中的数据进行管理(insert drop delete update )

DQL

数据查询语言,用于从数据表中查找符合条件的数据记录(select )

DCL

数据控制语言,用于设置或者更改数据库用户或角色权限(grant )

注:数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如(COMMIT(提交)、ROLLBACK(回滚)、GRANT(授予)、REVOKE(撤回))

3.1  DDL 

数据定义语言,用于创建数据库对象,如库、表、索引等(create )

create:创建

drop:删除

alter:修改

3.1.1  创建新的数据库

CREATE DATABASE 数据库名; 
 
 #示例:创建一个名为hobby的数据库
 creat database hobby;

MYSQL管理工具使用教程 mysql 管理_database_10

 3.1.2 创建新的表

#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
例:
CREATE DATABASE hobby; .
USE hobby;
CREATE TABLE kfc (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48)   DEFAULT '',PRIMARY KEY (id)) ;

DESC kfc;
mysql> create table kfc(					//创建名为kfc的表
    -> id int(4) not null,					//设置字段id,长度为4且不能为空
    -> name char(10) not null,				//设置字段name,长度为10且不能为空
    -> address varchar(50) default '中国',	//设置字段address,设为可变长长度50,默认地址为“中国”
    -> primary key (id));					//设置id为主键

MYSQL管理工具使用教程 mysql 管理_数据库_11

3.1.3  删除指定的数据表

#如不用USE进入库中,则需加上数据库名
DROP TABLE [数据库名.]表名;
#法一:使用绝对路径,需要进入表所在数据库
use hobby;
drop table info;
desc info;

#法二:使用相对路径,不需要进入表所在数据库
drop table student.info;
show tables in student;

MYSQL管理工具使用教程 mysql 管理_字段_12

3.1.4  删除指定的数据库

DROP DATABASE 数据库名;

MYSQL管理工具使用教程 mysql 管理_MYSQL管理工具使用教程_13

3.2   DML 管理表中的数据记录

数据操纵语言,用于对表中的数据进行管理,用来插入、删除、修改数据库中的数据

insert : 插入

update:修改

delete: 删除

3.2.1  向数据表中插入新的数据记录

格式:

#向数据表中插入新的数据记录
insert into 表名(字段1,字段2,字段3) values(字段1的值,字段2的值,字段3的值);
示例1:
INSERT INTO kfc (id,name,score,passwd) values (1,'zhangsan',70.5,PASSWORD('123456'));
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示;若不使用PASSWORD(),查询时以明文显示。

INSERT INTO kfc VALUES(2,'lisi',90.5,654321);

SELECT * FROM kfc;     #查询表的全部数据记录

MYSQL管理工具使用教程 mysql 管理_数据库_14

若不使用PASSWORD(),查询时以明文显示。

示例2:直接使用表明加入字段
insert into info values(2,'lisi',90,123456);

MYSQL管理工具使用教程 mysql 管理_mysql_15

示例3:可以指定字段添加
insert into kfc (id,name) values(3,'wangwu');

MYSQL管理工具使用教程 mysql 管理_字段_16

3.2.2  修改、更新数据表中的数据记录 

#格式
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
例:
UPDATE kfc SET passwd=PASSWORD('123456') WHERE name='lisi';
UPDATE kfc SET name='wangxiaoer',passwd='' WHERE id=5;

MYSQL管理工具使用教程 mysql 管理_字段_17

不带where条件的语句表示更改表中所有记录(谨慎操作)

3.2.3  在数据表中删除指定的数据记录 

#格式:
DELETE FROM 表名 [WHERE 条件表达式];
 
#示例:删除表中id为4的数据
delete from kfc where id=4

MYSQL管理工具使用教程 mysql 管理_字段_18

3.3   DQL  查询数据记录

#格式
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
#示例1:查看所有数据
select * from kfc;
 
#示例2:查询指定数据
 select name,score from kfc where id=1;
 
#示例3:以列表方式竖向显示
select * from kfc \G;
 
#示例4:只显示头2行
select * from kfc limit 2;
 
#示例5:显示第2行后的前3行
select * from kfc limit 2,3;

示例1:查看所有数据

MYSQL管理工具使用教程 mysql 管理_字段_19

示例2:查询指定数据

MYSQL管理工具使用教程 mysql 管理_数据库_20

示例3:以列表方式竖向显示

MYSQL管理工具使用教程 mysql 管理_database_21

 注:在\G后面加“;”号,会报错,显示没有指定查询

MYSQL管理工具使用教程 mysql 管理_字段_22

示例4:只显示头2行

MYSQL管理工具使用教程 mysql 管理_数据库_23

示例5:显示第2行后的前3行 

MYSQL管理工具使用教程 mysql 管理_mysql_24

3.4  DCL 修改表名和表结构

3.4.1  修改表名

ALTER TABLE 旧表名 RENAME 新表名;
  
例:
ALTER TABLE KFC RENAME AAA;
ALTER TABLE AAA RENAME KFC;

MYSQL管理工具使用教程 mysql 管理_字段_25

3.4.2  扩展表结构(增加字段)

ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
#default '地址不详':表示此字段设置默认值地址不详;可与NOT NULL配合使用
示例
alter table KFC add address varchar(50) NOT NULL default'地址不详';

3.4.3   修改字段(列)名,添加唯一键

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];

change:改变

注:unique key :唯一键(特性:唯一,但可以为空,空值只容许出现一次);

primary key:唯一且非空(主键一般选择能代替唯一性的字段不允许取空值(NULL),一个表只能有一个主键。)

例:
ALTER TABLE KFC CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。

MYSQL管理工具使用教程 mysql 管理_字段_26

3.4.4 删除字段

格式:

ALTER TABLE 表名 DROP 字段名;
例:
ALTER TABLE KFC drop passwd;

MYSQL管理工具使用教程 mysql 管理_MYSQL管理工具使用教程_27

3.5  使用 if 判断 创建表并测试自增和填充

use KY19;
 
create table if not exists info.bak (
id int(4) zerofill primary key auto_increment,###指定主键的第二种方式
name varchar(20) not null,
sid int(18) not null unique key,
ge int(3) not null,
hobby varchar(100));

分析:

  • if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
  • int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001
  • auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
  • unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
  • not null:表示此字段不允许为NULL

MYSQL管理工具使用教程 mysql 管理_数据库_28

进行测试:插入记录是可以不用加  id  

MYSQL管理工具使用教程 mysql 管理_MYSQL管理工具使用教程_29

 四、总结

1、展示数据库;show databases;
2、创建数据库:create database 数据库名
3、进入该数据库:use 数据库
4、创建表结构:create table 表名(字段1 数据类型 NOT NULL,字段2,数据类型 NOT NULL…primary key(某唯一字段));
5、展示该数据库中的表:show tables;
6、插入表内容:insert into 表名 values (结构对应值);
7、按照条件查询内容:select * from 表名 where 字段 = 值;
8、更新数据:update 表名 set 字段=新值 where 字段=值;
9、删除表信息:delete from 表名 where 字段 = 值;
10、只查询当前表中的前2个:select * from 表名 limit=2;
11、只查询当前表中的4-5的用户:select * from 表名 limit 3,2;
12、更改表名:alter table 表名 rename 新表名
13、扩展表结构:alter table 表名 add 新字段 数据类型 default ‘添加默认’;
14、删除指定的表:drop table 表名;
15、克隆表:create table 新表名 like 旧表名,备份内容:insert into 新表名 select * from 旧表名;
16、 清空表、删除表内所有数据:delete from 表名;truncate table 表名;17、授权:grant all privileges on 数据库.数据表 to ‘用户名’@'主机名’identified by ‘密码’;
18、删除授权:revoke all privileges on 数据库.数据表 from 用户@主机;