原文鏈接: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數據庫名; -- 如果不存在則創建
- 查看數據庫
- 查看MySQ服務器中的所有數據庫:
show database;
-
-
- 查看某個數據庫的定義信息
-
Show create database 數據庫名;
-
- 刪除數據庫 drop database數據庫名稱;
- 切換數據庫 use 數據庫名;
- 表結構相關語句
創建表
create table 表名(
字段名 類型(長度)約束,
字段名 類型(長度)約束,
);
- 刪除主鍵
Alter table 表名 drop primary key;
- 查看錶
- 查看數據庫中所有的表 show tables;
- 查看錶結構 desc 表名;
- 查看建表語句 show create table 表名;
- 刪除表 drop table 表名;
- 刪除列 alter table 表名 drop 新表名;
- 修改表名 rename table 表名 to 新表名;
- 修改表的字符集alter table 表名 character set 字符集;
- 修改列名 alter table 表名 change 列名 新列名 列類型;
- 添加列 alter table 表名 add 列名 列類型;
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);