【Mysql】万字长文带你快速掌握数据库基础概念及SQL基本操作
文章目录
- 前言
- 发现宝藏
- 一、数据库相关概念
- 1. 什么是数据库
- 2. 数据库的种类
- 3. Mysql 简介
- 4. SQL简介
- 5. 数据库中常见的数据类型
- 二、SQL基础
- 1. SQL通用语法
- 2. SQL的主要分类
- 3. DDL(数据库,表,索引,视图)
- 4. DML(数据的插入,更新,删除)
- 5. DQL(数据查询)
- 6. DCL(数据访问权限控制)
- 三、SQL入门案例
- 1. DDL入门案例
- 2. DML入门案例
- 3. DQL入门案例
- 4. DCL入门案例
- ���结
前言
为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)
发现宝藏
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。
一、数据库相关概念
1. 什么是数据库
数据库是指一组相互关联的数据集合,它们以一定的方式组织、存储和管理,以方便数据的查找、访问和管理。在计算机科学中,数据库是一种用于存储和管理数据的软件系统,它支持数据的创建、读取、更新和删除操作
2. 数据库的种类
- 常见的数据库种类包括关系型数据库和非关系型数据库
- 关系型数据库是指使用关系模型来组织和管理数据的数据库。关系模型是一种基于表的数据模型,其中每个表代表一种实体类型,而每个行代表一个实体实例。关系型数据库使用结构化查询语言(SQL)来管理和操作数据。常见的关系型数据库包括MySQL、Oracle 和 SQL Server 等
- 非关系型数据库是指不使用关系模型来组织和管理数据的数据库。它们使用不同的数据模型和查询语言来管理和操作数据。非关系型数据库通常用于处理大量非结构化数据,例如文本、图像和音频等。常见的非关系型数据库包括MongoDB、Redis和Cassandra等
3. Mysql 简介
1. 认识Mysql
MySQL是一种开源的关系型数据库管理系统(RDBMS),它是目前最流行和广泛使用的数据库之一。 MySQL以其高性能、可靠性和易用性而闻名,并被广泛应用于各种规模的应用程序和网站
2. MySQL的特点和功能
- 开源性:MySQL是开源软件,可以免费获得并进行修改和定制。这使得它非常适合个人开发者和小型企业
- 跨平台:MySQL可在多个操作系统上运行,包括Windows、Linux、macOS等,提供了广泛的平台支持
- 高性能:MySQL通过优化的查询处理、索引机制和缓存策略等技术,提供了出色的性能和响应速度。它能够处理大规模数据集和高并发访问
- 可扩展性:MySQL支持水平和垂直扩展,可以根据需求轻松地扩展数据库的容量和性能
- 完整的功能集:MySQL支持标准的SQL查询语言,具有丰富的特性和功能,包括事务支持、触发器、存储过程、复制和高可用性选项等
- 数据安全:MySQL提供了强大的安全机制,包括用户认证、权限管理、数据加密和安全连接等,以保护数据的机密性和完整性
- 大型社区支持:MySQL拥有庞大的开源社区,提供了丰富的文档、教程和支持资源。开发者可以从社区中获取帮助、分享经验和解决问题
总体而言,MySQL是一种可靠、高性能且易于使用的关系型数据库管理系统。无论是用于小型网站、企业应用还是大规模数据处理,MySQL都提供了强大的功能和灵活的解决方案。它是许多开发人员和组织构建可靠数据库应用程序的首选工具之一
4. SQL简介
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准化查询语言。 SQL由美国国家标准学会(ANSI)和国际标准化组织(ISO)制定并标准化,它定义了一组操作关系型数据库的语法和语义规则。SQL被广泛应用于各种类型的应用程序和网站,并成为了处理和管理数据的标准方式
5. 数据库中常见的数据类型
- 在DDL(数据定义语言)中,您可以使用不同的数据类型来定义表中的列。不同的数据库管理系统(DBMS)支持的数据类型可能会有所不同,以下是一些常见的DDL表操作数据类型示例:
数据类型 示例 整数类型 INT(整数)、BIGINT(大整数)、SMALLINT(小整数)、TINYINT(微小整数) 浮点数类型 FLOAT(浮点数)、DOUBLE(双精度浮点数)、DECIMAL(固定精度的十进制数) 字符串类型 CHAR(n)(固定长度的字符)、VARCHAR(n)(可变长度的字符)、TEXT(长文本) 日期和时间类型 DATE(日期)、TIME(时间)、DATETIME(日期和时间)、TIMESTAMP(时间戳) 布尔类型 BOOLEAN(布尔值) 二进制类型 BLOB(二进制大对象)、BINARY(二进制数据)、VARBINARY(可变长度的二进制数据) 其他特殊类型 ENUM(枚举类型,限定为预定义的值列表)、SET(集合类型,限定为预定义的值集合) 这些是一些常见的数据类型示例,实际上不同的DBMS可能还支持其他的数据类型或拥有特定的数据类型命名约定。在创建表时,您可以根据需要选择适当的数据类型来定义表中的列。确保根据数据的特性和需求选择正确的数据类型,以确保数据的准确性和一致性。
二、SQL基础
1. SQL通用语法
- SQL语句可以单行或多行书写,以分号结尾
- SQL语句可以使用空格/缩进来增强语句的可读性
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
- 注释
---- 单行注释 : - - 注释内容 或 # 注释内容(MySQL特有)
---- 多行注释 : /注释内容/
2. SQL的主要分类
分类 全称 说明 DDL Data Definition Language 数据定义语言用来定义数据库对象(数据库,表,字段) DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改 DOL Data Querv Language 数据查询语言,用来查询数据库中表的记录 DCL Data ControlLanguage 数据控制语言,用来创建数据库用户、控制数据库的访问权限 3. DDL(数据库,表,索引,视图)
在关系型数据库中,DDL(数据定义语言)扮演着至关重要的角色。DDL是一组用于定义数据库结构和模式的SQL命令,它使我们能够创建、修改和删除数据库对象,如表、视图和索引
1. DDL – 数据库操作
- 创建数据库(CRFATE DATABASE [ IF NOT EXISTS ] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则]):例如,示例命令语句创建了一个名为"my_database"的数据库。
CREATE DATABASE my_database;
- 删除数据库(DROP DATABASE),例如,示例命令语句删除了名为"my_database"的数据库。
DROP DATABASE my_database;
-
查询所有数据库(SHOW DATABASES)
-
查询当前数据库 (SELECT DATABASE)
-
使用数据库 (USE 数据库名)
2. DDL – 表操作
- 创建表(CREATE TABLE):创建表是数据库设计的第一步。使用CREATE TABLE语句可以定义表的名称、列名和数据类型。例如,下面的语句创建了一个名为"users"的表,包含id、name和age三个列:
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), age INT );
- 查询表
- 查询当前数据库所有表
SHOW TABLES
- 查询表结构
DESC 表名
- 查询指定表的建袭语句
SHOW CREATE TABLE 表名
- 修改表结构(ALTER TABLE):在数据库使用过程中,可能需要修改表的结构,例如添加新列、更改列的数据类型或删除列。ALTER TABLE语句用于这些操作。下面是一些示例
- 添加新列:
ALTER TABLE users ADD email VARCHAR(100);
- 修改列的数据类型
ALTER TABLE Customers ADD COLUMN phone_number VARCHAR(20);
- 删除列
ALTER TABLE users DROP COLUMN email;
- 删除表(DROP TABLE):如果不再需要某个表,可以使用DROP TABLE语句将其从数据库中删除。请谨慎使用该命令,因为删除表将同时删除表中的所有数据。示例如下
DROP TABLE users;
3. 创建索引(CREATE INDEX)
索引可以提高对表中数据的检索效率。 使用 CREATE INDEX 语句可以在表的列上创建索引。例如,以下命令在"users"表的"name"列上创建了一个索引
CREATE INDEX idx_users_name ON users (name);
4. 创建视图(CREATE VIEW)
视图是基于表的虚拟表,它是通过SELECT语句定义的。 使用 CREATE VIEW 语句可以创建视图。例如,以下命令创建了一个名为"active_users"的视图,该视图包含所有"users"表中状态为"active"的行
CREATE VIEW active_users AS SELECT * FROM users WHERE status = 'active';
4. DML(数据的插入,更新,删除)
1. 认识DML
在关系型数据库中,DML(数据操纵语言)是一组用于操作数据库中数据的SQL命令。DML允许我们对表中的数据进行插入、更新、删除和查询操作,是SQL中最常用的部分之一
2. 插入数据(INSERT)
插入数据是向表中添加新行的操作。使用INSERT语句可以将数据插入到表中的特定列。 例如,下面的语句将一条新记录插入到名为"users"的表中
INSERT INTO users (name, age, email) VALUES ('John Doe', 25, 'johndoe@example.com');
- 给指定字段添加数据
- 语法格式 :INSERT INTO 表名(字段名1, 字段名2,…) VALUES (值1,值2,…);
- 给全部字段添加数据
语法格式:INSERT INTO 表名 VALUES (值1, 值2, …);
- 批量添加数据
语法格式:
- INSERTINTO 表名(字段名1, 字段名2, …) VALUES(值1,值2,…), (值1,值2,…),(值1, 值2,…);
- INSERTINTO 表名 VALUES (值1, 值2,…),(值1, 值2, …),(值1,值2,…) ;
- 注意事项
- 插入数据时,指定的字段顺序需要与值的顺序是一一对应的
- 字符串和日期型数据应该包含在引号中
- 插入的数据大小,应该在字段的规定范围内
3. 更新数据(UPDATE)
更新数据是修改表中现有行的操作。使用UPDATE语句可以更改表中的数据。 例如,下面的语句将名为"John Doe"的用户年龄更新为30
UPDATE users SET age = 30 WHERE name = 'John Doe';
- 一般格式
- 语法格式:UPDATE 表名 SET 字段名1 = 值1,字段名2= 值2,…[ WHERE 条件];
- 注意事项
修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据
4. 删除数据(DELETE)
删除数据是从表中删除行的操作。使用DELETE语句可以删除满足特定条件的行。 例如,下面的语句将删除名为"John Doe"的用户
DELETE FROM users WHERE name = 'John Doe';
- 一般格式
- 语法格式:DELETE FROM 表名[WHERE 条件]
- 注意事项
- DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据
- DELETE 语句不能删除某一个字段的值(可以使用UPDATE)。
5. DQL(数据查询)
1. 认识DQL
在关系型数据库中,DQL(数据查询语言)是一组用于从数据库中检索数据的SQL命令。DQL允许我们以各种条件和方式查询表中的数据,获取所需的结果
2. 基本查询(SELECT)
- 查询多个字段
语法格式
- SELECT 字段1,字段2, 字段3 … FROM 表名)
- SELECT*FROM 表名:
SELECT * FROM users;
基本查询是最常见的DQL操作,用于从表中检索数据。 使用SELECT语句可以选择列和行,从而获取所需的数据。例如,上面的语句将检索名为"users"的所有行和列
- 设置别名
语法格式:SELECT 字段1 [AS 别名1],字段2 [AS 别名2] … FROM 表名
- 去除重复记录
语法格式:SELECT DISTINCT 字段列表 FROM 表名
3. 条件查询(WHERE)
条件查询允许我们根据指定的条件检索符合条件的数据。 使用WHERE子句可以过滤查询结果。例如,下面的语句将检索名为"John Doe"的用户信息
SELECT * FROM users WHERE name = 'John Doe';
- 一般格式
语法格式:SELECT 字段列表 FROM 表名 WHERE 条件列表
- 条件列表
比较运算符 功能 > 大于 >= 大于等于
- 条件列表
- 一般格式
- 去除重复记录
- 一般格式
- 批量添加数据
- 给指定字段添加数据
- 查询表
- 创建表(CREATE TABLE):创建表是数据库设计的第一步。使用CREATE TABLE语句可以定义表的名称、列名和数据类型。例如,下面的语句创建了一个名为"users"的表,包含id、name和age三个列:
-
- 删除数据库(DROP DATABASE),例如,示例命令语句删除了名为"my_database"的数据库。
- 在DDL(数据定义语言)中,您可以使用不同的数据类型来定义表中的列。不同的数据库管理系统(DBMS)支持的数据类型可能会有所不同,以下是一些常见的DDL表操作数据类型示例: