Mysql(一) 数据库实现-DDL-DML-DQL及各种函数用法(一)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: order by的位置一般放在查询语句的最后(除limit语句之外)| asc : | 升序,如果不写默认升序 || — | — |

1、初识数据库

1.1、什么是数据库

数据库:DB(DataBase)

概念:数据仓库,软件,安装在操作系统之上

作用:存储数据,管理数据

1.2、数据库分类

1.2.1、关系型数据库:SQL(Structured Query Language)

MySQL、Oracle、Sql Server、DB2、SQLlite

通过表和表之间,行和列之间的关系进行数据的存储

通过外键关联来建立表与表之间的关系

1.2.2、非关系型数据库:NoSQL(Not Only SQL)

Redis、MongoDB

指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

1.2.3 时序数据库

influxDB , IOTDB

2、数据定义语言(DDL)

2.1、操作数据库

2.1.1、创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名;


CREATE DATABASE [IF NOT EXISTS]  `launch_mysql` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

1

2.1.2、删除数据库

DROP DATABASE [if EXISTS] 数据库名;

2.1.3、使用数据库

如果表名或者字段名是特殊字符,则需要带``

use 数据库名;

2.1.4、查看数据库

SHOW DATABASES;

2.2、数据库的列类型

2.2.1、数值

数据类型 描述 大小

tinyint 十分小的数据 1个字节

smallint 较小的数据 2个字节

mediumint 中等大小的数据 3个字节

int 标准的整数 4个字节

bigint 较大的数据 8个字节

float 浮点数 4个字节

double 浮点数 8个字节

decimal 字符串形式的浮点数,一般用于金融计算

2.2.2、字符串

数据类型 描述 大小

char 字符串固定大小 0~255

varchar 可变字符串 0~65535

tinytext 微型文本 2^8-1

text 文本串 2^16-1

2.2.3、时间日期

数据类型 描述 格式

date 日期格式 YYYY-MM-DD

time 时间格式 HH:mm:ss

datetime 最常用的时间格式 YYYY-MM-DD HH:mm:ss

timestamp 时间戳,1970.1.1到现在的毫秒数

year 年份表示

2.2.4、null

没有值,未知

不要使用NULL值进行计算

2.3、数据库的字段属性

2.3.1、UnSigned

无符号的

声明了该列不能为负数

2.3.2、ZEROFILL

0填充的

不足位数的用0来填充 , 如int(3),5则为005

2.3.3、Auto_InCrement

通常理解为自增,自动在上一条记录的基础上默认+1

通常用来设计唯一的主键,必须是整数类型

可定义起始值和步长

当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表 当前自增字段的值从100开始累加1

SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

2.3.4、NULL 和 NOT NULL

默认为NULL , 即没有插入该列的数值

如果设置为NOT NULL , 则该列必须有值

2.3.5、DEFAULT

默认的

用于设置默认值

例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值

拓展

每一个表,都必须存在以下五个字段:


名称 描述

id 主键(自增)

version 乐观锁

is_elete 伪删除(逻辑删除)(物理删除)

gmt_create 创建时间

gmt_update 修改时间

2.4、创建数据库表

2.4.1、语法

CREATE TABLE IF NOT EXISTS `student`(
  '字段名' 列类型 [属性] [索引] [注释],
    '字段名' 列类型 [属性] [索引] [注释],
    ......
    '字段名' 列类型 [属性] [索引] [注释]
)[表的类型][字符集设置][注释]

2.4.2、示例

