Java --- Mysql基础

本文详细介绍了如何在MySQL中进行脚本导入和导出,包括SQL脚本操作、存储引擎(如InnoDB和MylSAM)的应用场景、区别以及配置。此外,涵盖了数据操作(DML)如添加、更新和删除的数据处理方法,以及DQL查询的各个方面,包括子查询的使用实例。

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

导入、导出脚本

导入

(1)txt文本

步骤:新建查询 --> ctrl+A --> ctrl+C --> ctrl+V

 sql脚本

(1)导入

步骤:右击表 选中 --> 运行SDL文件

 

(2)导出

表列表 --> 全选 --> 右击 选中 --> 转储SDL文件【不同版本Navicat或者多工具之间转储的SQL脚本存在兼容性的问题】

 

 

 

 存储引擎

MySQL的存储引擎种类

MylSAM,InnoDB(mysql默认的存储引擎)

Mysql中的存储引擎(InnoDB,MylSAM)的区别

 InnoDB,MylSAM应用场景的区别

 MySQL的存储引擎命令与配置

(1)查询引擎命令

可以写一个%或两个%%,一个%就是查询%之前的

 (2)mysql中的默认引擎的配置

Mysql的安装目录中的my.ini配置文件

存储引擎实战-指定表的存储引擎

存储引擎的创建指令

 DML

数据新增-单条数据

 

 

 

 数据新增-多条数据

(1)第一种方式

INSERT INTO t_person(name,pwd,weight,height) VALUES('xx1','12345','123','78');

INSERT INTO t_person(name,pwd,weight,height) VALUES('xx2','12345','123','78');

INSERT INTO t_person(name,pwd,weight,height) VALUES('xx3','12345','123','78');

INSERT INTO t_person(name,pwd,weight,height) VALUES('xx4','12345','123','78');

(2)第二种方式

INSERT INTO t_person(name,pwd,weight,height) VALUES('xx55','12345','123','78'),

('xx66','12345','123','78'),('xx77','12345','123','78');

 

 数据更新

(1)条件是id为100的那条记录,修改它的weight的字段的属性值

 2)条件是id为103的那条记录,修改它的weight,height,name字段的值【顺序随意】

 3)条件为id104,105,106的记录列表,修改对应的weight,height 

4)条件为所有的记录,修改所有记录对应的weight字段的值

 数据删除

(1)删除某个id【一般都会写主键的属性,精准定位】

 2删除大于某个id的所有id

 3删除小于等于某个id的所有id

 4删除某个id和某个id之间的id,包含这两个id

 5删除不在某个(id,id)之中的id

 6删除在某个(id,id)之中的id

 DQL

什么是查询

(1)它是有结果集的【对比增删改 增删改是无结果集的】

(2)sql中的查询结果 是一种虚拟存在的表【不是真实存在数据库中的】

(3)sql中的查询可以通过自定义设置的维度展示【查询一个字段或是多个字段可以人为设置】

查询机制简介

 场景:select * from user where id = 010;

(1)当id不是主键的时候,而where子句id作为条件的时候,数据库的查询机制是全表扫描

(2)当id是主键的时候,并且where子句id作为条件的时候,数据库的查询机制是索引机制

查询语法

select<列|函数...>

from 表名

where 条件

order by 条件|字段(两种形式展示:升序asc ---【默认升序】,降序desc)  ---> 分组

查询行与列

-- 查询所有的列和所有的行

SELECT * FROM student;

-- 查询所有的列和所有的行

SELECT a.studentNo,a.loginPwd,a.studentName,a.sex,a.gradeId,a.address,a.bornDate,a.email,a.identityCard FROM student AS a;

-- 查询部分行对应的所有列

SELECT * FROM student WHERE studentNo IN (10001,20000);

-- 查询部分行的部分列

SELECT studentNo,sex FROM student WHERE studentNo IN (10001,20000);

 查询-列别名

核心要点:给表名或是列名设置别名【as可以省略】

 常用函数——聚合函数

 

-- 求平均值

SELECT AVG(score) FROM t_scores;

-- 求行数(第一种一般不会用,第三种用的最多)

SELECT COUNT(score) FROM t_scores;

SELECT count(*) FROM t_scores;

SELECT COUNT(1) FROM t_scores;

-- 求某张表中某个字段的最大值/最小值

SELECT MAX(score) FROM t_scores;

SELECT MIN(score) FROM t_scores;

-- 求和

SELECT SUM(score) FROM t_scores;

 常用函数——字符串函数

-- 字符串连接

SELECT CONCAT('my','father');

-- 字符串替换

SELECT INSERT('这是SQL SERVER数据库',3,10,'Myaql');

-- 字符串大写转小写

SELECT LOWER('MYsql');

-- 字符串小写转大写

SELECT UPPER('mysql');

-- 字符串截取

SELECT SUBSTRING('javamysqloracle',3,5);

 常用函数——时间日期函数

-- 获取当前日期

SELECT CURDATE();

-- 获取当前时间

SELECT CURTIME();

-- 获取当前日期和时间(等价于1和2)

SELECT NOW();

-- 获取当前日期处于一年中的第几周

SELECT WEEK(NOW());

-- 获取当前日期的年份

SELECT YEAR(NOW());

-- 获取当前时间的时

SELECT HOUR(NOW());

-- 获取当前时间的分

SELECT MINUTE(NOW());

 常用函数——数学函数

-- 向上取整(整数特例)

SELECT CEIL(2.8);

-- 向下取整

SELECT FLOOR(2.9);

-- 随机

SELECT RAND();

 ORDER BY子句

-- 升序

SELECT * FROM t_scores ORDER BY score;

SELECT * FROM t_scores ORDER BY score ASC;

-- 降序

SELECT * FROM t_scores ORDER BY score DESC;

 LIMIT语法结构

SELECT * FROM student;

-- 获取表中前2条记录

SELECT * FROM student LIMIT 2;

SELECT * FROM student LIMIT 4;

-- 获取表中从0开始2行的记录

SELECT * FROM student LIMIT 0,2;

SELECT * FROM student LIMIT 1,3;

 子查询

子查询定义

定义:嵌套在增删改查语句中或者嵌套在其他子查询中是一种语句结构

子查询语法

 子查询注意点

(1)将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个

(2)子查询的执行顺序是由内向外执行

子查询案例-问题

-- 查询 student表

SELECT * FROM student;

-- 查询李斯文出生日期时间

SELECT bornDate FROM student WHERE studentName = '李斯文';

-- 1993-07-23 00:00:00

-- 筛选出生日期比李斯文大的学生

SELECT * FROM student WHERE bornDate > '1993-07-23 00:00:00';

-- 使用子查询实现筛选

SELECT * FROM student WHERE bornDate > (SELECT bornDate FROM student WHERE studentName = '李斯文');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值