MySQL查询语句一般分为单表查询和多表查询。
select......from......
---单表查询
MySQL查询语句 ----- ---子查询
多表查询 ---
--- 连接查询
单表查询
1、查询语句和条件以及查询的结果都在同一个表中
eg:查询stu表中sto=1的学生的所有信息
select *from stu where sto =1;
* 代表的是表中的所有信息 在查询语句中 查询条件都是跟在 where 后。
例题
-- 需求
-- 1 用create database 命令创建emp_project数据库
drop database if exists emp_project;
create database emp_project;
-- 2 用create table 命令创建emp表 用insert into语句在emp中添加10条数据
-- emp表字段如下:
create table emp(
e_id int not null auto_increment primary key, -- 员工的编号
e_name varchar(10) not null, -- 名字
e_sex varchar(2) not null, -- 性别
e_job varchar(20) not null, -- 职位
e_salary int not null, -- 薪水
e_date datetime not null, -- 入职时间
e_age int not null -- 年龄
);
insert into emp values(1,'张三','男','工程师',3500,'2010-3-4',23);
insert into emp values(2,'李四','女','软件师',4500,'2010-3-4',33);
insert into emp values(3,'王五','男','经理',5500,'2010-3-4',22);
insert into emp values(4,'赵六','女','部门经理',6500,'2010-3-4',45);
insert into emp values(5,'张七','男','业务员',7500,'2010-3-4',35);
insert into emp values(6,'李八','女','总经理',8500,'2010-3-4',29);
insert into emp values(7,'王9','男','工程师',4500,'2010-3-4',40);
-- 3 查询工资范围在3000-10000之间的员工信息
select * from emp where e_salary between 3000 and 10000;
-- 4 查询性别为男的员工信息
select * from emp where e_sex = '男';
-- 5 查询姓李或者姓张的员工信息
select * from emp where e_name like '张%' or e_name like '李%';
-- 6 查询职位是工程师且工资大于4000的员工信息。
select * from emp where e_job = '工程师' and e_salary >4000;
-- 7 查询员工年龄小于30或者工资大于5000的员工信息
select * from emp where e_age<30 or e_salary >5000;
-- 8 查询员工信息工资从高到低排序
select * from emp order by e_salary desc;
多表查询
建表
create table a(
a_id int not null,
a_name varchar(10)
);
create table b(
b_id int not null,
b_name varchar(10)
);
insert into a values(1,'张三');
insert into a values(2,'李四');
insert into a values(3,'王武');
insert into a values(6,'刘备');
insert into b values(1,'aa');
insert into b values(2,'bb');
insert into b values(3,'cc');
insert into b values(7,'ff');
表 a 表b
连接查询
1、内连接 inner join ...on...(inner join 可忽略不写)
符合条件,当需要查找两个表之间相同的字段的数据时,用内连接
查询a 表和b表 id相同的人的数据
select * from a inner join b on a_id = b_id;
2、左连接 left join...on... on后接连接条件
符合条件,查找以左表为主和右表