2.JavaWebMySql基础

导语:

一、数据库基本概念

1.什么是数据库

2.关于MySql数据库

二、MySQL的安装与卸载

安装步骤:

卸载步骤:

三、MySQL服务操作

1.服务启动和关闭:

2.登录和退出MySQL:

3.服务自启动:

4.命令行登录:

5.服务状态查询:

6.配置文件修改:

7.服务日志文件:

四、SQL语言基础

1.SQL语言特点:

2.数据类型:

3.函数:

4.子查询:

5.事务处理:

6.索引:

7.存储过程和触发器:

8.视图:

五、DDL操作数据库

1.创建数据库:

2.查询数据库:

3.修改数据库:

4.删除数据库:

5.使用数据库:

六、DDL操作表

1.添加字段:

2.修改字段:

3.重命名字段:

4.删除字段:

5.设置字段默认值:

6.字段约束:

7.外键约束:

8.修改表字符集:

9.添加注释:

10.查看表结构:

七、DML操作数据

1.插入单条数据:

2.插入多条数据:

3.删除满足条件的数据:

4.删除所有数据:

5.更新满足条件的数据:

6.更新所有数据:

7.使用子查询进行更新:

8.使用LIMIT限制更新数据量:

9.数据插入时的注意事项:

10.数据删除时的注意事项:

八、DQL查询数据

1.查询所有字段:

2.查询指定字段:

3.条件查询:

4.模糊查询:

5.排序查询:

6.分组查询:

7.连接查询:

8.子查询:

9.聚合函数:

10.数据去重:

11.字段别名:

结语:


导语:

    数据库技术是现代信息系统的核心组成部分,它为我们的日常工作和生活提供了极大的便利。在众多数据库软件中,MySQL因其开源、易用、稳定的特点而广受欢迎。今天,我们将以通俗易懂的方式为您科普MySQL数据库的相关知识,带您轻松掌握其安装、配置、以及基本操作。

一、数据库基本概念

    数据库的定义和作用:数据库是一种用于存储和管理数据的仓库,它能够组织、存储和管理各种类型的数据,为用户提供高效的数据检索和更新服务。

    数据库技术在各类信息系统中发挥着至关重要的作用,是进行科学研究和决策管理的重要技术手段。

1.什么是数据库

(1)存储数据的仓库

(2)本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。

(3)所有的关系型数据库都可以使用通用的 SQL 语句进行管理 DBMS DataBase Management System

2.关于MySql数据库

(1)MySQL是一种开源的关系型数据库管理系统,由瑞典MySQL AB公司开发,现已被Oracle公司收购。

(2)MySQL支持多线程、多用户,能够跨平台运行,广泛应用于Web应用中,具有体积小、速度快、成本低、开放源代码等优点。

(3)MySQL支持标准SQL语言,拥有良好的扩展性和可移植性,广泛应用于各种Web应用中,包括京东、淘宝等知名网站都采用了MySQL数据库。

(4)MySQL数据库拥有多种存储引擎,如InnoDB、MyISAM等,可以满足不同应用场景的需求。

(5)MySQL数据库支持主从复制、读写分离等特性,能够实现高可用和负载均衡,具有出色的可扩展性和可靠性。

(6)MySQL社区活跃,文档资料丰富,是学习数据库管理系统的首选之一。

二、MySQL的安装与卸载

安装步骤:

        下载MySQL安装包,启动安装向导,选择安装类型,配置MySQL服务,设置root用户密码,安装MySQL客户端工具,选择字符集和校对规则,确定安装目录,开始安装。

卸载步骤:

        停止MySQL服务,打开控制面板,选择程序和功能,找到MySQL并选择卸载,删除MySQL安装目录,删除ProgramData目录下的MySQL文件夹。

图片

(具体操作步骤篇幅过长,有需要的读者们可以私信我领取安装包以及安装步骤)

或者可以等一等,有空发出来。

图片

图片

三、MySQL服务操作

MySQL服务操作包括以下关键点:

1.服务启动和关闭:

    (1)通过MySQL安装目录下的bin目录启动服务,或使用命令行输入net start mysql启动服务。

