当前位置: 首页 > article >正文

sql的使用

MySQL、PostgreSQL关系型和MongoDB 和 Redis非关系型数据库

一、前期准备

在安装和使用数据库之前,确保你的 CentOS 7 系统具备以下条件:

  • 系统安装了基本的开发工具:如 gccmake 等。
  • 有权限使用 sudo 命令。
  • 有良好的网络环境以下载软件包。

你可以通过以下命令确保系统软件包是最新的:

sudo yum update -y

二、关系型数据库

1. MySQL

MySQL 是最流行的开源关系型数据库之一,广泛应用于Web应用、ERP系统等场景。接下来详细讲解如何在 CentOS 7上安装、配置、使用以及开发中的 SQL 示例。

1.1 CentOS 7 安装 MySQL
  1. 安装 MySQL 官方源
    CentOS 7 默认的 yum 源中没有 MySQL,因此需要先下载安装 MySQL 官方源。

    sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    
  2. 安装 MySQL

    sudo yum install mysql-server -y
    
  3. 启动 MySQL 并设置为开机自启

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    
  4. 设置初始 root 密码
    MySQL 安装完成后会生成一个初始密码,使用以下命令查看:

    sudo grep 'temporary password' /var/log/mysqld.log
    

    使用这个密码登录并强制修改:

    mysql -u root -p
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
    
1.2 MySQL 开发使用
  1. 创建数据库

    CREATE DATABASE testdb;
    
  2. 创建表

    USE testdb;
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(50),
        email VARCHAR(50),
        password VARCHAR(255)
    );
    
  3. 插入数据

    INSERT INTO users (username, email, password) VALUES ('user1', 'user1@example.com', 'pass123');
    
  4. 查询数据

    SELECT * FROM users;
    
  5. 高级操作:复杂查询与事务

    • 联合查询
      SELECT u.username, o.order_id FROM users u JOIN orders o ON u.id = o.user_id;
      
    • 事务操作
      START TRANSACTION;
      UPDATE users SET password='newpass' WHERE username='user1';
      COMMIT;
      

MySQL 多表查询

MySQL 多表查询是关系型数据库中一个非常重要的功能,它允许开发者从多个相关表中获取数据。MySQL 提供了多种方式来进行多表查询,常见的有 连接查询(JOIN)子查询(Subquery)。掌握这些技巧是数据库设计与查询优化中的核心技能。

以下是 MySQL 多表查询的总结,涵盖了常用的连接类型、子查询以及实际应用中的查询示例。


一、连接查询(JOIN)

1.1 INNER JOIN(内连接)

内连接是最常见的连接查询,它只返回两个表中匹配条件的数据。如果某一行在其中一个表中不存在对应的匹配行,那么该行将不会出现在结果集中。

语法

SELECT columns
FROM table1
INNER JOIN table2 ON table1.column = table2.column;

示例
假设有两个表:

  • orders 表(存储订单信息)
  • customers 表(存储客户信息)

我们希望查询每个订单对应的客户信息:

SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

此查询返回订单和客户的匹配结果,仅显示那些在 orders 表中有订单,并且在 customers 表中有对应客户的记录。


1.2 LEFT JOIN(左连接)

左连接返回左表中的所有行,即使右表中没有匹配的数据,右表中的数据为空(NULL)。

语法

SELECT columns
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;

示例
我们希望查询所有订单,包括那些没有匹配到客户的订单:

SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id;

此查询会显示所有订单,即使某些订单的客户信息缺失。


1.3 RIGHT JOIN(右连接)

右连接与左连接相反,它返回右表中的所有行,即使左表中没有匹配的数据。

语法

SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;

示例
我们希望查询所有客户,包括那些没有下订单的客户:

SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;

此查询会显示所有客户信息,包含那些没有订单的客户。


1.4 FULL JOIN(全连接)

全连接返回两个表中的所有行,不论是否匹配。MySQL 本身不直接支持 FULL JOIN,但可以通过使用 UNION 结合 LEFT JOINRIGHT JOIN 来实现全连接。

语法

