自学内容网 自学内容网

第一部分:基础知识 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)。
  • Birt

原文地址:https://blog.csdn.net/weixin_42478311/article/details/144190396

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!