SQL 入门:与数据库对话的第一步

什么是 SQL?数据库的通用语言

在软件开发中,数据是核心。我们需要一种可靠的方式来存储、管理和查询数据,这就是数据库发挥作用的地方。而 SQL(Structured Query Language,结构化查询语言)就是我们与关系型数据库进行沟通的标准语言。几乎所有主流的数据库,如 MySQL、PostgreSQL、SQLite 和 SQL Server,都使用 SQL 作为其操作语言。kqqcdgupxpau2aw5t.sxkjsm.com

你可以把 SQL 想象成你用来对数据库下达命令的“语言”。通过它,你可以告诉数据库创建表、插入数据、查询信息、更新记录或删除数据。学习 SQL 是任何后端或全栈开发者的必备技能。为了方便练习,我们可以使用 SQLite,它是一个轻量级的、无需服务器的数据库引擎。u.www.sxkjsm.com

# 在大多数 Linux 和 macOS 系统上,SQLite3 是预装的。
# 在 Windows 上,你可能需要从其官网下载。
# 你可以通过在终端输入以下命令来启动 SQLite 交互式环境:
sqlite3 my_database.db

创建你的第一张表:定义数据结构m3bobuay.www.sxkjsm.com

在数据库中,数据被存储在“表”中,你可以把它想象成一个结构化的 Excel 电子表格。在向表中添加数据之前,我们必须先定义表的结构,即它包含哪些列(字段)以及每列的数据类型。这个操作通过 CREATE TABLE 语句来完成。ygcx.sxkjsm.com

在定义表时,我们通常会指定一个“主键”(PRIMARY KEY),它是表中每一行数据的唯一标识符,确保没有两条记录是完全相同的。wap.share.wuxiangxing.com

-- 创建一个名为 'users' 的表
-- 包含三个字段:id (整数, 主键), name (文本, 非空), email (文本, 唯一)
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT NOT NULL UNIQUE
);

向表中插入数据:填充你的仓库6www.share.wuxiangxing.com

现在我们已经有了一个空表 users,接下来就可以向其中添加数据了。INSERT INTO 语句用于向指定的表中插入一行或多行新的数据。你需要指定要插入数据的列名,并提供与列顺序相对应的值。mobile.shop.wuxiangxing.com

如果为表的所有列都提供值,你可以省略列名列表,但为了代码的清晰性和可维护性,明确指定列名是一个更好的习惯。5.hxqdjy.com

-- 向 'users' 表中插入一条新记录
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');

-- 一次性插入多条记录
INSERT INTO users (name, email) VALUES
    ('Bob', 'bob@example.com'),
    ('Charlie', 'charlie@example.com');

查询数据:最核心的操作79.hxqdjy.com

数据库最频繁的操作就是查询数据。SELECT 语句是 SQL 中最强大也是最常用的命令,用于从一个或多个表中检索数据。你可以选择特定的列,也可以使用通配符 * 来选择所有列。duet.mengkaigroup.com

WHERE 子句用于过滤结果,只返回满足特定条件的行。这使得你可以精确地找到你想要的数据。hjuk.mengkaigroup.com

-- 查询 'users' 表中的所有数据
SELECT * FROM users;

-- 只查询 'name' 和 'email' 列
SELECT name, email FROM users;

-- 查询名字为 'Bob' 的用户信息
SELECT * FROM users WHERE name = 'Bob';

更新与删除数据:维护数据的一致性381.mengkaigroup.com

数据不是一成不变的。我们可能需要修改现有记录(UPDATE)或移除不再需要的记录(DELETE)。这两个操作都需要格外小心,因为它们会永久改变数据库中的数据。fg44fg265.mengkaigroup.com

一个至关重要的原则是:在执行 UPDATEDELETE 操作时,务必使用 WHERE 子句来指定要操作的具体行。如果你省略了 WHERE 子句,你将会更新表中的所有行或删除表中的所有数据,这通常是灾难性的。afyi17.mengkaigroup.com

-- 更新 id 为 1 的用户的邮箱
UPDATE users
SET email = 'alice_new@example.com'
WHERE id = 1;

-- 删除名字为 'Charlie' 的用户
DELETE FROM users
WHERE name = 'Charlie';

恭喜你!你已经掌握了 SQL 最基本的增、删、查、改(CRUD)操作。这些是你与数据库交互的基石,也是构建数据驱动应用的起点。oxmvz.tongdaolzw.com

全部评论

相关推荐

10-13 12:53
已编辑
湖北工业大学 前端工程师
小海c:包装一下,第一个感觉是字节青训营的那个,后面那个是黑马的
点赞 评论 收藏
分享
10-19 10:28
已编辑
西南石油大学 后端工程师
团孝子已上线feeling:面了很多家公司,能感受到目前只有小公司+外包喜欢问八股。大厂虽然也问八股,但是是从实习、项目中进行提问,并且大厂会问很深,面试官也会对你的回答进行思考➕追问,所以准备大厂面试前一定要备好相关资料。对于算法,我做的是codetop前100+力扣hot100+力扣高频150,面试中实感hot100就足够,基本上只要是hot100就秒答。对于项目和八股,我做的也是烂大街的星球项目,八股则是看小林和问ai,自己也写了很多技术博客和画了很多思维导图,并且自己也尝试用嘴巴说出来,不只停留于纸面。运气也很重要,必须要让面试官/HR看到简历才行,所以建议投递时间是下午两点。tl:第一岗位9.9 投递9.10 一面(一面评价:最近见过最强的大三,结束五分钟后约二面,都晚上九点了不下班吗)9.11 二面(三道算法a出两道,反问评价:经验不够等横向,我实习生要啥经验)9.21挂(实习时间过短+其他原因,想要一年实习的,为什么不招个正职)第二岗位10.10投递10.11约面(主管打电话,说看到我之前投递记录了想要我挂qa职进去干后端,同意)10.14 一面(无八股,主动说确实很强,意愿很强)10.16 oc其余,友邦,东软,东华,惠择,用友oc已拒京东测开一面挂(投后端被测开捞)腾讯测试已拒(投后端被测开捞)ps:表扬惠择的主管面,没怎么问技术(可能是一面面试官沟通过了),全程一起讲大道理,解答了心中很多疑惑,也告诉我以面试官角度来看怎么选候选人,如果可以下次一定选惠择
HeaoDng:美团好像可以触发一面通
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务