MySQL初步学习5:常用语句

时间:2024-05-20 16:06:53

Navicat

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息(摘抄自百度百科)。Navicat是目前使用最多的一款MySQL操作软件。

Navicat**版下载与安装

链接:http://pan.baidu.com/s/1hrQb3Y8 密码:q7z8
里面有32位和64位的Navicat以及**工具。直接点击安装,安装好后,将**工具放到安装目录下运行就可以了。

MySQL语句进阶

这里,我建立了在数据库bb中建立两个表stu 和 classroom。
表stu(主键为id,class为外键连接到classroom的id)
MySQL初步学习5:常用语句
表classroom(主键为id)
MySQL初步学习5:常用语句

查询语句

1)select distinct class from stu;
查找不重复项
2)select Chinese+Math+ifnull(English,0) 总成绩 from stu;
计算总成绩,当英语为空时视为0
3)select id,name,class from stu where name like ‘_顺%‘;
模糊查询,”%”表示有n个字符,”_”表示有一个字符。
即查询第二个字符为“顺“的字段
4)select id,name from stu where Chinese in (79,83,59);
查找语文成绩为79,83,59的字段
5)select id,name from stu order by name,Chinese(desc);
升序、降序,按照字母、音调排序
默认为升序asc,desc表示降序
即按照姓名的升序、语文成绩的降序排列
6)select max(Chinese) from stu;
查找最大值
7)select * from stu where Chinese = (select max(Chinese) from stu);
查找最大值时的数据

多表查询

select * from stu,classroom where stu.class=classroom.id;
表stu与classroom通过外键相连

复杂查询

1)select a.name,a.Chinese,b.name,b.English from stu a,stu b where a.Chinese = b.English;
临时表a和b,访问临时表的数据,从而实现复杂查询
查找英语与语文成绩相同的同学姓名和其成绩

2)select name, avg1,Chinese from stu t1 ,(select avg(Chinese) avg1,id from stu) t2 where t1.Chinese>t2.avg1;
查找语文成绩大于平均值的学生

分页查询

select * from stu order by id asc limit 0,5;
查找前5排字段

select * from stu order by Chinese desc limit 3,9;
查找语文3-9名学生

删除表t1中的重复记录

select distinct* into t3 from t1;
delete from t1;
insert into t1 select * from t3;
drop table t3;

外连接

select a.name,a.Chinese,b.name,b.English from stu a,stu b where a.Chinese = b.English;
a、b的语文和英语相等时,显示

select a.name,a.Chinese,b.name,b.English from stu a left join stu b on a.Chinese = b.English;(左外连接)
左外连接,当a的语文成绩没有对应的b的英语成绩,则显示b查找内容为空。
右外连接与之相反。

约束

共分为5种(建表时,对字段进行约束)
not null (不为空)
unique (唯一,不可重复,可有一个为null)
primary key (主键,不可重复,不为空)
foreign key (外键)
check (自定义)
如:
item int foreign key references table (id),
age int check(age>=10 and age<=30)