SQL 基础语法详解
SQL 命令一般分为 DQL、DML、DDL
DQL:数据查询语句,基本就是 SELECT 查询命令,用于数据查询
DML:Data Manipulation Language 的简称,即数据操纵语言,主要用于插入、更新、删除数据,所以也分为 INSERT、UPDATE、DELETE 三种语句。
DDL:Data Definition Language 的缩写,即数据定义语言,主要用于创建、删除,以及修改表、索引等数据库对象语言
⚠️
1. 显示列的类型 "character varying(40)" 实际上与 "varchar(40)" 的意思是完全一样的, "int" 与 "integer" 的意思也是一样的。
2. 建表的时候,指定主键后,系统会为主键自动创建一个隐含的索引。
3. varchar(n) 和 char(n) 分别是 character varying(n) 和 character(n) 的别名,没有声明长度的 character 等于 character(1) 。如果使用 character varying 时不带长度说明词,那么该类型接受任何长度的字符串。不带长度是 PostgreSQL 的扩展,其他数据库一般不能这样使用。大多数情况下,应该使用 text 或 varchar。
表 join
表 join 也称为多表关联查询,如:
SELECT student_name, class_name FROM student a, class b
WHERE a.class_no = b.no;
INSERT INTO...SELECT 语句
使用 INSERT INTO...SELECT 语句可以把数据从一张表插入到另一张表中,这个语句属于 DML 语句。
可以使用下面的语句把数据备份到下面这张备份表中:
INSERT INTO student_bak SELECT * FROM student;
UNION 语句
可以将两张表的数据整合在一个结果集中,如
SELECT * FROM student WHERE no = 1
UNION
SELECT * FROM student_bak WHERE no = 2;
注意,UNION 可以把结果集中相同的两条记录合并成一条,如果不想合并,可以使用 UNION ALL
TRUNCATE TABLE 语句
效果和不带 WHERE 条件子句的 DELETE 语句也表示清空表的内容一样,但是两者实现的原理是不一样的。
TRUNCATE TABLE 是 DDL 语句,相当于重新定义一个新表的方法,把原先的表的内容直接丢弃了,所以执行起来很快,而 DELETE 是 DML 语句,可以认为 DELETE 是把数据一条一条地删除,若要删除很多行数据,就会比较慢。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构