图片

    (2)关闭服务可通过命令行输入net stop mysql实现。

2.登录和退出MySQL:

    (1)在cmd窗口中,使用命令mysql -uroot -p并输入root用户密码进行登录。

图片

    (2)退出MySQL时,在MySQL命令行窗口输入exit或quit命令。

3.服务自启动:

    可以将MySQL服务设置为开机自启动,通过服务管理器(services.msc)找到MySQL服务,右键选择属性,在启动类型中选择自动。

4.命令行登录:

    可以通过命令行参数连接远程MySQL服务器,例如:mysql -h ip -P port -u user -p。

5.服务状态查询:

    使用命令mysqladmin ping可以检查MySQL服务是否正在运行。

6.配置文件修改:

    可以通过修改MySQL的配置文件my.ini来配置服务参数,例如端口号、字符集等。

7.服务日志文件:

    MySQL的错误日志文件通常位于MySQL的data目录下,可以通过查看错误日志来诊断服务问题。

四、SQL语言基础

SQL语言的分类:

        包括DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和DCL(数据控制语言)。

SQL语句的通用语法:

        语句可以单行或多行书写,以分号结束,支持使用空格和缩进来增强可读性。MySQL的SQL语句不区分大小写,但建议使用大写关键字。支持使用–或#注释单行,以及/* */注释多行。

具体可以体现为:

1.SQL语言特点

        SQL是一种声明式语言,用户只需要指定需要做什么,而不需要指定如何做。这种设计使SQL具有易学易用、灵活高效的特点。

2.数据类型

        SQL支持多种数据类型,包括数值型(int, float等)、字符型(char, varchar等)、日期时间型(date, time, datetime等)以及二进制类型(blob等)。在创建表时应根据实际需要选择合适的数据类型。

3.函数

        SQL提供了丰富的内置函数,包括数学函数(如abs, sqrt)、字符串函数(如concat, substring)、日期时间函数(如curdate, datediff)、转换函数(如cast, convert)等。熟练使用这些函数可以大大简化查询操作。

4.子查询

        子查询允许将一个查询的结果作为另一个查询的条件或数据源,极大地增强了SQL的查询能力。例如,可以在WHERE子句中使用子查询来过滤结果集。

5.事务处理

        SQL支持事务处理,即可以保证一系列操作要么全部成功,要么全部失败,从而保证数据库的完整性和一致性。事务处理的关键语句包括BEGIN TRANSACTION、COMMIT和ROLLBACK。

6.索引

        索引可以大大提高查询效率,因为其可以减少查询需要扫描的数据量。常用的索引包括主键索引、唯一索引、普通索引等。创建表时应根据查询需求设计合理的索引。

7.存储过程和触发器

        存储过程是一组为了完成特定功能的SQL语句集合,可以提高代码复用性。触发器可以监控表的插入、删除和修改操作,并触发特定的SQL操作。它们都可以提高数据库应用的开发效率。

8.视图

        视图是基于一个或多个表的查询结果集,可以简化复杂的查询操作,提高查询效率。同时,视图也可以用于提供数据的抽象层,隐藏底层数据库的结构。

五、DDL操作数据库

1.创建数据库:

(1)创建数据库

CREATE DATABASE 数据库名称;

(2)判断数据库是否已经存在,不存在则创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

(3)创建数据库并指定字符集

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

2.查询数据库:

SHOW DATABASES;查看所有的数据库show create database db1; 查看某个数据库的定义信息

3.修改数据库:

ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;

4.删除数据库:

DROP DATABASE 数据库名称;

5.使用数据库:

(1)查看正在使用的数据库

SELECT DATABASE(); 使用的一个 mysql 中的全局函数

(2)使用/切换数据库

USE 数据库名称;

六、DDL操作表

1.添加字段:

    可以使用ALTER TABLE 表名 ADD 字段名 数据类型 来为表添加新的字段,如 :

ALTER TABLE students ADD gender char(1);

2.修改字段:

    可以使用ALTER TABLE 表名 MODIFY 字段名 新数据类型 来修改字段的数据类型,如 :

ALTER TABLE students MODIFY gender varchar(10);

3.重命名字段:

    可以使用ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 来重命名字段,如:

 ALTER TABLE students CHANGE gender sex varchar(10);

4.删除字段:

    可以使用ALTER TABLE 表名 DROP 字段名 来删除字段,如:

 ALTER TABLE students DROP sex;

5.设置字段默认值:

    在创建表时,可以为字段设置默认值,如:

CREATE TABLE students(id int, name varchar(20), age int default 18);

6.字段约束:

    可以为字段设置非空、唯一、主键等约束,以增强数据的完整性,如:

CREATE TABLE students(id int primary key, name varchar(20) not null, age int default 18);

7.外键约束:

    可以在创建表时通过FOREIGN KEY约束来实现表与表之间的关联,如:

CREATE TABLE orders(order_id int, product_id int, FOREIGN KEY(product_id) REFERENCES products(product_id));

8.修改表字符集:

    可以使用ALTER TABLE 表名 DEFAULT CHARACTER SET 字符集 来修改表的默认字符集,如:

ALTER TABLE students DEFAULT CHARACTER SET utf8;

9.添加注释:

    可以为表和字段添加注释,以提高可读性,如:

ALTER TABLE students COMMENT ‘学生表’;

10.查看表结构:

    可以使用DESCRIBE或DESC 表名 来查看表的结构,如:

DESCRIBE students;

七、DML操作数据

1.插入单条数据:

    使用INSERT INTO 表名(列名1, 列名2, …) VALUES(值1, 值2, …) 语句插入单条数据,如

INSERT INTO students(name, age) VALUES(‘张三’, 20);

2.插入多条数据:

    可以在一条INSERT语句中插入多条数据,使用VALUES(),(),()语法,如

INSERT INTO students(name, age) VALUES(‘张三’, 20),(‘李四’, 22),(‘王五’, 21);

3.删除满足条件的数据:

    使用DELETE FROM 表名 WHERE 条件 语句删除满足条件的数据,如

DELETE FROM students WHERE age < 18;

4.删除所有数据:

    可以使用DELETE FROM 表名;语句删除表中所有数据,也可以使用TRUNCATE TABLE 表名;语句,后者效率更高;

5.更新满足条件的数据:

    使用UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2, … WHERE 条件 语句更新满足条件的数据,如

UPDATE students SET age = 21 WHERE name = ‘张三’;

6.更新所有数据:

    可以在没有WHERE条件的情况下更新表中所有数据,如

UPDATE students SET age = 20;

7.使用子查询进行更新:

    可以在UPDATE语句中使用子查询作为条件,如

UPDATE students SET age = 21 WHERE name IN (SELECT name FROM students WHERE age < 20);

8.使用LIMIT限制更新数据量:

    可以在UPDATE语句中添加LIMIT限制条件,如

UPDATE students SET age = 20 WHERE age < 18 LIMIT 10;

9.数据插入时的注意事项:

    插入数据时要注意字段的类型、长度等约束条件,以避免插入错误的数据;

10.数据删除时的注意事项:

   删除数据时要注意WHERE条件,避免误删数据。

八、DQL查询数据

1.查询所有字段:

    可以使用SELECT * FROM 表名;语句查询表中的所有字段数据,如

SELECT * FROM students;

2.查询指定字段:

    可以使用SELECT 字段1, 字段2, … FROM 表名;语句查询表中的指定字段数据,如

SELECT name, age FROM students;

3.条件查询:

    可以在SELECT语句中使用WHERE子句添加条件,以查询符合条件的数据,如

SELECT * FROM students WHERE age > 18;

4.模糊查询:

    可以在SELECT语句中使用LIKE关键字进行模糊查询,如

SELECT * FROM students WHERE name LIKE ‘%李%’;

5.排序查询:

    可以在SELECT语句中使用ORDER BY子句对结果进行排序,如

SELECT * FROM students ORDER BY age DESC;

