第一部分:基础知识 2. SQL基础 --[MySQL轻松入门教程]

第一部分:基础知识 2. SQL基础 --[MySQL轻松入门教程]

SQL(Structured Query Language)是一种用于管理和处理关系型数据库的标准语言。它被广泛应用于各种数据库系统,如MySQL, PostgreSQL, Oracle, SQL Server等。下面是一些SQL的基础知识和常用操作示例。

1.SQL简介

SQL(Structured Query Language,结构化查询语言)是一种用于管理和处理关系型数据库的标准编程语言。它被广泛应用于各种数据库系统,如MySQL、PostgreSQL、Oracle、Microsoft SQL Server等。SQL的主要功能包括数据的查询、插入、更新、删除以及对数据库结构的操作。

SQL的主要特点

SQL(Structured Query Language,结构化查询语言)是一种用于管理和处理关系型数据库的标准编程语言。它具有许多特点,使其成为数据管理和分析的强大工具。以下是SQL的一些主要特点:

1.标准化*
  • ANSI/ISO标准:SQL是美国国家标准协会(ANSI)和国际标准化组织(ISO)的标准之一。这确保了不同数据库管理系统之间的兼容性。
  • 广泛支持:几乎所有主流的关系型数据库系统都支持SQL,如MySQL、PostgreSQL、Oracle、Microsoft SQL Server等。
2.简单易学
  • 语法简洁:SQL的语法相对简单,易于学习和理解,即使对于非程序员也是如此。
  • 自然语言风格:SQL命令通常以接近自然语言的方式编写,使得语句易于阅读和理解。
3. 强大的数据操作能力
  • 数据检索:通过SELECT语句可以灵活地从数据库中检索数据,并进行复杂的过滤、排序和分组操作。
  • 数据插入:使用INSERT语句可以向表中插入新数据。
  • 数据更新:使用UPDATE语句可以修改表中的现有数据。
  • 数据删除:使用DELETE语句可以从表中删除数据。
4. 事务支持
  • ACID属性:SQL支持事务处理,确保数据的一致性和完整性。事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
  • 事务控制:通过BEGIN TRANSACTIONCOMMITROLLBACK语句来管理事务。
5. 数据定义和控制
  • 数据定义语言 (DDL):用于创建、修改和删除数据库对象(如表、视图、索引等)。常见的DDL语句包括CREATEALTERDROP
  • 数据控制语言 (DCL):用于管理数据库的安全性和权限。常见的DCL语句包括GRANTREVOKE
6. 多表操作
  • 连接 (JOIN):通过JOIN操作可以将多个表中的数据合并在一起,实现复杂的数据关联。
  • 子查询:可以在一个查询内部嵌套另一个查询,以实现更复杂的数据处理逻辑。
7. 聚合函数和分组
  • 聚合函数:如COUNTSUMAVGMAXMIN,用于对数据进行统计和汇总。
  • 分组:使用GROUP BY语句可以对数据进行分组,并在每个组上应用聚合函数。
8. 视图 (View)
  • 虚拟表:视图是从一个或多个表中导出的虚拟表,可以简化复杂的查询。
  • 安全性:视图可以隐藏底层表的复杂性,并提供一定程度的数据安全。
9. 存储过程 (Stored Procedure)
  • 预编译代码:存储过程是一组预编译的SQL语句,可以接受参数并返回结果集或状态值。
  • 性能优化:存储过程可以提高执行效率,减少网络传输开销。
10. 触发器 (Trigger)
  • 自动执行:触发器是在特定事件发生时自动执行的SQL代码,常用于保持数据完整性。
  • 事件驱动:触发器可以基于插入、更新或删除操作来触发。
11. 索引 (Index)
  • 提高查询性能:索引是一种数据结构,用于加快数据检索速度。
  • 多种类型:包括B树索引、哈希索引、全文索引等。
