首页 > 数据库 >SQL 详解数据库

SQL 详解数据库

时间:2025-01-14 12:01:48浏览次数:3  
标签:name 示例 students 数据库 SQL 详解 表名 WHERE SELECT

SQL(Structured Query Language,结构化查询语言)是一种专门用于与关系型数据库进行交互的标准化语言。它可以用于查询、更新和管理数据库中的数据,以及定义和控制数据库的结构。

以下是 SQL 的主要功能模块及其详解:


1. 数据查询 (Data Query)

1.1 SELECT 语句

用于从数据库中检索数据,是 SQL 最常用的语句。

基本语法:        SELECT 列名 FROM 表名 WHERE 条件;

示例:SELECT name, age FROM students WHERE age > 18;

关键子句:

  • WHERE:条件过滤。
  • ORDER BY:排序。
    SELECT name, age FROM students ORDER BY age DESC; 

GROUP BY:分组。 

SELECT department, COUNT(*) FROM employees GROUP BY department;
HAVING:分组后的条件过滤。

SELECT department, AVG(salary) 
FROM employees 
GROUP BY department 
HAVING AVG(salary) > 5000;

LIMIT:限制返回记录数量。

SELECT * FROM students LIMIT 10;
        

2. 数据操作 (Data Manipulation)

2.1 INSERT 语句

用于向表中插入数据。

基本语法:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
示例:INSERT INTO students (name, age, grade) VALUES ('Alice', 20, 'A');

2.2 UPDATE 语句

用于更新表中的数据。

基本语法:UPDATE 表名 SET 列名 = 新值 WHERE 条件;
示例:UPDATE students SET grade = 'B' WHERE name = 'Alice';

2.3 DELETE 语句        

用于删除表中的数据。

基本语法:DELETE FROM 表名 WHERE 条件;
示例:DELETE FROM students WHERE age < 18;
 

3. 数据定义 (Data Definition)

3.1 CREATE 语句

用于创建数据库和表。

创建数据库:CREATE DATABASE 数据库名;

创建表:

 CREATE TABLE 表名 (
    列名 数据类型 [约束],
    ...
);

示例:

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    age INT,
    grade CHAR(1)
);
 

3.2 ALTER 语句

用于修改表结构。

添加列:ALTER TABLE 表名 ADD 列名 数据类型;

修改列:ALTER TABLE 表名 MODIFY 列名 新数据类型;

删除列:ALTER TABLE 表名 DROP 列名;

3.3 DROP 语句

用于删除数据库或表。

删除表:DROP TABLE 表名;

删除数据库:DROP DATABASE 数据库名;

4. 数据控制 (Data Control)

4.1 GRANT 语句

用于赋予用户权限。

基本语法:GRANT 权限 ON 数据库名.表名 TO '用户名'@'主机';

示例: GRANT SELECT, INSERT ON school.* TO 'user1'@'localhost';

4.2 REVOKE 语句

用于撤销用户权限。

基本语法:REVOKE 权限 ON 数据库名.表名 FROM '用户名'@'主机';

 示例:REVOKE SELECT, INSERT ON school.* FROM 'user1'@'localhost';

5. 事务管理 (Transaction Management)

事务是一组操作的集合,要么全部执行成功,要么全部回滚。

事务控制语句:

  • BEGIN / START TRANSACTION:开始事务。
  • COMMIT:提交事务。
  • ROLLBACK:回滚事务。
  • SAVEPOINT:设置保存点。

示例:

START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
COMMIT;

6. 高级查询

6.1 子查询

嵌套在其他查询中的查询。

示例:SELECT name FROM students WHERE age = (SELECT MAX(age) FROM students);

6.2 联合查询 (UNION)

合并多个查询结果。

示例:

SELECT name FROM students WHERE grade = 'A'
UNION
SELECT name FROM students WHERE age < 18;

6.3 连接 (JOIN)

将多个表中的数据组合起来。

  • INNER JOIN:返回匹配的行。

SELECT employees.name, departments.name 
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;

  • LEFT JOIN:返回左表的所有行,即使没有匹配。
  • RIGHT JOIN:返回右表的所有行。
  • FULL JOIN:返回所有匹配和不匹配的行。

7. 常见 SQL 数据类型

7.1 数值类型

  • INT, FLOAT, DECIMAL

7.2 字符类型

  • CHAR, VARCHAR, TEXT

7.3 日期类型

  • DATE, DATETIME, TIMESTAMP

         

标签:name,示例,students,数据库,SQL,详解,表名,WHERE,SELECT
From: https://blog.csdn.net/2402_86725606/article/details/145135661