6.分组查询:

    可以在SELECT语句中使用GROUP BY子句进行分组查询,如

SELECT name, COUNT(*) FROM students GROUP BY name;

7.连接查询:

    可以使用JOIN关键字进行多表连接查询,如

SELECT students.name, classes.name FROM students JOIN classes ON students.class_id = classes.id;

8.子查询:

    可以在SELECT语句中使用子查询,如

SELECT * FROM students WHERE age > (SELECT AVG(age) FROM students);

9.聚合函数:

    可以使用COUNT(), SUM(), AVG(), MAX(), MIN()等聚合函数进行数据统计,如

SELECT COUNT(*) FROM students;

10.数据去重:

    可以使用DISTINCT关键字去除查询结果中的重复数据,如

SELECT DISTINCT name FROM students;

11.字段别名:

    可以使用AS关键字为查询结果的字段指定别名,如

SELECT name AS 姓名, age AS 年龄 FROM students;

结语:

    通过以上内容,相信您已经对MySQL数据库有了基本的了解,包括其安装、配置以及基本操作。数据库技术在我们的工作和生活中发挥着重要作用,掌握这些知识将使您在处理数据和信息系统时更加得心应手。希望本文对您有所帮助,祝您学习愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/446241.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小程序Taro框架 自定义底部Tabbar,处理自定义Tab栏切换卡顿、闪烁

最终效果 最近在用Taro框架开发一个小程序&#xff0c;有一个自定义底部Tabbar的需求&#xff0c;最终效果如下 起步 这页是我第一次接触自定义小程序底部Tabbar&#xff0c;所有第一选择必然是相看官方文档&#xff1a;微信小程序自定义 Tabbar | Taro 文档 &#xff08;如果…

ping多个IP的工具

Ping Tool 项目地址 python开发的IP搜索小工具 ping一个网段所有IP&#xff0c;显示结果查看某个ip地址开放监听的端口配置可保存

IDEA编译安卓源码TVBox

因为电视x受限&#xff0c;无法观看电视直播&#xff0c;为了春晚不受影响&#xff0c;于是网络一顿搜索&#xff0c;试过多个APP&#xff0c;偶尔找到这款开源的TVBox&#xff0c;寒假在家&#xff0c;随便拿来练练手&#xff0c;学习安卓APP的编写&#xff0c;此文做以记录&a…

手拉手RocketMQ基础

消息中间件的对比 消息中间件 ActiveMQ RabbitMQ RocketMQ kafka 开发语言 java erlang java scala 单击吞吐量 万级 万级 10万级 10万级 时效性 ms us ms ms 可用性 高(主从架构) 高(主从架构) 非常高(主从架构) 非常高(主从架构) 消息中间件: activ…

分享软件项目实施方案模板

本项目在实施过程中将遵守做到以下几个方面&#xff1a; 与建设单位共同完成整个系统软件、网络等设计,负责系统的开发、测试、调试、人员培训、系统的试运行和交付&#xff0c;并保证系统质量。负责系统的维护、应用软件的升级和更新。提出对系统硬件设备的相关技术要求。在项…

JDBC的学习记录

JDBC就是使用java语言操作关系型数据库的一套API。 JDBC&#xff08;Java Database Connectivity&#xff09;是Java语言中用于连接和操作数据库的一种标准接口。它提供了一组方法和类&#xff0c;使Java程序能够与各种不同类型的关系型数据库进行交互。 JDBC的主要功能包括建…

PythonWeb

例题一 from flask import Flask app Flask(__name__) app.route(/index) def index():return f<h1>这是首页&#xff01;</h1> def second():return f<h1>这是第二页&#xff01;</h1> if __name__ __name__:app.run(host"0.0.0.0",port…

图腾柱PFC工作原理:一张图

视屏链接&#xff1a; PFC工作原理

SpringCloud--Sentinel使用

一、快速开始 Sentinel 的使用可以分为两个部分&#xff1a; 核心库&#xff08;Java 客户端&#xff09;&#xff1a;不依赖任何框架/库&#xff0c;能够运行于 Java 8 及以上的版本的运行时环境&#xff0c;同时对 Dubbo / Spring Cloud 等框架也有较好的支持。控制台&…