SELECT columns
FROM table1
LEFT JOIN table2 ON table1.column = table2.column
UNION
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;

示例
返回所有客户和订单,不论是否有匹配关系:

SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id
UNION
SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;

1.5 CROSS JOIN(交叉连接)

交叉连接会返回两个表的笛卡尔积,即每一个表中的行都和另一个表中的每一行进行组合,不考虑是否有匹配条件。

语法

SELECT columns
FROM table1
CROSS JOIN table2;

示例
查询所有产品与所有订单的组合:

SELECT products.product_name, orders.order_id
FROM products
CROSS JOIN orders;

此查询返回所有产品和订单的每一种组合。


二、子查询(Subquery)

2.1 单行子查询

单行子查询返回一行数据,常用于条件判断。

语法

SELECT columns
FROM table
WHERE column = (SELECT value FROM other_table WHERE condition);

示例
查询下单次数最多的客户信息:

SELECT * 
FROM customers 
WHERE customer_id = (SELECT customer_id 
                     FROM orders 
                     GROUP BY customer_id 
                     ORDER BY COUNT(*) DESC LIMIT 1);

2.2 多行子查询

多行子查询返回多行数据,常与 INANYALL 等关键字一起使用。

语法

SELECT columns
FROM table
WHERE column IN (SELECT column FROM other_table WHERE condition);

示例
查询下过订单的所有客户信息:

SELECT * 
FROM customers 
WHERE customer_id IN (SELECT customer_id FROM orders);

2.3 相关子查询

相关子查询是指子查询依赖于外部查询的值。与普通子查询不同,它在外部查询的每一行执行一次。

语法

SELECT columns
FROM table1 AS t1
WHERE column = (SELECT value FROM table2 AS t2 WHERE t1.column = t2.column);

示例
查询订单金额大于所有该客户历史订单平均金额的订单:

SELECT order_id, order_total
FROM orders AS o1
WHERE order_total > (SELECT AVG(order_total)
                     FROM orders AS o2
                     WHERE o1.customer_id = o2.customer_id);

三、联合查询(UNION)

UNION 用于合并两个或多个 SELECT 查询的结果。每个查询的列数和数据类型必须匹配。

语法

SELECT columns FROM table1
UNION
SELECT columns FROM table2;

示例
查询所有客户和供应商的名称(假设有 customerssuppliers 表):

SELECT customer_name AS name FROM customers
UNION
SELECT supplier_name AS name FROM suppliers;

注意

  • UNION 默认去重,可以使用 UNION ALL 显示所有结果,包括重复项。

四、总结

  1. 内连接(INNER JOIN) 是最常用的多表查询方式,只返回两个表之间匹配的数据。用于查找共有信息。
  2. 左连接(LEFT JOIN)右连接(RIGHT JOIN) 用于在查询中保留一方表的所有数据,即使另一方没有匹配数据。
  3. 全连接(FULL JOIN) 可以通过 UNION 来模拟,它返回两个表中的所有数据,不论是否有匹配项。
  4. 交叉连接(CROSS JOIN) 用于生成笛卡尔积,慎用。
  5. 子查询(Subquery) 用于嵌套查询,单行子查询和多行子查询在复杂查询中非常有用。
  6. 联合查询(UNION) 合并多个查询的结果集,但需要保证各查询的列数和类型相同。

通过理解这些查询方式,开发者能够轻松地处理多表数据操作,实现复杂业务逻辑。

1.3 PC 上的 MySQL 安装

在 PC(Windows 或 macOS)上安装 MySQL,可以通过 MySQL 官网下载合适版本:

  • MySQL 官方下载页面

下载完成后按照安装向导安装,并根据需求设置用户名和密码。


2. PostgreSQL

PostgreSQL 是一个高扩展性和标准化的关系型数据库,支持复杂的数据类型和查询,常用于金融、GIS等高要求的数据处理场景。