CREATE TABLE IF NOT EXISTS `student`(
  `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
  `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
  `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
  `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
  `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

2.4.3、注意

表名和字段尽量使用``括起来

AUTO_INCREMENT 代表自增

所有的语句后面加逗号,最后一个不加

字符串使用单引号括起来

主键的声明一般放在最后,便于查看

不设置字符集编码的话,会使用MySQL默认的字符集编码Latin1,不支持中文,可以在my.ini里修改

2.4.4、常用命令

SHOW CREATE DATABASE 数据库名;-- 查看创建数据库的语句
SHOW CREATE TABLE 表名;-- 查看表的定义语句
DESC 表名;-- 显示表的具体结构

2.5、修改表

2.5.1、修改语法

-- 修改表名
-- ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE student RENAME AS students;
-- 增加表的字段
-- ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE students ADD age INT(11);
-- 修改表的字段(重命名,修改列的属性)
-- ALTER TABLE 表名 MODIFY 字段名 [列属性];
ALTER TABLE students MODIFY age VARCHAR(11);-- 修改列的属性
-- ALTER TABLE 表名 CHANGE 旧名字 新名字 [列属性];
ALTER TABLE students CHANGE age age1 INT(1);-- 字段重命名
-- 删除表的字段
-- ALTER TABLE 表名 DROP 字段名
ALTER TABLE students DROP age1;

2.5.2、删除语法

DROP TABLE [IF EXISTS] 表名

IF EXISTS为可选 , 判断是否存在该数据表

如删除不存在的数据表会抛出错误

2.5.3、示例

-- 删除表(如果存在再删除)
DROP TABLE IF EXISTS teachers;

2.5.4、注意

所有的创建和删除尽量加上判断,以免报错

2.6、清空表TRUNCATE

完全清空一个数据库表,表的结构和索引约束不会变!

2.6.1、语法

TRUNCATE 表名;

2.6.2、示例

TRUNCATE students;

2.7、删除表

2.7.1、语法

DROP TABLE 表名;

2.7.2、示例

DROP TABLE students;

3.数据操作语言(DML)

数据库的意义:数据存储,数据管理

3.1、添加insert

3.1.1、语法

INSERT INTO 表名([字段1,字段2..])VALUES('值1','值2'..),[('值1','值2'..)..];

3.1.2、注意:

字段和字段之间使用英文逗号隔开

字段是可以省略的,但是值必须完整且一一对应

3.1.3、示例

可以同时插入多条数据,VALUES后面的值需要使用逗号隔开

-- 普通用法
INSERT INTO `student`(`name`) VALUES ('zsr');
-- 插入多条数据
INSERT INTO `student`(`name`,`pwd`,`sex`) VALUES ('zsr','200024','男'),('gcc','000421','女');
-- 省略字段
INSERT INTO `student` VALUES (5,'Bareth','123456','男','2000-02-04','武汉','1412@qq.com',1); 


3.2、修改update

3.2.1、语法

UPDATE 表名 SET 字段1=值1,[字段2=值2...]WHERE 条件[];

3.2.2、示例

-- 修改学员名字,指定条件
UPDATE `student` SET `name`='zsr204' WHERE id=1;
-- 不指定条件的情况,会改动所有表
UPDATE `student` SET `name`='zsr204';
-- 修改多个属性
UPDATE `student` SET `name`='zsr',`address`='湖北' WHERE id=1;
-- 通过多个条件定位数据
UPDATE `student` SET `name`='zsr204' WHERE `name`='zsr' AND `pwd`='200024';

3.2.3、where条件

操作符 含义

= 等于

<>或!= 不等于

> 大于

< 小于

<= 小于等于

>= 大于等于

BETWEEN…AND… 闭合区间

AND 和

OR 或

3.3、删除 delete

3.3.1、语法

DELETE FROM 表名 [WHERE 条件]

3.3.2、示例

-- 删除数据(避免这样写,会全部删除)
DELETE FROM `student`;
-- 删除指定数据
DELETE FROM `student` WHERE id=1;


作用:完全删除一个数据库表,表的结构和索引约束不会变!

3.3.3、DELETE和TRUNCATE 和DROP的区别

truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。

truncate只能作用于表;delete,drop可作用于表、视图等。

truncate会清空表中的所有行,但表结构及其约束、索引等保持不变;drop会删除表的结构及其所依赖的约束、索引等。

truncate会重置表的自增值;delete不会。

truncate后会使表和索引所占用的空间会恢复到初始大小;delete操作不会减少表或索引所占用的空间,drop语句将表所占用的空间全释放掉。

4.数据库查询语言(DQL)

4.1、语法

SELECT [ALL | DISTINCT]
{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]}
FROM table_name [as table_alias]
  [left | right | inner join table_name2]  -- 联合查询
  [WHERE ...]  -- 指定结果需满足的条件
  [GROUP BY ...]  -- 指定结果按照哪几个字段来分组
  [HAVING]  -- 过滤分组的记录必须满足的次要条件
  [ORDER BY ...]  -- 指定查询记录按一个或多个条件排序
  [LIMIT {[offset,]row_count | row_countOFFSET offset}]; -- 指定查询的记录从哪条至哪条


查询数据库数据 , 如SELECT语句

简单的单表查询或多表的复杂查询和嵌套查询

是数据库语言中最核心,最重要的语句

使用频率最高的语句

4.2、前提配置

-- 创建学校数据库
CREATE DATABASE IF NOT EXISTS `school`;
-- 用school数据库
USE `school`;
-- 创建年级表grade表
CREATE TABLE `grade`(
  `GradeID` INT(11) NOT NULL AUTO_INCREMENT COMMENT '年级编号',
  `GradeName` VARCHAR(50) NOT NULL COMMENT '年纪名称',
  PRIMARY KEY (`GradeID`)
)ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- 给grade表插入数据
INSERT INTO `grade`(`GradeID`,`GradeName`) 
VALUES (1,'大一'),(2,'大二'),(3,'大三'),(4,'大四');
-- 创建成绩result表
CREATE TABLE `result`(
  `StudentNo` INT(4) NOT NULL COMMENT '学号',
  `SubjectNo` INT(4) NOT NULL COMMENT '考试编号',
  `ExamDate` DATETIME NOT NULL COMMENT '考试日期',
  `StudentResult` INT(4) NOT NULL COMMENT '考试成绩',
  KEY `SubjectNo` (`SubjectNo`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
-- 给result表插入数据
INSERT INTO `result`(`StudentNo`,`SubjectNo`,`ExamDate`,`StudentResult`) 
VALUES (1000,1,'2019-10-21 16:00:00',97),(1001,1,'2019-10-21 16:00:00',96),
(1000,2,'2019-10-21 16:00:00',87),(1001,3,'2019-10-21 16:00:00',98);
-- 创建学生表student
CREATE TABLE `student`( 
  `StudentNo` INT(4) NOT NULL COMMENT '学号',
  `LoginPwd` VARCHAR(20) DEFAULT NULL,
  `StudentName` VARCHAR(20) DEFAULT NULL COMMENT '学生姓名',
  `Sex` TINYINT(1) DEFAULT NULL COMMENT '性别,取值0或1',
  `GradeID` INT(11) DEFAULT NULL COMMENT '年级编号',
  `Phone` VARCHAR(50) NOT NULL COMMENT '联系电话,允许为空,即可选输入',
  `Adress` VARCHAR(255) NOT NULL COMMENT '地址,允许为空,即可选输入',
  `BornDate` DATETIME DEFAULT NULL COMMENT '出生时间',
  `Email` VARCHAR(50) NOT NULL COMMENT '邮箱账号,允许为空,即可选输入',
  `IdentityCard` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
  PRIMARY KEY (`StudentNo`),
  UNIQUE KEY `IdentityCard` (`IdentityCard`),
  KEY `Email` (`Email`)
)ENGINE=MYISAM DEFAULT CHARSET=utf8;
-- 给学生表插入数据
INSERT INTO `student`(`StudentNo`,`LoginPwd`,`StudentName`,`Sex`,`GradeID`,`Phone`,`Adress`,`BornDate`,`Email`,`IdentityCard`) 
VALUES (1000,'1241','dsaf',1,2,'24357','unknow','2000-09-16 00:00:00','1231@qq.com','809809'),
(1001,'1321','dfdj',0,2,'89900','unknow','2000-10-16 00:00:00','5971@qq.com','908697');
-- 创建科目表
CREATE TABLE `subject`(
  `SubjectNo` INT(11) NOT NULL AUTO_INCREMENT COMMENT '课程编号',
  `SubjectName` VARCHAR(50) DEFAULT NULL COMMENT '课程名称',
  `ClassHour` INT(4) DEFAULT NULL COMMENT '学时',
  `GradeID` INT(4) DEFAULT NULL COMMENT '年级编号',
  PRIMARY KEY (`SubjectNo`)
)ENGINE=INNODB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
-- 给科目表subject插入数据
INSERT INTO `subject`(`SubjectNo`,`SubjectName`,`ClassHour`,`GradeID`) 
VALUES(1,'高数','96',2),(2,'大物','112',2),(3,'程序设计',64,3);

4.2、基础查询

4.2.1、语法

SELECT 查询列表 FROM 表名;

查询列表可以是:表中的(一个或多个)字段,常量,变量,表达式,函数

查询结果是一个虚拟的表格

4.2.2、示例

-- 查询全部学生
SELECT * FROM student;
-- 查询指定的字段
SELECT `LoginPwd`,`StudentName` FROM student;
-- 别名 AS(可以给字段起别名,也可以给表起别名)
SELECT `StudentNo` AS 学号,`StudentName` AS 学生姓名 FROM student AS 学生表;
-- 函数 CONCAT(str1,str2,...)
SELECT CONCAT('姓名',`name`) AS '新名字' FROM student;
-- 查询系统版本(函数)
SELECT VERSION();
-- 用来计算(计算表达式)
SELECT 100*53-90 AS 计算结果;
-- 查询自增步长(变量)
SELECT @@auto_increment_increment;
-- 查询有哪写同学参加了考试,重复数据要去重
SELECT DISTINCT `StudentNo` FROM result;

4.3、条件查询

where 条件字句:检索数据中符合条件的值

4.3.1、语法

select 查询列表 from 表名 where 筛选条件;

4.3.2、示例

-- 查询考试成绩在95~100之间的
SELECT `StudentNo`,`StudentResult` FROM result
WHERE `StudentResult`>=95 AND `StudentResult`<=100;
-- &&
SELECT `StudentNo`,`StudentResult` FROM result
WHERE `StudentResult`>=95 && `StudentResult`<=100;
-- BETWEEN AND
SELECT `StudentNo`,`StudentResult` FROM result
WHERE `StudentResult`BETWEEN 95 AND 100;
-- 查询除了1000号以外的学生
SELECT `StudentNo`,`StudentResult` FROM result
WHERE `StudentNo`!=1000;
-- NOT
SELECT `StudentNo`,`StudentResult` FROM result
WHERE NOT `StudentNo`=1000;
-- 查询名字含d的同学
SELECT `StudentNo`,`StudentName` FROM student
WHERE `StudentName` LIKE '%d%';
-- 查询名字倒数第二个为d的同学
SELECT `StudentNo`,`StudentName` FROM student
WHERE `StudentName` LIKE '%d_';
-- 查询1000,1001学员
SELECT `StudentNo`,`StudentName` FROM student
WHERE `StudentNo` IN (1000,1001);

4.4、分组查询

4.4.1、语法

select 分组函数,分组后的字段
from 表
[where 筛选条件]
[group by 分组的字段]
[having 分组后的筛选]
[order by 排序列表]

4.4.2、示例

-- 查询不同科目的平均分、最高分、最低分且平均分大于90
-- 核心:根据不同的课程进行分组
SELECT SubjectName,AVG(StudentResult),MAX(`StudentResult`),MIN(`StudentResult`)
FROM result r
INNER JOIN `subject` s
on r.SubjectNo=s.SubjectNo
GROUP BY r.SubjectNo
HAVING AVG(StudentResult)>90;


4.4.3、where和having的区别

**

使用关键字 筛选的表 位置

分组前筛选 where 原始表 group by的前面

分组后筛选 having 分组后的结果 group by 的后面

使用HAVING 可以对分完组之后的数据进行进一步过滤

HAVING不能单独使用,HAVING不能代替WHERE

HAVING必须和GROUP BY 联合使用

优化策略: WHERE 和 HAVING , 优先选择 WHERE , WHERE实在完成不了,再选择HAVING

4.5、连接查询

4.5.1、左连接

左表的记录会全部显示出来 , 而右表只会显示符合匹配条件的记录 , 匹配不到的显示为NULL


SELECT
  s1.*,
  s2.* 
FROM
  students_copy1 s1
  LEFT JOIN students_copy2 s2 ON s1.id = s2.id;

4.5.2、右连接

右表的记录会全部显示出来 , 而左表只会显示符合匹配条件的记录 , 匹配不到的显示为NULL



SELECT
  s2.*,
  s1.* 
FROM
  students_copy2 s2
  RIGHT JOIN students_copy1 s1 ON s1.id = s2.id;

4.5.3、内连接

显示左表和右表符合匹配条件的记录



SELECT
  s2.*,
  s1.* 
FROM
  students_copy2 s2
  INNER JOIN students_copy1 s1 ON s1.id = s2.id;

4.5.4、竖表连接

显示表1和表2的所有记录

union : 会删除数据的重复集

union all : 会删除数据的重复集


select * from students_copy1 
union all
select * from students_copy2

4.6、排序

4.6.1、语法

select 查询列表
from 表
where 筛选条件
order by 排序列表 asc/desc


order by的位置一般放在查询语句的最后(除limit语句之外)

| asc : | 升序,如果不写默认升序 |

| — | — |

| desc: | 降序 |

4.6.2、示例

SELECT`StudentNo`,`StudentName`,`GradeName`
FROM student s ORDERBY `StudentNo` DESC;


4.7、分页

4.7.1、语法

select 查询列表
from 表
limit offset,pagesize;


offset代表的是起始的条目索引,默认从0开始

size代表的是显示的条目数

offset=(n-1)*pagesize

-- 第一页 limit 0 5

-- 第二页 limit 5,5

-- 第三页 limit 10,5

-- 第n页  limit (n-1)*pagesize,pagesize

-- 第一页 limit 0 5
-- 第二页 limit 5,5
-- 第三页 limit 10,5
-- 第n页  limit (n-1)*pagesize,pagesize
-- pagesize:当前页面大小
-- (n-1)*pagesize:起始值
-- n:当前页面
-- 数据总数/页面大小=总页面数
-- limit n 表示从0到n的页面

4.7.2、示例

SELECT
  * 
FROM
  students 
  LIMIT 0,5

4.8、子查询

本质:在 where子句中嵌套一个子查询语句

4.8.1、示例

-- 查询‘课程设计’的所有考试结果(学号,科目编号,成绩)降序排列
-- 方式一:使用连接查询
SELECT `StudentNo`,r.`SubjectNo`,`StudentResult`
FROM result r
INNER JOIN `subject` s
on r.StudentNo=s.SubjectNo
WHERE SubjectName='课程设计'
ORDER BY StudentResult DESC;
-- 方式二:使用子查询(由里到外)
SELECT StudentNo,SubjectNo,StudentResult
from result
WHERE SubjectNo=(
  SELECT SubjectNo FROM `subject`
  WHERE SubjectName='课程设计'
)

4.9、DISTINCT 去重

SELECT DISTINCT NAME 
FROM
  students_copy1

4.10、BETWEEN AND 范围查询

SELECT DISTINCT NAME 
FROM
  students_copy1 
WHERE
  id BETWEEN 1 
  AND 7

4.11、LIKE模糊查询

select * from students_copy1 WHERE name LIKE '%三%'
select * from students_copy1 WHERE name LIKE '李%'
select * from students_copy1 WHERE name LIKE '%四'
select * from students_copy1 WHERE name LIKE '_三_'
select * from students_copy1 WHERE name LIKE '_三'
select * from students_copy1 WHERE name LIKE '李_'


4.12、IN 范围查询

select * from students_copy1 where id in ('8','6')


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
22 0
|
20小时前
|
存储 关系型数据库 MySQL
MySQL各字符集、排序规则的由来、用法,区别和联系
MySQL支持多种字符集和排序规则,这些在数据库设计和数据处理中起着重要作用。下面是它们的由来、用法、区别和联系: 1. **字符集(Character Set)**: - **由来**:字符集定义了数据库中可以存储的字符集合,以及这些字符在数据库中的存储方式。 - **用法**:在创建数据库或表时,可以指定所需的字符集。常见的字符集包括UTF-8、UTF-16、Latin1等。 - **区别和联系**:不同的字符集支持不同的字符范围和存储方式,选择合适的字符集可以确保数据的正确存储和处理。例如,UTF-8支持全球范围内的大多数字符,而Latin1只支持西欧语言字符集。
|
2天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
24 0
|
2天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
10 0
|
2天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(上)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
10 0
|
2天前
|
SQL 关系型数据库 Serverless
阿里云关系型数据库RDS
阿里云关系型数据库RDS
15 2
|
2天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
24 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
2天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
18 0
|
2天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
23 0
|
SQL Java 数据库连接
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
139 0
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用

推荐镜像

更多