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.mzph.cn/news/735282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现线性查找算法

Python实现线性查找算法 以下是使用 Python 实现线性查找算法的示例代码&#xff1a; def linear_search(arr, target):"""线性查找算法:param arr: 要搜索的数组:param target: 目标值:return: 如果找到目标值&#xff0c;返回其索引&#xff1b;否则返回 -1…

linux系统 QT 处理键盘Ctrl+C信号

linux系统 QT 处理键盘CtrlC信号 1 设置CtrlC信号处理函数 CtrlC运行 &#xff0c;serialPort不能用 .h public:explicit axisControl(axisInfo *axisinf,QWidget *parent nullptr);~axisControl();// 成员函数的CtrlC信号处理程序static void handleCtrlC(int signal);//…

【玩转Linux】有关Linux权限

目录 一.Linux权限的概念 1. 权限的本质 2.Linux中的用户 3.Linux中的权限管理 (1)文件访问者的分类 (2)文件类型和访问权限&#xff08;事物属性&#xff09; ①文件基本权限 ②文件权限值的表示方法 (3)文件访问权限的相关设置方法 ① 用 户 表 示 符 / - 权 …

EKF+PF的MATLAB例程

EKF+PF 扩展卡尔曼滤波与粒子滤波的MATLAB程序,有中文注释 程序源码 % EKF+PF效果对比 % author:Evand % 作者联系方式:evandjiang@qq.com(除前期达成一致外,咨询需付费) % date: 2024-1-10 % Ver2 clear;clc;close all; rng(0); %% 参数设置 N = 100; %粒子总数

c++之迭代器与反向迭代器

&#xff09; 正向迭代器迭代器的变量与typedef与模版operator()operator--()operator*()operator->() 反向迭代器模版与typedef与变量operator()operator--()operator*()operator->() 正向迭代器 以链表的迭代器为例 具体的代码以及可以看上一篇链表的文章:链表 迭代器的…

Vue3 快速上手从0到1,两小时学会【附源码】

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 以下内容为vue3的学习笔记 项目需要使用到的依赖 npm install axios npm install nanoid vue-router npm install pinia npm install mitt 源码&#xff1a;Gitee 运行 npm install npm run dev需要运…

FastAPI静态文件映射到网页

安装了FastAPI 和 Uvicorn&#xff1a;pip install fastapi uvicorn 然后运行代码 from fastapi import FastAPI from fastapi.staticfiles import StaticFilesapp FastAPI()# 假设 dir_upload 为 "/Users/yourusername/yourprojectpath/files/" dir_upload &quo…

大唐杯学习笔记:Day10

1.1 5G网络基本架构-SA 基站 gNB可支持FDD模式,TDD模式或双模式操作&#xff1b; gNB可以通过Xn接口互联&#xff1b; gNB内部CU分为控制面和用户面分离架构&#xff1b; gNB可以由gNB-CU和一个或多个gNB-DU组成&#xff1b; gNB-CU和gNB-DU通过F1接口连接&#xff1b; …

每日OJ题_链表④_力扣23. 合并 K 个升序链表(小根堆_归并)

目录 力扣23. 合并 K 个升序链表 解析代码1&#xff08;小根堆优化&#xff09; 解析代码2&#xff08;递归_归并&#xff09; 力扣23. 合并 K 个升序链表 23. 合并 K 个升序链表 难度 困难 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并…

MacBook2024苹果免费mac电脑清理垃圾软件CleanMyMac X

CleanMyMac X是一款专业的Mac清理软件&#xff0c;具备多种强大功能。首先&#xff0c;它能够智能清理Mac磁盘上的垃圾文件和多余语言安装包&#xff0c;从而快速释放电脑内存。其次&#xff0c;CleanMyMac X可以轻松管理和升级Mac上的应用&#xff0c;同时强力卸载恶意软件并修…

windows使用pyenv