2.1 CentOS 7 安装 PostgreSQL
  1. 添加 PostgreSQL 仓库

    sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-centos10-10-2.noarch.rpm
    
  2. 安装 PostgreSQL

    sudo yum install -y postgresql10-server postgresql10
    
  3. 初始化数据库并启动

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
    sudo systemctl start postgresql-10
    sudo systemctl enable postgresql-10
    
2.2 PostgreSQL 开发使用
  1. 创建用户和数据库

    sudo -u postgres psql
    

    psql 中:

    CREATE USER devuser WITH PASSWORD 'devpassword';
    CREATE DATABASE devdb OWNER devuser;
    GRANT ALL PRIVILEGES ON DATABASE devdb TO devuser;
    
  2. 表和数据操作

    \c devdb;
    CREATE TABLE products (
        id SERIAL PRIMARY KEY,
        name VARCHAR(100),
        price NUMERIC(12, 2)
    );
    INSERT INTO products (name, price) VALUES ('Laptop', 999.99);
    SELECT * FROM products;
    
  3. 高级操作:复杂查询与函数

    • 窗口函数
      SELECT name, price, RANK() OVER (ORDER BY price DESC) FROM products;
      
    • 自定义函数
      CREATE FUNCTION calculate_discount(price NUMERIC) RETURNS NUMERIC AS $$
      BEGIN
          RETURN price * 0.9;
      END;
      $$ LANGUAGE plpgsql;
      

  1. MySQLPostgreSQL 是关系型数据库,适合复杂事务和查询的场景。MySQL 更加简便,PostgreSQL 更加标准化和强大

三、非关系型数据库

1. MongoDB

MongoDB 是一种文档型的 NoSQL 数据库,使用 JSON 风格的 BSON 文档存储数据,常用于海量数据存储和实时分析场景。