相关文章

  • 【向量数据库】搭建RAG架构,如何选择向量数据库产品?
    搭建RAG架构应用时,选择合适的向量数据库是关键。向量数据库是RAG系统的核心组件,负责存储和检索高维向量数据,从而支持高效的语义搜索和信息检索功能。那么今天与大家分享下如何选择向量数据库,以及主流向量数据库产品的推荐,供您参考学习。如何选择向量数据库?性能与延迟:向量数据库......
  • 如何在宝塔面板中修改phpMyAdmin数据库管理端口?
    宝塔面板为了安全考虑,屏蔽了phpMyAdmin默认管理端口888的访问。为了避免数据泄露或更大的损失,您可以通过在宝塔面板中修改端口号来解决这个问题。以下是具体步骤:登录宝塔面板:使用您的管理员账户登录宝塔面板。进入软件商店:在左侧导航栏中点击“软件商店”。找到phpMyAdmin:在已......
  • 如何在宝塔面板中修改 phpMyAdmin 数据库管理端口(默认888)
    phpMyAdmin是一个基于Web的数据库管理工具,允许用户通过浏览器轻松管理和操作MySQL/MariaDB数据库。默认情况下,phpMyAdmin在宝塔面板中的访问端口为888,但出于安全性和其他需求,用户可能需要修改此端口。修改步骤登录宝塔面板使用管理员账户登录到宝塔面板的管理界面。......
  • 如何在宝塔面板中修改 phpMyAdmin 数据库管理端口(默认8888)的方法
    当您希望提高服务器的安全性或避免端口冲突时,修改phpMyAdmin的默认访问端口是一个明智的选择。以下是详细的步骤和注意事项,确保您能够顺利更改端口号,并保证phpMyAdmin的正常运行。修改步骤:登录宝塔面板:使用您的管理员账户登录到宝塔面板。进入软件商店:在左侧导航......
  • 如何在宝塔面板中修改 phpMyAdmin 数据库管理端口(默认888)?
    在宝塔面板中修改phpMyAdmin的管理端口,可以按照以下步骤进行:登录宝塔面板:打开浏览器,访问宝塔面板的登录页面。输入用户名和密码登录。进入软件商店:在左侧菜单中找到并点击“软件商店”。找到phpMyAdmin并点击设置按钮:在已安装的软件列表中找到phpMyAdmin。......
  • pbootcms数据库sqlite转mysql操作流程
    操作并不复杂,如果没有基础,操作之前一定要备份,避免数据损坏第一步:用SQLiteStudio打开db数据库,并导出sql文件第二步:使用专用工具,将导出的sql文件进行处理。第三步:将文件通过数据库管理工具导入第四步:修改数据库配置文件,根据自己IDE数据库信息调整就行。第五步:登录网站......
  • mysql使用count()执行select报错:ERROR 1140 (42000) In aggregated query without GRO
    1原因mysql的sql_mode默认开启了only_full_group_by模式2解决办法2.1命令解决(临时生效)查看sql_modeshowvariableslike'%sql_mode';showsessionvariableslike'%sql_mode';showglobalvariableslike'%sql_mode';修改sql_modesetglobalsql_......
  • 详细分析Mysql中的SQL_MODE基本知识
     一、基础知识sql_mode是MySQL中用于设置sql语法和行为的系统变量;控制MySQL的sql解析和执行的方式,使其与sql标准或其他数据库系统的行为一致,通过设置sql_mode,可以改变MySQL处理待定sql操作的方式。MySQL5.7默认sql_mode包括(7个):1)ONLY_FULL_GROUP_BY;......
  • MySQL之DDL语言
    目录一、数据库的基本操作1、创建数据库语法:示例:2、修改数据库语法:示例:3、删除数据库语法:示例:4、查询数据库语法:5、使用数据库语法:二、数据表的基本操作1、创建数据表语法:示例:2、重命名数据表语法:示例:3、删除数据表语法:示例:4、查询数据表语法:三、表......
  • 3分钟搞懂Arrow Flight SQL,让数据传输提速100倍的秘密
    3分钟搞懂ArrowFlightSQL,让数据传输提速100倍的秘密数据传输提速100倍!如何做到100倍提升?让数据传输起飞!小结此时,数据分析师小华揉着发酸的眼睛,望着电脑屏幕发呆。他忍不住抱怨道:“这数据导出也太慢了吧!”是的,又一次等待MySQL协议传输大批量数据,这感觉像是用吸管......