MySQL 入门实战:从建库建表到常用查询
【摘要】 从建库建表到常用查询,用学生成绩例子带新手走通 MySQL 基本操作,并总结常见坑与下一步学习路线。
MySQL 是最常用的开源关系型数据库之一,学会建库建表和常用查询,就能应付大部分日常开发和数据分析工作。本文用一个简单的学生成绩例子,带你从零走通 MySQL 的基本操作。
一、建库建表
先创建一个数据库,再在库里建一张学生表。CREATE DATABASE 用来建库,CREATE TABLE 用来建表,建表时要给每个字段定好类型和约束。
CREATE DATABASE school DEFAULT CHARSET utf8mb4;
USE school;
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age INT,
score DECIMAL(5,2),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
utf8mb4 是推荐的字符集,能存中文和表情;AUTO_INCREMENT 让主键自增;NOT NULL 表示该字段不能为空。
二、插入与查询
用 INSERT 写入数据,用 SELECT 查出来,WHERE 用来筛选条件。
INSERT INTO student (name, age, score) VALUES ('小明', 18, 88.5), ('小红', 19, 92.0), ('小刚', 18, 76.5);
SELECT * FROM student;
SELECT name, score FROM student WHERE age = 18;
注意:INSERT 的字段顺序要和值的顺序一一对应;查全表用 *,只查需要的列就写列名,能少传很多数据。
三、常用查询技巧
排序与分页
ORDER BY 排序,LIMIT 取前几条,两者常一起做分页。
SELECT name, score FROM student ORDER BY score DESC LIMIT 3;
SELECT * FROM student ORDER BY id LIMIT 0, 10;
聚合函数
COUNT 计数,SUM 求和,AVG 求平均,MAX 和 MIN 取最大最小值,配合 GROUP BY 还能按分组统计。
SELECT COUNT(*) AS total, AVG(score) AS avg_score FROM student;
SELECT age, COUNT(*) AS cnt FROM student GROUP BY age;
四、新手常踩的坑
- 忘记写
WHERE条件就执行UPDATE或DELETE,结果改掉或删掉整张表的数据。动手前先用SELECT把条件验证一遍。 - 字符集不一致导致中文乱码,建库建表时统一用
utf8mb4。 - 把密码、密钥写进 SQL 脚本或提交到代码仓,敏感信息要单独保管。
- 在
VARCHAR字段上存数字再做比较,'100' < '20'这样的字符串比较会得到错误结果。 - 大表查询不加索引还用
SELECT *,越查越慢,先看执行计划再优化。
五、下一步学习建议
掌握了建库建表和常用查询之后,可以继续学 JOIN 多表关联、事务 保证数据一致、索引 优化查询速度,再结合实际项目做一个小型应用,把 SQL 真正用起来。遇到问题先去看官网文档,动手试一遍比只看十遍记得牢。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)