12. 用户友好
  • 图形界面工具:有许多图形界面工具(如phpMyAdmin、MySQL Workbench、DBeaver等)可以帮助用户更直观地管理和操作数据库。
  • 集成开发环境 (IDE):许多IDE(如Visual Studio Code、IntelliJ IDEA)提供了对SQL的支持,使开发更加方便。
13. 跨平台
  • 多操作系统支持:SQL可以在多种操作系统上运行,包括Windows、Linux、macOS等。

这些特点使得SQL成为一种非常强大且灵活的语言,适用于各种规模的数据管理和分析任务。无论是小型项目还是大型企业级应用,SQL都能提供可靠的数据处理能力。

SQL的基本组成部分

1. 数据定义语言 (DDL)
  • CREATE:创建数据库对象,如表、视图等。
  • ALTER:修改现有数据库对象的结构。
  • DROP:删除数据库对象。
  • TRUNCATE:快速清空表中的所有数据,但保留表结构。
2. 数据操作语言 (DML)
  • SELECT:从数据库中检索数据。
  • INSERT:向表中插入新数据。
  • UPDATE:更新表中的现有数据。
  • DELETE:从表中删除数据。
3. 数据控制语言 (DCL)
  • GRANT:授予用户或角色特定的权限。
  • REVOKE:撤销用户或角色的权限。
4. 事务控制语言 (TCL)
  • COMMIT:提交当前事务。
  • ROLLBACK:回滚当前事务。
  • SAVEPOINT:设置保存点,可以在事务中回滚到该点。

SQL的高级特性

连接 (JOIN)

连接用于将多个表中的数据合并在一起,常见的有内连接、左连接、右连接和全外连接。

子查询

子查询是在另一个查询内部执行的查询,可以嵌套在SELECT, INSERT, UPDATE, 或 DELETE 语句中。

视图 (VIEW)

视图是从一个或多个表中导出的虚拟表,可以简化复杂的查询。

存储过程 (Stored Procedure)

存储过程是一组预编译的SQL语句,可以接受参数并返回结果集或状态值。

触发器 (Trigger)

触发器是在特定事件发生时自动执行的SQL代码,常用于保持数据完整性。

2.mysql数据库和表

MySQL 是一个广泛使用的关系型数据库管理系统(RDBMS),它支持标准的SQL语言。下面是一些关于如何在MySQL中创建和管理数据库及表的基本操作。

创建数据库

要创建一个新的数据库,可以使用 CREATE DATABASE 语句。例如:

CREATE DATABASE mydatabase;

选择数据库

在执行任何表操作之前,你需要选择一个数据库。使用 USE 语句来选择数据库:

USE mydatabase;

完整示例

以下是一个完整的示例,展示了如何从连接到MySQL服务器到创建数据库并选择它的过程:

# 连接到MySQL服务器
$ mysql -u your_username -p

# 输入你的密码

# 创建数据库
# 有时候,你可能希望在创建数据库时指定字符集和排序规则。这可以通过 CHARACTER SET 和 COLLATE 子句来实现
mysql> CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 验证数据库是否创建成功
mysql> SHOW DATABASES;

# 选择新创建的数据库
mysql> USE mydatabase;


[root@sanlou_6 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.40 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.02 sec)

mysql> SHOW DATABASES
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydatabase         |
| mysql              |
| obtain_data        |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.01 sec)

mysql>

在这里插入图片描述

通过这些步骤,你就可以在MySQL中成功创建一个新的数据库。接下来,你可以在这个数据库中创建表、插入数据、查询数据等。

创建表

创建表时,你需要定义表的结构,包括列名、数据类型以及约束条件。以下是一个创建表的例子:

# 创建表
mysql> CREATE TABLE Employees (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    BirthDate DATE,
    Position VARCHAR(50),
    Salary DECIMAL(10, 2)
);
# 查看表结构
mysql> desc Employees;

