sql之limite查询、join连接

limite

  • limite 是可以用在order by 语句后面用于打印排序后的前几条记录
示例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;

你可能感兴趣的:(sql)