SQL select insert update delete
SELECT
语句是最常用的 SQL 语句,它能帮助我们从一个或多个表中查询信息。
示例代码
在使用 SELECT 语句检索表数据时,至少需要给出两条信息——想检索的列名(column_name)和被检索内容的表名(table_name)。
基础语法如下:
SELECT `column_name`
FROM `table_name`;
英文option+数字1左边的键就是反引
当我们想要从一个表中查询多个列时
使用的 SELECT 语句与查询一个列时使用的语句相似,但是需要在 SELECT 关键字后给出多个列名,并且列名之间必须以逗号分隔。
语法:
SELECT `column_name_1`, `column_name_2`
FROM `table_name`;
SELECT 语句可以直接检索表中所有信息,即检索所有的列。
这可以通过在列名的位置使用星号( *
)通配符来实现,输出的列的顺序一般是列在表定义中出现的物理顺序。
通配符是一类键盘字符,*
(星号) 就是较为常用的通配符之一,可以使用 *
代替零个、单个或多个字符。
使用 *
通配符最大的优点就是,当不明确需要检索的列名时,可以通过检索所有列名来确定。
语法:
SELECT * FROM `table_name`;
使用 SELECT DISTINCT 查询不同行
语法:
SELECT DISTINCT `column_name`
FROM `table_name`
DISTINCT的作用是希望查询的值都是唯一不重复的
使用 SELECT WHERE 对行进行筛选过滤
在使用 SELECT WHERE
语句检索表数据时,需要给出检索的表名 (table_name)、检索的列名 (column_name) 和操作符 (operator) 。
语法:
SELECT `column_name1`,`column_name2`…
FROM `table_name`
WHERE `column_name` operator `value`;
其中:
- column_name 对应指定列的名称,或者是多列,用逗号(
,
)分隔开 - table_name 对应查询表的名称
- operator 为操作符,常用的有等于
=
、小于<
、大于>
、不等于<>
或!=
,我们会在后续课程中更加深入地学习它。
如果我们要从课程表 courses
中选取课程名为 'System Design' 的课程。
我们可以使用下面的 SQL 语句:
SELECT *
FROM `courses`
WHERE `name` = 'System Design';
Insert
INSERT INTO `table_name`
VALUES (value1, value2, value3,...);
其中
value1
, value2
…… 为对应插入数据表中的值,每个值的属性需要与对应表中的列名属性相匹配,而且需要把插入的信息填写完整,否则会报错。
使用 INSERT INTO 在指定的列中插入数据
INSERT INTO `table_name`
(`column1`, `column2`, `column3`,...)
VALUES (value1, value2, value3,...);
假如我们想向课程表 courses
插入一条新行,但是只在 name
、student_number
、created_at
和 teacher_id
列中插入数据( id
字段会自动更新):
我们可以使用下面的 SQL 语句:
INSERT INTO `courses` (`name`, `student_count`, `created_at`, `teacher_id`)
VALUES ('Flash Sale','100','2018-01-01',5);
使用 UPDATE 更新数据
我们在查询教师表 teachers
的时候发现,教师姓名 name
为 "Linghu Chong" 的老师邮箱 email
信息为 NULL,即没有该部分信息,我们现在希望更新邮箱信息,这时候就需要用到 UPDATE
语句。
语法
UPDATE `table_name`
SET `column1`=value1,`column2`=value2,...
WHERE `some_column`=some_value;
请注意 UPDATE 语句中的 WHERE 子句!WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!
UPDATE `teachers`SET `email`='linghu.chong@lintcode.com'WHERE `name` = 'Linghu Chong';
使用 delete 删除数据
DELETE FROM `table_name` WHERE `some_column` = some_value;
其中
table_name
代表表名称
some_column
代表列名称,如id
some_value
可以为任意值。some_column
和some_value
构成 WHERE 子句中的搜索条件。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性