1.SQL(结构化查询语言)
DDL:数据定义语言
DML:数据操作语言
DCL:数据控制语言
DQL:数据查询语言
2.DBMS(数据库管理系统)
RDBMS:关系型数据库管理系统
二元关系模型(表格形式)
Oracle、MYSQL、SQL server、db2
NoSQL:非关系型数据库管理系统
弥补关系型数据库系统的不足
3.MYSQL
关系型数据库系统
开源免费
MYSQL数据库管理系统———>创建多个数据库——>创建和管理多个表格
4.SQL语言基础
(1)查询
>查询所有:select * from user;
>有条件查询:select * from where a=? and/or b>?
select * from user where a>=10 and a<=20
>范围查询:select * from user where a between 10 and 20
>集合查询:select * from user where b in (1,2,3)
>查询部分字段:select a,b
>别名(表,字段,结果集)as 别名:select a as 员工编号,select b as 员工工资 from user
>去重操作:select disdinct a from user
>null查询:select a from user where b is (not) null
>模糊查询(%:0或多个字符;_:表示一个字符):员工名称以S开头:select *from user where a like ‘s%’
员工名称以e 结尾:select *from user where a like ‘%e’
员工名称包含l:select *from user where a like ‘%l%’
员工名称第二个字符是N:select *from user where a like ‘_l%’
>排序{order by a asc(升序)/desc(降序)}
工资升序,一样,编号降序:select * from user order by a, b desc;
>限制结果查询(limit index,length):select * from user limit 5(选前五条记录)
(2)分组查询(分组:group by 字段;平均:avg(字段);where:必须在group by 之前且该语句中不能使用聚合函数;having:使用和where基本;在group by 之后,可以使用聚合函数)
>每个部门的部门编号和平均工资:select a, avg(b) from user group by a
>部门的平均工资>2000的部门编号和平均工资:
(3)高级查询
a.内连接:连接表都匹配的记录才会出现结果集;与连接顺序无关
select * from g,h where g.c=h.c
inner join ...on... :select * from g inner join h on g.c=h.c
inner join... using... :select * from g inner join h using(c)
b.外连接:以其中一张表为驱动表,与另一张表的每条记录匹配,如果能够匹配,则进行关联并展示,如果匹配不到,则以null进行填充;与连接顺序有关
>左外连接:left (outer) join...on... :select * from g left join h on g.c=h.c
>右外连接:right (outer) join...on...
c.自连接:select * from emp e1 left emp e2 join on e1.q=e2.p
标签:...,join,查询,user,SQL,where,select From: https://www.cnblogs.com/ffxqc/p/17624361.html