1.1 CentOS 7 安装 MongoDB
  1. 添加 MongoDB 仓库

    cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.4.repo
    [mongodb-org-4.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
    EOF
    
  2. 安装 MongoDB

    sudo yum install -y mongodb-org
    
  3. 启动 MongoDB

    sudo systemctl start mongod
    sudo systemctl enable mongod
    
1.2 MongoDB 开发使用
  1. 连接 MongoDB

    mongo
    
  2. 创建数据库与集合

    use mydb;
    db.createCollection("users");
    db.users.insert({ name: "Alice", age: 25, email: "alice@example.com" });
    
  3. 查询数据

    db.users.find();
    
  4. 高级操作:索引与聚合

    • 创建索引
      db.users.createIndex({ email: 1 });
      
    • 聚合操作
      db.users.aggregate([
        { $match: { age: { $gt: 20 } } },
        { $group: { _id: null, avgAge: { $avg: "$age" } } }
      ]);
      

2. Redis

Redis 是一种基于内存的键值存储数据库,广泛用于缓存、消息队列等需要高性能的场景。

2.1 CentOS 7 安装 Redis
  1. 安装 EPEL 仓库

    sudo yum install epel-release -y
    
  2. 安装 Redis

    sudo yum install redis -y
    
  3. 启动 Redis

    sudo systemctl start redis
    sudo systemctl enable redis
    
2.2 Redis 开发使用
  1. 连接 Redis

    redis-cli
    
  2. 基本操作

    SET user:1 "Alice"
    GET user:1
    
  3. 高级操作:集合与发布订阅

    • 集合操作
      SADD myset "item1" "item2" "item3"
      SMEMBERS myset
      
    • 发布订阅
      SUBSCRIBE mychannel
      PUBLISH mychannel "Hello, Redis!"
      

连接工具

在 CentOS 7 环境中,安装好 MySQL、PostgreSQL、MongoDB 和 Redis 后,可以使用图形化界面工具和命令行工具连接和管理数据库。以下是常用的数据库连接工具介绍,以及它们在不同操作系统下的安装方式。

1. MySQL

常用连接工具
  • MySQL Workbench: 官方提供的图形化管理工具,支持查询、设计和管理 MySQL 数据库。
  • DBeaver: 一款跨平台数据库管理工具,支持多种数据库,包括 MySQL。
  • HeidiSQL: 轻量级的 MySQL 图形化管理工具。
安装和使用
  • MySQL Workbench

    • Windows 和 macOS 可以直接从 MySQL Workbench 官方网站 下载并安装。
    • CentOS 安装:
      sudo yum install mysql-workbench
      
  • DBeaver

    • DBeaver 在 官方页面 提供下载包,支持多平台。
    • CentOS 安装:
      1. 下载 DBeaver 的 RPM 包:
        wget https://dbeaver.io/files/dbeaver-ce-latest-stable.x86_64.rpm
        
      2. 安装 DBeaver:
        sudo yum install -y ./dbeaver-ce-latest-stable.x86_64.rpm
        
  • HeidiSQL(仅支持 Windows):

    • HeidiSQL 官方网站 提供下载,Windows 用户可以直接安装并连接 MySQL。
连接示例
  1. 打开 MySQL Workbench 或 DBeaver。
  2. 选择 “New Connection”。
  3. 输入以下连接信息:
    • Host: localhost(或远程服务器的 IP 地址)
    • Port: 3306
    • Username: root
    • Password: 你设置的密码
    • Database: mydb(可选)

2. PostgreSQL

常用连接工具
  • pgAdmin: 官方提供的图形化管理工具,支持查询、设计和管理 PostgreSQL 数据库。
  • DBeaver: 同样支持 PostgreSQL。
安装和使用
  • pgAdmin

    • Windows 和 macOS 用户可以从 pgAdmin 官方网站 下载。
    • CentOS 安装:
      1. 安装 EPEL 仓库:
        sudo yum install -y epel-release
        
      2. 安装 pgAdmin 4:
        sudo yum install -y pgadmin4
        
  • DBeaver:如上所述,DBeaver 支持 PostgreSQL。

连接示例
  1. 打开 pgAdmin 或 DBeaver。
  2. 创建一个新连接,输入以下信息:
    • Host: localhost(或远程服务器的 IP 地址)
    • Port: 5432
    • Username: postgres(或创建的用户)
    • Password: 对应用户密码
    • Database: mydb(可选)

3. MongoDB

常用连接工具
  • MongoDB Compass: MongoDB 官方提供的图形化工具,支持管理和查询 MongoDB 数据。
  • Robo 3T: 轻量级的 MongoDB 管理工具。
安装和使用
  • MongoDB Compass

    • 从 MongoDB 官方网站 下载适用于你的系统的 Compass 版本。
    • CentOS 安装:
      1. 下载 MongoDB Compass:
        wget https://downloads.mongodb.com/compass/mongodb-compass-1.33.1.x86_64.rpm
        
      2. 安装 Compass:
        sudo yum install -y ./mongodb-compass-1.33.1.x86_64.rpm
        
  • Robo 3T

    • 可以从 Robo 3T 官方网站 下载适合平台的版本。
连接示例
  1. 打开 MongoDB Compass 或 Robo 3T。
  2. 输入以下连接信息:
    • Host: localhost
    • Port: 27017
    • Authentication: 使用你设置的用户名和密码(如果启用了身份验证)
    • Database: mydb(可选)

4. Redis

常用连接工具
  • RedisInsight: Redis 官方提供的图形化管理工具,支持 Redis 查询和数据管理。
  • Another Redis Desktop Manager (RDM): 跨平台的 Redis 管理工具。
安装和使用
  • RedisInsight

    • 从 RedisInsight 官方网站 下载并安装适合平台的版本。
  • Another Redis Desktop Manager (RDM)

    • 从 RDM 官方网站 下载适合的平台安装包。
连接示例
  1. 打开 RedisInsight 或 RDM。
  2. 新建一个 Redis 连接,输入以下信息:
    • Host: localhost(或远程 Redis 服务器的 IP 地址)
    • Port: 6379
    • Password: 如果 Redis 设置了密码,请填写,否则留空。

总结

  • MySQL:可使用 MySQL Workbench、DBeaver、HeidiSQL 等工具。
  • PostgreSQL:可使用 pgAdmin、DBeaver 等工具。
  • MongoDB:可使用 MongoDB Compass、Robo 3T 等工具。
  • Redis:可使用 RedisInsight、RDM 等工具。

这些工具提供了方便的图形界面,帮助开发者可视化管理数据库,执行查询,并进行调试和优化。

Elasticsearch

Elasticsearch 是一款开源的分布式搜索引擎,专为全文搜索、结构化数据搜索和分析而设计。它属于 NoSQL 数据库范畴,但其主要用途是搜索和分析大规模的文本和数据。Elasticsearch 具有高扩展性、实时搜索和分布式架构等特点,被广泛应用于日志分析、搜索引擎、推荐系统等场景。

以下是 Elasticsearch 从安装到开发的全流程总结,适用于 CentOS 7 服务器和本地开发环境。


一、Elasticsearch 概述

1. 特性:

  • 全文搜索:能够在海量文档中进行快速的全文搜索。
  • 分布式架构:内置分片和副本机制,可以轻松扩展到数千个节点。
  • 实时分析:通过 Kibana、Logstash 等工具进行实时的数据分析。
  • 多租户支持:可以处理多种类型的数据,并针对不同的数据类型进行索引和查询。

2. 典型使用场景:

  • 日志分析:通过 Elasticsearch、Logstash 和 Kibana(即 ELK Stack)构建实时日志分析平台。
  • 全文检索:在大型文档集内进行关键词搜索,如电子商务网站的产品搜索。
  • 监控与报警:与 Beats 或其他数据采集工具结合,用于监控系统的各类指标数据并触发报警。

二、Elasticsearch 安装(CentOS 7)

1. 添加 Elasticsearch 仓库

首先,确保 CentOS 7 已经安装 wget,并添加 Elasticsearch 的 yum 源。

sudo yum install -y wget
sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-x86_64.rpm
sudo rpm --install elasticsearch-7.10.0-x86_64.rpm

2. 配置 Elasticsearch

Elasticsearch 的配置文件位于 /etc/elasticsearch/elasticsearch.yml,你可以通过编辑该文件进行设置:

sudo vi /etc/elasticsearch/elasticsearch.yml

一些重要的配置项:

  • 集群名称:定义集群的名字,如 cluster.name: my-cluster
  • 节点名称:配置节点的名称,如 node.name: node-1
  • 网络绑定:配置 Elasticsearch 可以监听的地址,如 network.host: 0.0.0.0 以允许外部访问。

3. 启动和设置自启

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

4. 验证 Elasticsearch 运行状态

你可以通过 HTTP 请求验证 Elasticsearch 是否成功启动:

curl -X GET "localhost:9200/"

若一切正常,将返回 Elasticsearch 的基本信息,如版本号等。


三、Elasticsearch 核心概念

1. 索引(Index)

  • Elasticsearch 中的数据存储在索引(类似于关系型数据库中的数据库)中。
  • 每个索引都有多个文档,并且每个文档都有一组字段,类似于关系型数据库的表和行。

2. 文档(Document)

  • 文档是 Elasticsearch 中最基本的数据单位,每个文档可以理解为一条 JSON 格式的数据。

3. 分片与副本(Shard & Replica)

  • 分片:数据被水平切分到多个分片中,使得 Elasticsearch 能够水平扩展。
  • 副本:每个分片有多个副本,以确保数据的高可用性。

四、Elasticsearch 开发使用

1. 插入数据(Indexing)

可以通过 POST 请求将文档插入 Elasticsearch 索引。

curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{
  "name": "Alice",
  "age": 30,
  "city": "New York"
}'

该命令会在 my_index 索引中插入一条文档,ID 为 1。

2. 查询数据(Searching)

使用 GET 请求来查询数据。

  • 简单查询

    curl -X GET "localhost:9200/my_index/_search?q=name:Alice"
    
  • 复杂查询
    使用 POST 请求可以进行更复杂的查询,如多字段匹配:

    curl -X POST "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
    {
      "query": {
        "bool": {
          "must": [
            { "match": { "name": "Alice" } },
            { "range": { "age": { "gte": 25 } } }
          ]
        }
      }
    }'
    

3. 更新数据(Updating)

使用 POST 请求可以更新已有文档中的数据。

curl -X POST "localhost:9200/my_index/_update/1" -H 'Content-Type: application/json' -d'
{
  "doc": {
    "age": 31
  }
}'

4. 删除数据(Deleting)

使用 DELETE 请求可以删除索引或文档。

  • 删除文档:

    curl -X DELETE "localhost:9200/my_index/_doc/1"
    
  • 删除整个索引:

    curl -X DELETE "localhost:9200/my_index"
    

五、Elasticsearch 高级操作

1. 索引映射(Index Mapping)

在 Elasticsearch 中,映射(mapping)定义了字段的数据类型以及如何处理这些字段。例如,可以将 age 字段设置为整数类型。

curl -X PUT "localhost:9200/my_index" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "properties": {
      "name": { "type": "text" },
      "age": { "type": "integer" },
      "city": { "type": "keyword" }
    }
  }
}'