mysql> CREATE TABLE Employees (
    ->     ID INT AUTO_INCREMENT PRIMARY KEY,
    ->     FirstName VARCHAR(50) NOT NULL,
    ->     LastName VARCHAR(50) NOT NULL,
    ->     BirthDate DATE,
    ->     Position VARCHAR(50),
    ->     Salary DECIMAL(10, 2)
    -> );
Query OK, 0 rows affected (0.07 sec)

mysql> desc Employees;
+-----------+---------------+------+-----+---------+----------------+
| Field     | Type          | Null | Key | Default | Extra          |
+-----------+---------------+------+-----+---------+----------------+
| ID        | int           | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(50)   | NO   |     | NULL    |                |
| LastName  | varchar(50)   | NO   |     | NULL    |                |
| BirthDate | date          | YES  |     | NULL    |                |
| Position  | varchar(50)   | YES  |     | NULL    |                |
| Salary    | decimal(10,2) | YES  |     | NULL    |                |
+-----------+---------------+------+-----+---------+----------------+
6 rows in set (0.02 sec)

mysql>

在这里插入图片描述

在这个例子中:

  • ID 列是主键,并且自动递增。
  • FirstNameLastName 是必填字段 (NOT NULL)。
  • BirthDate 是日期类型。
  • Position 是职位名称。
  • Salary 是薪水,用十进制数表示,总共10位,其中2位小数。

插入数据

你可以使用 INSERT INTO 语句向表中插入数据:

INSERT INTO Employees (FirstName, LastName, BirthDate, Position, Salary)
VALUES ('John', 'Doe', '1980-01-01', 'Manager', 50000.00);

INSERT INTO Employees (FirstName, LastName, BirthDate, Position, Salary)
VALUES ('Jane', 'Smith', '1985-05-15', 'Developer', 70000.00);

mysql> INSERT INTO Employees (FirstName, LastName, BirthDate, Position, Salary)
    -> VALUES ('John', 'Doe', '1980-01-01', 'Manager', 50000.00);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO Employees (FirstName, LastName, BirthDate, Position, Salary)
    -> VALUES ('Jane', 'Smith', '1985-05-15', 'Developer', 70000.00);
Query OK, 1 row affected (0.02 sec)

mysql> SELECT * FROM Employees;
+----+-----------+----------+------------+-----------+----------+
| ID | FirstName | LastName | BirthDate  | Position  | Salary   |
+----+-----------+----------+------------+-----------+----------+
|  1 | John      | Doe      | 1980-01-01 | Manager   | 50000.00 |
|  2 | Jane      | Smith    | 1985-05-15 | Developer | 70000.00 |
+----+-----------+----------+------------+-----------+----------+
2 rows in set (0.00 sec)

mysql> 

在这里插入图片描述

查询数据

使用 SELECT 语句可以从表中检索数据:

-- 查询所有员工
SELECT * FROM Employees;

-- 查询特定列
SELECT FirstName, LastName, Position FROM Employees;

-- 条件查询
SELECT * FROM Employees WHERE Position = 'Manager';

-- 排序
SELECT * FROM Employees ORDER BY Salary DESC;

-- 分组与聚合
SELECT Position, COUNT(*) AS EmployeeCount, AVG(Salary) AS AverageSalary
FROM Employees
GROUP BY Position;

mysql> SELECT FirstName, LastName, Position FROM Employees;
+-----------+----------+-----------+
| FirstName | LastName | Position  |
+-----------+----------+-----------+
| John      | Doe      | Manager   |
| Jane      | Smith    | Developer |
+-----------+----------+-----------+
2 rows in set (0.00 sec)

mysql> SELECT * FROM Employees WHERE Position = 'Manager';
+----+-----------+----------+------------+----------+----------+
| ID | FirstName | LastName | BirthDate  | Position | Salary   |
+----+-----------+----------+------------+----------+----------+
|  1 | John      | Doe      | 1980-01-01 | Manager  | 50000.00 |
+----+-----------+----------+------------+----------+----------+
1 row in set (0.00 sec)

