上期初步总结了Mysql的基本操作。今天来具体讲解Mysql中的实际操作:数据删除及数据查询(重点)。
一、删除表中的数据(表结构不受影响,即不删除整个表)
语法:delete from 库名.表名
where 字段名=字段值;——Where条件用于指定删除哪条数据
举例1:删除student表中学生编号为2的数据(删除了整行数据
delete from school.student
where sno=2;
举例2:删除表中的所有数据
方法1:在删除一个表的数据时,不指定条件,会删除表中的所有数据
;(重要)
delete from school.student;
方法2:使用关键字truncate (重要)
语法:truncate 库名,表名
举例:truncate school.stu;
重点说明
1:truncate不能和from、where配合使用,如truncate school.student;
2:truncate比delete效率更高。
3:drop(删除表)和delete(删除表中数据)需要区别:
drop: 用来删除数据库、表、视图(view)、存储过程(stored procedure)、字段(column)
delete:删除表中的数据(data)
二、查询表中的数据
1、查询单表数据:
一般语法:
select from where
select 查询列表 from 库名.表名 where 字段1=字段值 逻辑运算符 字段2=字段值2
解释:select是查询的意思,from说明从哪个表中查询数据,where说明在什么条件的数据。
举例:查询员工表中工资小于等于6000的所有人员的入职时间、工资、姓名
SELECT hire_date,salary,first_name,last_name
FROM hrdb.`employees`
WHERE salary
2、多表查询(同时从多个表中查询数据)
一般语法:
select 查询列表
from 库名.表1库名.表2库名.表3
where 表1.字段1=表2.字段1 逻辑运算符 表2.字段2=表3.字段2
逻辑运算符 其他条件
要点:##如何找表和表之间的关系?
a、直接关系
employee.department_id=departments.department_id
b、间接关系
employee.department_id=departments.department_id
department.location_id=locations.location_id
c、只要是跨表格查询数据,都需要找出表和表之间的关系。
举例:查询在United States of America工作的员工在哪些部门(首字母为A),查询出这些部门的人员平均工资。查询结果按平均工资高低进行降序排列,结果前2条数据(因所需数据不在一个表格里,故需多表查询)。
SELECT d.department_name,AVG(e.salary)AS 平均工资,c.country_name
FROM hrdb.`employees` e,hrdb.`departments` d,
hrdb.`locations` l,hrdb.`countries` c
WHERE e.`department_id`=d.`department_id`
AND d.`location_id`=l.`location_id`
AND l.`country_id`=c.`country_id`
AND c.`country_name`="United States of America"
AND d.department_name like"A%"
GROUP BY d.department_name ——按部门名称进行分组
ORDER BY 平均工资 DESC ——按平均工资高低进行降序排列
LIMIT 0,2; ——取第一、二条数据
要点:
1、跨表查询,可以跨多个表格,只要找到有关联的字段即可。比如A表的字段1和B的字段1一致,那么就可以跨表调用了。
2、由于涉及的表格较多,可以以表格名的首字母来代替该表格。比如表格students,可以简称为s。
今天暂时就讲Mysql的2个知识点,如果有任何疑问或建议,随意欢迎联系我。感谢你的认真阅读~
领取专属 10元无门槛券
私享最新 技术干货