原文链接:https://blog.csdn.net/cfy137000/category_7611494.html
建议掌握点
1.数据库(熟悉):数据库基本概念,关系型数据库介绍,mysql安装与使用,navicat使用
2.Sql语言(重点):数据表操作,数据操作:增删改查,条件查询,排序,聚合函数,分组,分页,链接查询,自关联,子查询,子查询演练
3.数据库高级功能(了解):数据库设计,命令行操作数据库,函数,存储过程,视图,事务,索引,外键,用户密码
1.JDBC中大数据量的分页
Mysql语法:
SELECT *
FROM 表名
LIMIT [START], length;
Oracle语法:
SELECT *FROM (
SELECT 列名,列名,ROWNUM rn
FROM 表名
WHERE ROWNUM<=(currentPage*lineSize)) temp
2.数据定义语言DDL,用来定义数据库对象:数据库,表,列等.creat,alter,drop等
数据操作语言DML,用来对数据库中表的记录进行更新,insert,delete,update等
3.DDL -- 数据库操作
3.1创建数据库
create database 数据库名;
create database if not exists数据库名; -- 如果不存在则创建
show database;
Show create database 数据库名;
创建表
create table 表名(
字段名 类型(长度)约束,
字段名 类型(长度)约束,
);
Alter table 表名 drop primary key;
4.DML操作
注:mysql中,字符串类型和日期类型都要用单引号括起来’tom’,’2020-04-16’;空值:null
4.1 查询表中所有数据的语句:
select * from 表名;
4.2 插入操作:insert into 表名(列名1,列名2…) values(列值1,列值2…);
4.3 修改操作:update 表名 set 列名1=列值1,列名2=列值2… where 列名=值;
4.4删除操作:delete from 表名[where 列名=值]6DQL数据查询语言(重要)
5.数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。
查询返回的结果集是一张虚拟表.
语法:select 列名 from 表名[where-> group by-> having-> order by]
SELECT selection_list /要查询的列名称/
FROM table_list /要查询的表名称/
WHERE condition /行条件/
GROUP BY grouping_columns /对结果分组/
HAVING condition /分组后的行条件/
ORDER BY sorting_columns /对结果排序/
LIMIT offset_start, row_count /结果限定/
6.having和where的区别
having是在分组后对数据进行过滤,而where是在分组前对数据进行过滤
having后面可以使用聚合函数(统计函数),where后面不可以使用聚合函数
7.LIMIT用来限定查询结果的起始行,以及总行数。
查询5行记录,起始行从0开始SELECT * FROM emp LIMIT 0, 5;
8.查询语句的书写顺序:
select – from- where- group by- having- order by-limit
查询语句的执行顺序:
from - where -group by - having - select - order by-limit
9.多表查询
内连接 [INNER] JOIN ON
外连接 OUTER JOIN ON
左外连接 LEFT [OUTER] JOIN
右外连接 RIGHT [OUTER] JOIN
全外连接(MySQL不支持)FULL JOIN
自然连接 NATURAL JOIN
9.1 内连接 SELECT * FROM student INNER JOIN class ON student.sid = class.cid;
9.2 左外连接 SELECT * FROM temp.student LEFT JOIN temp.class ON sid = cid;
9.3 右外连接 SELECT * FROM temp.class RIGHT JOIN temp.student ON sid = cid;
组合查询: select title,writer,birthaddr,birth from mytable,title
where mytable.name=title.writer and title=‘a2‘;
10.子查询就是嵌套查询, 一个select语句中包含另一个完整的select语句。
10.1 工资高于JONES的员工
SELECT * FROM emp
WHERE sal > (SELECT sal FROM emp WHERE ename='JONES')
10.2 查询工作和工资与MARTIN完全相同的员工信息
SELECT * FROM emp
WHERE (job,sal) IN (SELECT job,sal FROM emp WHERE ename='MARTIN')
10.3查询有2个以上直接下属的员工信息
SELECT * FROM emp
WHERE empno IN (
SELECT mgr
FROM emp
GROUP BY mgr
HAVING COUNT(mgr) >= 2);