OpenFeign相关配置(超时,重试,HttpClient5,日志)

1.超时控制 默认OpenFeign客户端等待60秒钟&#xff0c;但是服务端处理超过规定时间会导致Feign客户端返回报错。 yml文件对应配置: connectTimeout&#xff1a;连接超时时间 readTimeout:请求处理超时时间 1.yml配置 server:port: 80spring:application:name: cloud-consu…

F - Earn to Advance

解题思路 由于对于一点不知道后面得花费&#xff0c;所以无法决策当前是否要停下赚钱或要停下多久考虑一点&#xff0c;可以由其左上方的所有点到达所以从往前推&#xff0c;得出到的总花费然后考虑从之后不赚钱直接到最终所用次数和剩余钱若存在&#xff0c;在后面点赚钱更优…

面试经典150题 -- 图的广度优先遍历 (总结)

总的链接 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 909 . 蛇梯棋 链接 : . - 力扣&#xff08;LeetCode&#xff09; 题意 &#xff1a; 直接bfs就好了 &#xff0c; 题意难以理解 : class Solution:def snakesA…

mockjs学习

1.前言 最近面试发现之前团队协同合作的项目没有mock数据难以向面试官直接展示&#xff0c;所以迟到得来速学一下mockjs。 参考视频&#xff1a;mockJs 妈妈再也不用担心我没有后端接口啦_哔哩哔哩_bilibili 一开始查阅了一些资料&#xff0c;先是看了下EasyMock&#xff0c…

分享几个Google Chrome谷歌浏览器历史版本下载网站

使用selenium模块的时候&#xff0c;从官网下载的谷歌浏览器版本太高&#xff0c;驱动不支持&#xff0c;所以需要使用历史的谷歌浏览器版本 &#xff0c;这里备份一下以防找不到了。 驱动下载地址&#xff1a;https://registry.npmmirror.com/binary.html?pathchromedriver 文…

Windows C++ 实现远程虚拟打印机(远程共享打印机)

编译错误已经修改完后的工程修改后的下载地址 https://download.csdn.net/download/2403_83063732/88928550 1、下载clawpdf&#xff08;0.8.7版本&#xff09; https://github.com/clawsoftware/clawPDF 2、打开clawpdf工程开始编译C#工程&#xff0c;出现如下错误&#xf…

利用YOLOv5模型进行锥桶识别

目录 1. YOLOv5模型简介 2. 准备数据集 3. 训练模型 4. 模型评估 5. 模型部署与应用 6. 注意事项 在计算机视觉领域&#xff0c;目标检测是一项重要的任务&#xff0c;它可以帮助我们识别图像或视频中的特定物体并进行定位。而YOLOv5是一种高效的目标检测模型&#xff0c…

栈与队列的故事

​​​​​​​ 目录 ​编辑​​​​​​​ 一、栈 1.1栈的概念及结构 1.2栈的实现 1、实现支持动态增长的栈 2、初始化栈 3、入栈 4、出栈 5、获取栈顶元素 6、检测栈是否为空 7、获取栈中有效元素个数 8、销毁栈 9、测试 1.3源码 二、队列 2.1队列的概念及结构…

【AI辅助研发】-开端:未来的编程范式

编程的四种范式 面向机器编程范式 面向机器编程范式是最原始的编程方式&#xff0c;它直接针对计算机硬件进行操作。程序员需要了解计算机的内部结构、指令集和内存管理等细节。在这种范式下&#xff0c;编程的主要目标是编写能够直接控制计算机硬件运行的机器代码。面向机器…

Babel:现代JavaScript的桥梁

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【Prometheus】PromQL

数据类型 即时向量&#xff08;instant vector&#xff09; node_cpu_seconds_total{instance"ahoj-dev-ubuntu-virtualbox",mode"idle"} 区间向量&#xff08;range vector&#xff09; node_cpu_seconds_total{instance"ahoj-dev-ubuntu-virtu…