1、前言 虽然anaconda比pyenv相比有更好的python安装体验&#xff0c;但是有一个比较严重的问题的就是&#xff0c;他的python版本跨度不够大&#xff0c;一些老一些的项目的python版本找不到&#xff0c;比如py12306要求的python版本是3.6&#xff0c;在anaconda却找不到这个版…

Alibaba Cloud Linux 3.2104 LTS 64位 怎么安装python3.10.12和pip3.10

目录 Linux 安装python3.10.12 Linux 安装python3.10.12 报错解决 Linux 安装python3.10.12 问题描述&#xff1a;Alibaba Cloud Linux 3.2104 LTS 64位 安装python3.10.12和pip3.10&#xff0c;本人按照网上普通几种安装方式虽然能安装上了&#xff0c;但是它与pip版本不一…

查看pip当前关联python版本及位置

好久没用python了&#xff0c;把各种pip指向的环境忘光光啦&#xff0c;这里记录一下查看pip当前关联的python版本及位置的方法&#xff1a; pip -V结果&#xff1a; 我一般不用这个版本的python&#xff0c;去环境变量看了一下&#xff0c;原来是anaconda的Scripts自带pip&a…

gprof安装使用(CMake)说明

一、安装 1、gprof默认已安装&#xff0c;可安装相关图形处理 sudo apt-get install python graphviz sudo pip install gprof2dot 注意&#xff1a;在Debian中没有安装成功&#xff0c;报Python的版本不匹配 二、使用说明 1、使用CMake管理的工程&#xff1a; 重新配置CMa…

记录一次以WEB API方式为sonar扫描问题分配责任人的自杀式袭击

前提背景&#xff1a;获取android代码中我们修改的所有文件扫描&#xff0c;忽略基线原生未修改的文件也忽略了git&#xff0c;这导致扫描的问题没有办法分配责任人。 一开始想到了api分配的方式&#xff0c;于是动手操作了起来&#xff08;忽略了问题太多&#xff09;&#x…

Elastic Stack--05--聚合、映射mapping

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.聚合(aggregations)基本概念桶&#xff08;bucket&#xff09;度量&#xff08;metrics&#xff09; 案例 11. 接下来按price字段进行分组&#xff1a;2. 若想对所…

LVS集群 ----------------(直接路由 )DR模式部署 (二)

一、LVS集群的三种工作模式 lvs-nat&#xff1a;修改请求报文的目标IP,多目标IP的DNAT lvs-dr&#xff1a;操纵封装新的MAC地址&#xff08;直接路由&#xff09; lvs-tun&#xff1a;隧道模式 lvs-dr 是 LVS集群的 默认工作模式 NAT通过网络地址转换实现的虚拟服务器&…

在Linux系统中安装Conda

在Linux系统中安装Conda&#xff08;通常指的是安装Miniconda或Anaconda&#xff09;可以通过以下步骤完成&#xff1a; 安装Miniconda&#xff1a; 下载Miniconda安装脚本&#xff1a; 打开终端&#xff0c;并使用wget或curl命令下载Miniconda的安装脚本。以下是使用wget的示…

(delphi11最新学习资料) Object Pascal 学习笔记---第6章第5节( 其他字符串类型 )

6.5 其他字符串类型 ​ 虽然字符串数据类型是迄今为止最常见、最常用的字符串表示类型&#xff0c;但 Object Pascal 桌面编译器过去和现在都有多种字符串类型。其中一些类型还可用于移动应用程序&#xff0c;在移动应用程序中&#xff0c;您也可以直接使用 TBytes 来操作单字…

2024年【电工(初级)】考试内容及电工(初级)考试报名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 电工&#xff08;初级&#xff09;考试内容根据新电工&#xff08;初级&#xff09;考试大纲要求&#xff0c;安全生产模拟考试一点通将电工&#xff08;初级&#xff09;模拟考试试题进行汇编&#xff0c;组成一套电…