SQL

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

 

posted @ 2023-08-20 15:39  芬芬的笔迹*本  阅读(40)  评论(0)    收藏  举报