mysql> SELECT * FROM Employees ORDER BY Salary DESC;
+----+-----------+----------+------------+-----------+----------+
| ID | FirstName | LastName | BirthDate  | Position  | Salary   |
+----+-----------+----------+------------+-----------+----------+
|  2 | Jane      | Smith    | 1985-05-15 | Developer | 70000.00 |
|  1 | John      | Doe      | 1980-01-01 | Manager   | 50000.00 |
+----+-----------+----------+------------+-----------+----------+
2 rows in set (0.00 sec)

mysql> SELECT Position, COUNT(*) AS EmployeeCount, AVG(Salary) AS AverageSalary
    -> FROM Employees
    -> GROUP BY Position;
+-----------+---------------+---------------+
| Position  | EmployeeCount | AverageSalary |
+-----------+---------------+---------------+
| Manager   |             1 |  50000.000000 |
| Developer |             1 |  70000.000000 |
+-----------+---------------+---------------+
2 rows in set (0.01 sec)

mysql> 

在这里插入图片描述

更新数据

使用 UPDATE 语句可以修改表中的现有数据:

UPDATE Employees
SET Salary = 55000.00
WHERE ID = 1;

mysql> SELECT * FROM Employees;
+----+-----------+----------+------------+-----------+----------+
| ID | FirstName | LastName | BirthDate  | Position  | Salary   |
+----+-----------+----------+------------+-----------+----------+
|  1 | John      | Doe      | 1980-01-01 | Manager   | 50000.00 |
|  2 | Jane      | Smith    | 1985-05-15 | Developer | 70000.00 |
+----+-----------+----------+------------+-----------+----------+
2 rows in set (0.00 sec)

mysql> UPDATE Employees
    -> SET Salary = 55000.00
    -> WHERE ID = 1;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM Employees;
+----+-----------+----------+------------+-----------+----------+
| ID | FirstName | LastName | BirthDate  | Position  | Salary   |
+----+-----------+----------+------------+-----------+----------+
|  1 | John      | Doe      | 1980-01-01 | Manager   | 55000.00 |
|  2 | Jane      | Smith    | 1985-05-15 | Developer | 70000.00 |
+----+-----------+----------+------------+-----------+----------+
2 rows in set (0.00 sec)

mysql>

在这里插入图片描述

删除数据

使用 DELETE 语句可以从表中删除数据:

DELETE FROM Employees WHERE ID = 1;

mysql> SELECT * FROM Employees;
+----+-----------+----------+------------+-----------+----------+
| ID | FirstName | LastName | BirthDate  | Position  | Salary   |
+----+-----------+----------+------------+-----------+----------+
|  1 | John      | Doe      | 1980-01-01 | Manager   | 55000.00 |
|  2 | Jane      | Smith    | 1985-05-15 | Developer | 70000.00 |
+----+-----------+----------+------------+-----------+----------+
2 rows in set (0.00 sec)

mysql> DELETE FROM Employees WHERE ID = 1;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM Employees;
+----+-----------+----------+------------+-----------+----------+
| ID | FirstName | LastName | BirthDate  | Position  | Salary   |
+----+-----------+----------+------------+-----------+----------+
|  2 | Jane      | Smith    | 1985-05-15 | Developer | 70000.00 |
+----+-----------+----------+------------+-----------+----------+
1 row in set (0.00 sec)

mysql>

在这里插入图片描述

添加列

如果需要向现有表添加新列,可以使用 ALTER TABLE 语句:

ALTER TABLE Employees ADD COLUMN Email VARCHAR(100);

mysql> desc Employees;
+-----------+---------------+------+-----+---------+----------------+
| Field     | Type          | Null | Key | Default | Extra          |
+-----------+---------------+------+-----+---------+----------------+
| ID        | int           | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(50)   | NO   |     | NULL    |                |
| LastName  | varchar(50)   | NO   |     | NULL    |                |
| BirthDate | date          | YES  |     | NULL    |                |
| Position  | varchar(50)   | YES  |     | NULL    |                |
| Salary    | decimal(10,2) | YES  |     | NULL    |                |
+-----------+---------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