2. 聚合查询(Aggregation)

Elasticsearch 强大的聚合功能允许对数据进行分组和统计。以下示例展示了按城市进行分组,并计算每个城市的用户数量。

curl -X POST "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
  "size": 0,
  "aggs": {
    "group_by_city": {
      "terms": { "field": "city.keyword" }
    }
  }
}'

3. 分片与集群管理

在生产环境中,Elasticsearch 通常运行在集群模式下,多个节点组成集群。通过分片和副本配置,可以管理和扩展集群容量。

  • 查看分片状态:

    curl -X GET "localhost:9200/_cat/shards"
    
  • 动态调整副本数:

    curl -X PUT "localhost:9200/my_index/_settings" -H 'Content-Type: application/json' -d'
    {
      "index": {
        "number_of_replicas": 2
      }
    }'
    

六、Elasticsearch 可视化工具:Kibana

为了更方便地管理和分析 Elasticsearch 中的数据,可以使用 Kibana,它是 Elastic Stack 的一部分,主要用于数据可视化。

1. 安装 Kibana

sudo yum install kibana -y
sudo systemctl start kibana
sudo systemctl enable kibana

Kibana 启动后,默认通过 http://localhost:5601 访问。你可以通过 Kibana 的图形界面来进行数据分析和可视化。


