第一部分:基础知识 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 TRANSACTION
、COMMIT
和ROLLBACK
语句来管理事务。
5. 数据定义和控制
- 数据定义语言 (DDL):用于创建、修改和删除数据库对象(如表、视图、索引等)。常见的DDL语句包括
CREATE
、ALTER
和DROP
。 - 数据控制语言 (DCL):用于管理数据库的安全性和权限。常见的DCL语句包括
GRANT
和REVOKE
。
6. 多表操作
- 连接 (JOIN):通过
JOIN
操作可以将多个表中的数据合并在一起,实现复杂的数据关联。 - 子查询:可以在一个查询内部嵌套另一个查询,以实现更复杂的数据处理逻辑。
7. 聚合函数和分组
- 聚合函数:如
COUNT
、SUM
、AVG
、MAX
和MIN
,用于对数据进行统计和汇总。 - 分组:使用
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
列是主键,并且自动递增。FirstName
和LastName
是必填字段 (NOT NULL
)。Birt
原文地址:https://blog.csdn.net/weixin_42478311/article/details/144190396
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!