mysql> ALTER TABLE Employees ADD COLUMN Email VARCHAR(100);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc Employees;
+-----------+---------------+------+-----+---------+----------------+
| Field     | Type          | Null | Key | Default | Extra          |
+-----------+---------------+------+-----+---------+----------------+
| ID        | int           | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(50)   | NO   |     | NULL    |                |
| LastName  | varchar(50)   | NO   |     | NULL    |                |
| BirthDate | date          | YES  |     | NULL    |                |
| Position  | varchar(50)   | YES  |     | NULL    |                |
| Salary    | decimal(10,2) | YES  |     | NULL    |                |
| Email     | varchar(100)  | YES  |     | NULL    |                |
+-----------+---------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

mysql> 

在这里插入图片描述

修改列

如果需要修改现有列的数据类型或其他属性,同样可以使用 ALTER TABLE 语句:

ALTER TABLE Employees MODIFY COLUMN Email VARCHAR(255);

mysql> desc Employees;
+-----------+---------------+------+-----+---------+----------------+
| Field     | Type          | Null | Key | Default | Extra          |
+-----------+---------------+------+-----+---------+----------------+
| ID        | int           | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(50)   | NO   |     | NULL    |                |
| LastName  | varchar(50)   | NO   |     | NULL    |                |
| BirthDate | date          | YES  |     | NULL    |                |
| Position  | varchar(50)   | YES  |     | NULL    |                |
| Salary    | decimal(10,2) | YES  |     | NULL    |                |
| Email     | varchar(100)  | YES  |     | NULL    |                |
+-----------+---------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

mysql> ALTER TABLE Employees MODIFY COLUMN Email VARCHAR(255);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc Employees;
+-----------+---------------+------+-----+---------+----------------+
| Field     | Type          | Null | Key | Default | Extra          |
+-----------+---------------+------+-----+---------+----------------+
| ID        | int           | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(50)   | NO   |     | NULL    |                |
| LastName  | varchar(50)   | NO   |     | NULL    |                |
| BirthDate | date          | YES  |     | NULL    |                |
| Position  | varchar(50)   | YES  |     | NULL    |                |
| Salary    | decimal(10,2) | YES  |     | NULL    |                |
| Email     | varchar(255)  | YES  |     | NULL    |                |
+-----------+---------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

mysql>

在这里插入图片描述

删除列

如果需要从表中删除列,可以使用 ALTER TABLE 语句:

ALTER TABLE Employees DROP COLUMN Email;

mysql> desc Employees;
+-----------+---------------+------+-----+---------+----------------+
| Field     | Type          | Null | Key | Default | Extra          |
+-----------+---------------+------+-----+---------+----------------+
| ID        | int           | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(50)   | NO   |     | NULL    |                |
| LastName  | varchar(50)   | NO   |     | NULL    |                |
| BirthDate | date          | YES  |     | NULL    |                |
| Position  | varchar(50)   | YES  |     | NULL    |                |
| Salary    | decimal(10,2) | YES  |     | NULL    |                |
| Email     | varchar(255)  | YES  |     | NULL    |                |
+-----------+---------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

mysql> ALTER TABLE Employees DROP COLUMN Email;
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc Employees;
+-----------+---------------+------+-----+---------+----------------+
| Field     | Type          | Null | Key | Default | Extra          |
+-----------+---------------+------+-----+---------+----------------+
| ID        | int           | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(50)   | NO   |     | NULL    |                |
| LastName  | varchar(50)   | NO   |     | NULL    |                |
| BirthDate | date          | YES  |     | NULL    |                |
| Position  | varchar(50)   | YES  |     | NULL    |                |
| Salary    | decimal(10,2) | YES  |     | NULL    |                |
+-----------+---------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

mysql>

在这里插入图片描述

删除表

如果你不再需要某个表,可以使用 DROP TABLE 语句删除它:

