第一部分:基础知识 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 - GPLCopyright (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

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

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

相关文章

《Clustering Propagation for Universal Medical Image Segmentation》CVPR2024

摘要 这篇论文介绍了S2VNet,这是一个用于医学图像分割的通用框架,它通过切片到体积的传播(Slice-to-Volume propagation)来统一自动(AMIS)和交互式(IMIS)医学图像分割任务。S2VNet利…

源码可运行-PHP注册登录源码,PHP实现登陆后才能访问页面

最近有一个项目需要实现会员注册和页面登陆后才能访问,所以简单的HTML是无法实现的,就必须通过PHP、html和Mysql来实现,先给大家看一下登录和注册页的效果图。(注册完成后会自动跳转到登录窗口,即使A用户登陆后分享了网…

性能测试常见面试问题和答案

一、有没有做过性能测试,具体怎么做的 性能测试是有做过的,不过我们那个项目的性能做得不多,公司要求也不严格。一般SE 给我们相关的性能需求,首先我们需要对性能需求进行场景分析与设计,这里,其实主要就是…

二百七十八、ClickHouse——将本月第一天所在的那一周视为第一周,无论它是从周几开始的,查询某个日期是本月第几周

一、目的 ClickHouse指标表中有个字段week_of_month,含义是这条数据属于本月第几周。 而且将本月第一天所在的那一周视为第一周,无论它是从周几开始的。比如2024-12-01是周日,即12月第一周。而2024-12-02是周一,即12月第二周 二…

【OCR】——端到端文字识别GOT-OCR2.0不香嘛?

代码:https://github.com/Ucas-HaoranWei/GOT-OCR2.0?tabreadme-ov-file 在线demo:https://huggingface.co/spaces/stepfun-ai/GOT_official_online_demo 0.前言 最早做ocr的时候,就在想如何能做一个端到端的模型,就不用先检测再…

AndroidStudio-常见界面控件

一、Button package com.example.review01import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextViewclass Review01Activity : AppCompatActivity() {override fun onCreate(savedInstanceStat…

网络安全中的 SOC 是什么?

当今世界,网络威胁日益增多,确保网络安全已成为各种规模企业的首要任务。网络安全讨论中经常出现的一个术语是 SOC,即安全运营中心的缩写。但网络安全中的 SOC 是什么呢? SOC在防御网络威胁、管理安全事件和全天候监控系统方面发…

智选球员:运用动态规划提升棒球队的签约效益

目录 一、签约棒球自由球员 二、分析和理解 (一)问题背景回顾 (二)目标确定 (三)约束条件分析 (四)明确输出要求 三、动态规划(Dynamic Programming)解…

Lua面向对象实现

Lua中的面向对象是通过表(table)来模拟类实现的,通过setmetatable(table,metatable)方法,将一个表设置为当前表的元表,之后在调用当前表没有的方法或者键时,会再查询元表中的方法和键,以此来实现…

航空美食新升级,光明肉业携手东航食品打造经典辣肉面新篇章

在航空餐饮日益注重品质与创新的大环境下,各大航空公司纷纷在美食领域下功夫,力求为乘客提供更加多元化、高品质的餐饮体验。近日,东航那碗面再次成为行业焦点,其经典辣肉面在光明肉业的助力下实现了“创新”升级,为乘…

在.NET 6中使用Serilog收集日志

此示例的完整详细信息:https://download.csdn.net/download/hefeng_aspnet/89998498 Serilog 是一个日志库,它提供对文件、控制台和其他几个地方的记录。它易于配置,并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择&…

STM32 HAL库开发学习5. 系统滴答定时器

STM32 HAL库开发学习5. 系统滴答定时器 一、滴答定时器概述1. 概述2. 时钟源3. 寄存器(1)控制与状态寄存器 STK_CTRL(2)重载寄存器 STK_LOAD(3)当前值寄存器 STK_VAL 二、HAL库滴答定时器初始化三、SysTick…

智慧零售时代传统供应链的痛点与数字化变革:定制开发 AI 智能名片 S2B2C 商城系统的应用与影响

摘要:本文深入探讨了智慧零售时代传统供应链所面临的痛点,分析了在该时代背景下打通线上线下渠道以及整合资源的关键需求。阐述了传统零售供应链若线上线下渠道独立、数据不流通将导致的库存管理与物流效率问题,并强调其必须进行数字化变革以…

国家信息中心单志广:智慧城市转型中的数据要素价值释放

今日,由中国电信集团主办的2024数字科技生态大会数据要素合作论坛在广州市举办。国家发改委国家信息中心信息化和产业发展部主任单志广在论坛发展主旨演讲:智慧城市转型中的数据要素价值释放,主要包括发展新形势、数据新要素、数据新产权、数…

从零开始使用GOT-OCR2.0——多模态OCR项目:微调数据集构建 + 训练(解决训练报错,成功实验微调训练)

在上一篇文章记录了GOT-OCR项目的环境配置和基于官方模型参数的基础使用。环境安装的博文快速链接: 从零开始使用GOT-OCR2.0——多模态通用型OCR(非常具有潜力的开源OCR项目):项目环境安装配置 测试使用-CSDN博客 本章在环境配置…

【在Linux世界中追寻伟大的One Piece】读者写者问题与读写锁

目录 1 -> 读者写者问题 1.1 -> 什么是读者写者问题 1.2 -> 读者写者与生产消费者的区别 1.3 -> 如何理解读者写者问题 2 -> 读写锁 2.1 -> 读写锁接口 3 -> 读者优先(Reader-Preference) 4 -> 写者优先(Writer-Preference) 1 -> 读者写者…

基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频&#xff09…

vxe-table 键盘操作,设置按键编辑方式,支持覆盖方式与追加方式

vxe-table 全键盘操作,按键编辑方式设置,覆盖方式与追加方式; 通过 keyboard-config.editMode 设置按键编辑方式;支持覆盖方式编辑和追加方式编辑 安装 npm install vxe-pc-ui4.3.15 vxe-table4.9.15// ... import VxeUI from v…

Java设计模式笔记(二)

十四、模版方法模式 1、介绍 1)模板方法模式(Template Method Pattern),又叫模板模式(Template Patern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需重写方法实现,但调用将以抽象类中定义的方式进行。 2&…

ZLMediaKit+wvp (ffmpeg+obs)推拉流测试

这里使用了两种方式: ffmpeg命令和 OBS OBS推流在网上找了些基本没有说明白的, 在ZLMediaKit的issues中看到了一个好大哥的提问在此记录一下 使用OBS推流,rtmp,报鉴权失败 推流 1. ffmpeg命令推流 官方说明文档地址: 推流规则 rtsp://192.168.1.4:10554…