一文带你学透SQL语言的核心之DML操作
作者:陈橘又青
我们已经基本学会了写SQL来操作数据库,但在命令行中写SQL时,往往有体验感差,效率低等问题,今天开始我们就学习一下在MySQL的图形化客户端Navicat中执行SQL语句
。
Navicat 为数据库管理、开发和维护提供了一款直观而强大的图形界面,大大的提高了工作效率,建议在学习中也使用这款开发工具。接下来,在Navicat中新建查询,我们就可以编写SQL并且执行SQL语句了。
1.添加数据
给指定列添加数据:
insert into 表名(列名1,列名2...) values(值1,值2...);
给全部列添加数据:
insert into 表名 values(值1,值2...);
批量添加数据:
insert into 表名(列名1,列名2...) values(值1,值2...),(值1,值2...),(值1,值2...)...;
批量添加数据(省略字段名):
insert into 表名 values(值1,值2...),(值1,值2...),(值1,值2...)...;
在开发过程中添加数据的时间是不建议省略字段名的,这样降低了代码的可读性,使效率下降。下面是添加数据的小案例:
查询表中的所有数据的方法是:
select * from 表名;
后面会用到的。
需求:往下面的tb_user
表中添加一条数据。
insert into tb_user(id,name) values(2,'李四');
添加成功:
2.修改数据
修改表的数据:
update 表名 set 列名1=值1,列名2=值2...[where 条件];
在修改数据时,也可以不使用where条件,此时的操作是修改整列数据,这样的操作是很危险的。
需求:把下面tb_user
表中的张三的密码改为abc23
update tb_user set passwor d ='abc123' where name='张三';
修改成功:
3.删除数据
删除表的数据:
delete from 表名 [where 条件];
在删除某条数据时,如果不使用where条件,将会导致删除整个表的数据。
需求:删除tb_user表中的李四记录。
delete from tb_user where name='李四';
操作成功:
4.查询数据
下面给出一些SQL语言的DML查询数据的例子:
- 查询student表中所有数据
SELECT * FROM student;
- 查询student表中所有年龄大于等于18岁的学生数据
SELECT * FROM student WHERE age >= 18;
- 查询student表中男生(gender为’男’)的平均年龄
SELECT AVG(age) FROM student WHERE gender = '男';
- 查询student表中年龄最大的学生的信息
SELECT * FROM student WHERE age = (SELECT MAX(age) FROM student);
- 查询student表中,各性别(gender)的学生数量
SELECT gender, COUNT(*) FROM student GROUP BY gender;
- 查询student表中,年龄排名前三的学生的姓名和年龄
SELECT name, age FROM ( SELECT name, age, RANK() OVER (ORDER BY age DESC) AS rank FROM student ) AS tbl WHERE rank <= 3;
上面这些例子涉及到了查询全部数据、条件查询、聚合函数、子查询、分组和排序等多种查询方式。在实际应用中,可根据需要选择不同的查询方式来获取所需的数据。
5.注意事项
- 在学习DML操作时,需要注意以下几点:
- 注意SQL语句的语法和格式,不要犯错。
- 在进行数据修改操作时,一定要谨慎,尤其是DELETE语句,一定要确认数据删除的范围和内容。
- 在进行数据查询操作时,要明确查询的条件和要检索的列名,以避免不必要的查询负担。
- 在进行复杂查询操作时,要深入理解SQL语言的实现原理和查询优化技术,以提高数据操作效率和质量。
6.总结
学习DML操作是学习数据操作的重要基础步骤,只有熟练掌握并灵活运用DML操作,才能更好地管理和利用数据。
到此这篇关于一文带你学透SQL语言的核心之DML操作的文章就介绍到这了,更多相关SQL语言之DML操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!