show tables;	-- 显示该数据库的所有表
DROP TABLE Employees;	-- 删除表

mysql> show tables;
+----------------------+
| Tables_in_mydatabase |
+----------------------+
| Employees            |
+----------------------+
1 row in set (0.00 sec)

mysql> ^C
mysql> DROP TABLE Employees;
Query OK, 0 rows affected (0.07 sec)

mysql> show tables;
Empty set (0.00 sec)

mysql>

在这里插入图片描述

删除数据库

如果你不再需要整个数据库,可以使用 DROP DATABASE 语句删除它:

show databases;	-- 显示所有数据库
DROP DATABASE mydatabase;	-- 删除数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydatabase         |
| mysql              |
| obtain_data        |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> DROP DATABASE mydatabase;
Query OK, 0 rows affected (0.04 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| obtain_data        |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> 

在这里插入图片描述

这些是MySQL中创建和管理数据库及表的一些基本操作。通过这些命令,你可以开始构建和维护你的数据库系统。

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

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

相关文章

【QT】音乐播放器demo

1、使用设计师模式绘制ui界面 添加QPushButton并设置大小,ctrl鼠标拖动复制相同的组件。 添加icon //ps:icon下载网站 设置按钮无边框并设置鼠标悬停颜色: 修改QWidget样式表,添加: *{ border:none; } QPushBu…

基于python的汽车数据爬取数据分析与可视化

一、研究背景 基于提供的代码片段和讨论,我们可以得出一个与网络抓取、数据处理和数据可视化相关的研究背景,该背景涉及到汽车行业。以下是研究背景的陈述: "在迅速发展的汽车行业中,准确和及时的数据对各方利益相关者至关…

【Robocasa】Code Review

文章目录 OverviewalgoInitializationImportant Class MethodsTrain LoopTest Time ConfigsdemoConfig FactoryConfig StructureConfig Locking默认锁定状态配置修改的上下文管理器 dataset示例数据集对象参数说明 model基础模块EncoderCoreVisualCoreScanCore随机化器 (Random…

【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

​​​​​​​ 目录 一、引言 二、蒙版生成(mask-generation) 2.1 概述 2.2 facebook/sam-vit-base 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.3.3 pipeline对象返回参数 2.4 pipeline实战 2.5 模型排…

光伏电站设计排布前的准备

1、确定安装地点 地理位置:了解安装地点的经纬度,这对于确定太阳辐射角度和强度非常重要,海拔越高,阳光辐照就越高,比较适合安装光伏电站,根据地理位置还可以确定光伏板的安装倾角是多少,可以进…

【Linux】文件操作的艺术——从基础到精通

🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚前言:一切皆文件 📚一、C语言的文件接口 📖1.文件打…

Neo4j 图数据库安装与操作指南(以mac为例)

目录 一、安装前提条件 1.1 Java环境 1.2 Homebrew(可选) 二、下载并安装Neo4j 2.1 从官方网站下载 2.1.1 访问Neo4j的官方网站 2.1.2 使用Homebrew安装 三、配置Neo4j 3.1 设置环境变量(可选) 3.2 打开配置文件(bash_profile) 3.2.1 打开终端…

基于SSM+vue的个性化商铺系统(源码+数据库+文档)

个性化商铺系统 基于SprinBootvue的个性化商铺系统 一、前言 二、系统设计 三、系统功能设计 App功能模块 后台功能模块 管理员功能模块 商家功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&…

【Electron学习笔记(三)】Electron的主进程和渲染进程

Electron的主进程和渲染进程 Electron的主进程和渲染进程前言正文1、主进程2、渲染进程3、Preload 脚本3.1 在项目目录下创建 preload.js 文件3.2 在 main.js 文件下创建路径变量并将 preload.js 定义为桥梁3.3 在 preload.js 文件下使用 electron 提供的contextBridge 模块3.4…

桶装水递送系统

一、前言 随着人们生活水平的提高和健康意识的增强,桶装水作为一种方便、安全的饮用水供应方式,在家庭、办公室及各类公共场所得到了广泛应用。然而,传统的桶装水订购与递送过程存在诸多不便,如客户下单方式繁琐、递送信息不透明、…

COMSOL工作站:配置指南与性能优化

COMSOL Multiphysics 求解的问题类型相当广泛,提供了仿真单一物理场以及灵活耦合多个物理场的功能,供工程师和科研人员来精确分析各个工程领域的设备、工艺和流程。 软件内置的#模型开发器#包含完整的建模工作流程,可实现从几何建模、材料参数…

大数据技术Kafka详解 ② | Kafka基础与架构介绍

目录 1、kafka的基本介绍 2、kafka的好处 3、分布式发布与订阅系统 4、kafka的主要应用场景 4.1、指标分析 4.2、日志聚合解决方法 4.3、流式处理 5、kafka架构 6、kafka主要组件 6.1、producer(生产者) 6.2、topic(主题) 6.3、partition(分区) 6.4、consumer(消费…

PowerShell:查找并关闭打开的文件

Get-SmbOpenFile 打开 Windows PowerShell 并运行 Get-SmbOpenFile | Format-List 若要仅显示特定文件共享的连接,请使用 Where-Object 运行 Get-SmbOpenFile。 Get-SmbOpenFile | Where-Object Path -eq "C:\Data\" | Format-List Get-SmbSession 显…

【381】基于springboot的银行客户管理系统

摘 要 伴随着信息技术与互联网技术的不断发展,人们进到了一个新的信息化时代,传统管理技术性没法高效率、容易地管理信息内容。为了实现时代的发展必须,提升管理高效率,各种各样管理管理体系应时而生,各个领域陆续进到…

Git常用命令参考手册

Git常用命令参考手册 整理了一篇git常用的命令参考手册,命令顺序按照一个项目从头到尾的常用命令顺序做了排序,后续会继续完善内容示例并补全其他命令使用说明,希望对不熟悉的小伙伴有所帮助。 git config # 配置列表 git config --list #…

form表单阻止默认事件及获取值

阻止form的默认事件 方法1 采用行内js的onsubmit,那么实参必须使用保留的关键词event <form action"" id"aa" name"bb" onsubmit"cdma(event)"><input type"text" name"zhangsan" > </form>…

【Linux-进程信号】可重入函数+volatile关键字+SIGCHLD信号+重谈系统调用

可重入函数 首先我们看一个例子&#xff0c;单链表的头插&#xff1b; main函数调用insert函数向一个链表head中插入节点A&#xff0c;插入操作分为两步&#xff0c;刚做完第一步的时候&#xff0c;因为硬件中断使进程切换到内核&#xff0c;再次回用户态之前检查到有信号待处…

以AI算力助推转型升级,暴雨亮相CCF中国存储大会

2024年11月29日-12月1日&#xff0c;CCF中国存储大会&#xff08;CCF ChinaStorage 2024&#xff09;在广州市长隆国际会展中心召开。本次会议以“存力、算力、智力”为主题&#xff0c;由中国计算机学会&#xff08;CCF&#xff09;主办&#xff0c;中山大学计算机学院、CCF信…

vulnhub靶场【哈利波特】三部曲之Aragog

前言 使用virtual box虚拟机 靶机&#xff1a;Aragog : 192.168.1.101 攻击&#xff1a;kali : 192.168.1.16 主机发现 使用arp-scan -l扫描&#xff0c;在同一虚拟网卡下 信息收集 使用nmap扫描 发现22端口SSH服务&#xff0c;openssh 80端口HTTP服务&#xff0c;Apach…

【Leetcode】26.删除有序数组中的重复项

题目链接&#xff1a; https://leetcode.cn/problems/remove-duplicates-from-sorted-array/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述&#xff1a; 解题思路&#xff1a; 使用双指针算法&#xff08;快慢指针&#xff09;&#xff0c;p1与p2…