七、总结

  1. Elasticsearch 是一种非常适合全文搜索和实时数据分析的分布式搜索引擎,特别适合处理大规模的非结构化数据。
  2. 它支持分布式架构实时搜索高扩展性等特点,是构建搜索引擎和日志分析系统的理想选择。
  3. 通过结合 KibanaLogstash 等工具,能够轻松构建一个功能强大的数据处理与分析平台。

http://www.kler.cn/news/354209.html

相关文章:

  • 蛋白质残基的距离计算以及径向基函数变换中的维度变化
  • 第21~22周Java主流框架入门-Spring 2.SpringAOP面向切面编程
  • 潜水定位通信系统的功能和使用方法_鼎跃安全
  • SpringBoot+Vue+Uniapp智能社区服务小程序系统(源码+lw+部署文档+讲解等)
  • 前缀和--一维和二维模板
  • 【MySQL】索引的机制、使用
  • 机器学习—特性缩放
  • 执行 start.sh 脚本时打开一个单独的运行窗口
  • pdf内容三张以上转图片,使用spire.pdf.free
  • 【选择C++游戏开发技术】
  • 自动驾驶TPM技术杂谈 ———— 惯性导航定位技术
  • 速盾:高防 cdn 提供 cc 防护?
  • 双回路防静电监控仪安全保护生产全流程
  • Linux基础项目开发day2:量产工具——输入系统
  • 【存储设备专栏 2.6 -- linux 启动盘制作详细介绍】
  • Vert.x,Web - Restful API
  • 记EDU某人社局的漏洞挖掘复盘
  • 四种隔离级别是如何逐步加强事务隔离的,以及在底层如何使用锁机制和多版本控制(MVCC)来实现
  • HCIP--1
  • 新媒体优势