select field1, field2,...fieldN from table_name1, table_name2...
[where condition1 [and|or] condition2.....
--如:select * from student where sdept='计算机系' and sex='男' and sage>=20;
--又如 delete from student where sno='23131423';
--再如 update student set sname='张三' where sno='23403432';
2.like子句
我们知道在 MySQL 中使用 SQL select命令来读取数据, 同时我们可以在 SELECT 语句中使用 where 子句来获取指定的记录。where子句中可以使用= > <等操作符来设定条件,当时有时候我们需要一些模糊的条件查询,例如,查找学生表中学生姓名姓刘的所有学生,这时就需要用SQL like子句中使用百分号 **%**字符来表示任意长度的字符串,_字符代表任意单个字符,通过这两个字符可以达到模糊查询的效果。
select * from student where sname like '刘_' and sno like '2000%';
--上述语句查询学生表中姓名为刘X开头且学号为'2000'开头的学生信息;
3.order by子句排序
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 order by 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
select field1, field2,...fieldN from table_name1, table_name2...
order by field1 [ASC|DESC], [field2...] [ASC|DESC];
--如:select * from student order by sage desc;//查询学生并按年龄降序排序,注意系统默认是asc排序
4.group by 子句分组
group by 语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 count, sum, avg等函数。
例如: select class 班级,count(*) 人数 from student group by class;
5.join 和left join多表查询
我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用MySQL 的 join在两个或多个表中查询数据。你可以在select, update和 delete语句中使用Mysql 的 join 来联合多表查询。left join 与 join 有所不同。 MySQL left join 会读取左边数据表的全部数据,即便右边表无对应数据
select s.sno,s.sname,c.cno,s.score from student s,course c where s.sno =s.cno;//join方式相当于等值连接
select a.tutorial_id, a.tutorial_author, b.tutorial_count from tutorials_tbl a left join tcount_tbl b on a.tutorial_author = b.tutorial_author;//左连接方式,即保留左边悬浮元组
十一、更新数据
如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL update命令来操作。
update 表名 set field1=new-value1, field2=new-value2...[where 子句];
--例如:update student set sname='张三' where sno='23403432';