常用SQL语句
写在前面
本文记录对表中数据的操作的基本SQL语句,以对数据库数据操作“增删改查”来覆盖复习SQL语句,对于数据库的创建、删除、和对表的创建、修改、删除不做记录,因为现在这个可以很高效方便的通过图形界面快速完成,所以本文仅仅记录一些数据操作的、逻辑性的数据操作SQL语句——数据的增、删、改、查,其中“查”为重难点,所以写在后面,详细记录。
建立一个简单的表来做实验 ,表中pers为person的简写,persId自动增长
增
增,即向数据表中插入数据或者说添加新的一条记录。
语句 :INSERT INTO ...
语法1:
INSERT INTO 表名称 VALUES (值1, 值2,....)
例子:
1 INSERT INTO person 2 VALUES (1,'张华','男','阅读')
对于这种不在表名后面写出字段(属性)的插入方式,需要在VALUES值中添加所有的字段,包括可null的字段和自动增长的id字段都要添加进去,来看反例:
- 不在values中添加可自动增长的persId:
1 INSERT INTO person 2 VALUES ('小华','男','编程')
- 不在values中添加可null字段
1 INSERT INTO person 2 VALUES (3'小华','男')
语法2:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
例子
- 不添加ID(已经设置自增长)和不添加可null项,仅仅添加not null:
1 INSERT INTO person(persName) 2 VALUES ('小华')
这个没问题,避免了语法1中的不足,在开发中更为灵活,但是要注意,写入的值对应好相对的属性,避免一些由于类型相同而错位的问题。
语法3:
在values的值一次加入多组
1 insert into students 2 values (5,'李白','男',18),(6,'后羿','男',19),(7,'周哥','男',22)
改
改,即对数据中已有数据的更新、修改。
语句:Update...SET...
语法
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
以下是例子,一张修改前的表如下
执行修改:
UPDATE person
SET persSex = '男',
persHobby = '思考'
WHERE persId = 4
修改结果:
删
删,即删除,删除数据库中不用的数据,具体的是删除整个表(这里不写)、删除某条记录。
语句:DELETE
语法
DELETE FROM 表名称 WHERE 列名称 = 值
以下是一个栗子:
删除前:
执行删除
1 DELETE FROM person 2 WHERE persId = 4
删除后:
查
查,即查询,通过一定条件限制,查询出符合要求的数据,查有很多技巧和用处,是重难点。
语句:SELECT
基本查询语句:
简单查询单个或多个属性:
SELECT 列名称 FROM 表名称
查询全部属性:
SELECT * FROM 表名称
基础查询
- 结果样式:order by排序 ASC:小到大,DESC:大到小;group by 分组、distinct去重
- 笛卡尔积:select * from table1,table2
- 模糊查询:like和 _ 和 %
- 统计处理:count()、avg()、sum()、max()、min()
- 条件限定:having 、where、in/not in和exists、between_and
- 属性、表重命名为新的属性、表:AS
- 运算符:> < = != or and not
- 查询某个属性并修改其值:select Freight + 10 as' 运费',name as' 姓名'将一个查询结果作为下一次查询的条件(例子:【查询1】 查询出雇佣日期比Margaret Peacock还晚的员工。(Employees)
-
1 select * 2 from Employees 3 where HireDate >( 4 select HireDate 5 from Employees 6 where FirstName = 'Margaret ' 7 AND LastName = 'Peacock' 8 )
-
将查询结果存储为一张新表
1 CREATE table mytableone AS 2 SELECT * 3 FROM students, 4 (SELECT student,classes,score 5 FROM score_t 6 WHERE score > 80) as R1 7 WHERE students.id = R1.student
高级查询
集合操作
- 并:union、union all(保留重复行),R U S,和并两表,要求两表的属性类型相同
- 差(defference),except,R-S,得出的结果是R中有的S中没有的行
- 交:intersect,两表共有的
连接 join(笛卡尔积的简化)
- 内链接 join,有的平台用 inner join
- 左外链接 left [outer] join,
- 右链接 right join
- 全外链接 full join
除(覆盖)运算
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端