示例1:打印grade排名后三的学生信息
select * from Student order by grade limite 3;
示例:打印grade排名第三的学生信息
select * from Student order by grade desc limite 2,1;
#其中limite 2,1是跳过第二条记录打印一个记录,也就是打印第三条记录
desc是倒序,aes是升序(order by 语句默认值为升序)
join连接
INNER JOIN:如果两表中有匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行
示例(牛客网):
查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工
CREATE TABLE dept_emp (
emp_no int(11) NOT NULL,
dept_no char(4) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
CREATE TABLE employees (
emp_no int(11) NOT NULL,
birth_date date NOT NULL,
first_name varchar(14) NOT NULL,
last_name varchar(16) NOT NULL,
gender char(1) NOT NULL,
hire_date date NOT NULL,
PRIMARY KEY (emp_no));
输入描述:
无
输出描述:
last_name first_name dept_no
Facello Georgi d001
省略 省略 省略
Sluis Mary NULL(在sqlite中此处为空,MySQL为NULL)
sql语句为:
select employees.last_name,employees.first_name,dept_emp.dept_no
from employees left join dept_emp on employees.emp_no=dept_emp.emp_no;