造个表
mysql> create table students(
-> scode int not null auto_increment,
-> sname varchar(20) not null,
-> saddress varchar(20) default '未知',
-> sgrade int ,
-> semail varchar(20),
-> ssex int,
-> primary key(scode)
-> )default charset = utf8;
修改数据update:
- update students set semail = '@qq.com';把students里面的semail改成@qq.com
- update students set semail = '@qq.com' where sname ='测试女生1';//对名字为测试女生1的那行进行更改
- update students set sgrade = sgrade+1;//让sgrade全部加1
删除数据delete:
- delete from students where sgrade = 33;删除学生列表里面的成绩为33的那一行
查询数据select:
select sname from test03.students://绝对路径查询
select distinct saddress from students;//去重查询
select *from students where sgrade > 59;//查询成绩大于59分的;
select *from students order by sgrade desc;//按成绩排序,降序
select *from students order by sgrade asc;//升序排序
select *from students limit 1,3 ;//显示从二行开始,后面三行。
集函数
- select count(sgrade) from students;

group by
- select sum(sgrade),sname from students group by sname;//其目的是先分组,然后对每一个分组使用集函数。
- select sum(sgrade),sname from students group by sname having avg(sgrade)>59;
因为where不能与集函数和用,这个时候就可以用having。
多表查询
- 内连接:
select students.sname,sc.courseid,sc.grade from students inner join sc on students.sno = sc.studentsid;
inner join表示内连接,想要查看的内容是s里面的sname,sc里面的courseld和grade,条件是students.sno = sc.studentsid. - select students.sname, sc.courseid, sc.grade from students, sc where students.sno=sc.studentsid;//这里也可以加条件。
- 外连接:
select students.sname,sc.courseid,sc.grade from students inner left join sc on students.sno = sc.studentsid;
students是连接主题,sc连接到students上,这是左连接,还有对应的右连接。
把显示后的表格建成一个新的表
- create table xxx select sname from students;
创建一个新的表格,名字为xxx,内容是students里面的sname。
网友评论