jdbc查mysql_mysql的查询及连接JDBC数据库
查詢記錄
查詢表達式
每個表達式表示想要的一列,必須至少一個。
多個類之間以英文逗號分隔。
“*”號表示所有列
例如
只查詢id和name兩列
SELECT id,name FROM student;
WHERE
條件表達式
對記錄進行過濾,如果沒有指定WHERE自居,則顯示所有記錄。
在WHERE表達式中,可以使用MySQL支持的杉樹或運算符。
例如:
查詢id為偶數的記錄
SELECT * FROM student WHERE id%2=0;
GROUP BY
查詢結果分組
例如
按照分數分組,并且降序排列
SELECT * FROM student GROUP BY score DESC;
HAVING
分組條件
例如:
按照分數分組,并且只顯示大于60分的
SELECT * FROM student GROUP BY score HAVINGscore > 60;
ORDER BY
對查詢結果進行排序
例如:
按照id降序排列
SELECT * FROM student ORDER BY id DESC;
LIMIT
限制查詢結果返回的數量
例如:
返回查詢結果中的第二條記錄
SELECT * FROM student LIMIT2;
返回2條記錄,從第一條記錄開始(記錄從0開始編號);
SELECT * FROM student LIMIT 1,2;
輸出分數最高的3名學生記錄
SELECT * FROM student WHERE name LIKE ‘L%’;
子查詢
概念
子查詢(Subquery)是指出現在其他SQL語句內的Select子句。
例如:
SELECT * FROM T1 WHERE col1=(SELECT col2FROM t2);
其中SELECT * FROM t1,稱為OuterQuery/Out
SELECT col2 FROM t2,稱為SubQuery
注意
子查詢指嵌套在查詢內部,且必須始終出現在圓括號內。
子查詢可以包含多個關鍵字或條件,如果GROUP BY,ORDER BY,LIMIT,函數等。
子查詢的外層查詢可以是:SELECT,INSERT,UPDATE,SET 或DO.
子查詢返回值
子查詢可以返回標量,一行,一列,或子查詢。
使用比較運算符的子查詢
=,>,=,<=,!=
例如:查詢高于班級平均分的學生
方法一先求平均值,然后查詢
SELECT AVG(score) FROM student;
SELECT * FROM student WHEREscore>=(SELECT AVG(score) FROM student);
多表連接查詢
使用on關鍵字來設定連接條件,使用WHERE關鍵字進行結果集記錄的過濾。
INNER JOIN 內連接
多個表的交集
LEFT(OUTER)JOIN 左外連接
左表和多個表的交集
RIGHT(OUTER)JOIN 右外連接
右表和多個表的交集
例:
SELECT * FROM user RIGHT JOIN province ONprovince id=user.pid;
常用函數
字符函數
[NOT]LIKE
模式匹配
例:
SELECT * FROM student WHERE name LIKE ’L%’;
查找名字以L開頭的學生信息
%表示匹配任意個字符_表示匹配任意一個字符
比較函數
IS [NOT]NULL
是否為空
例:
SELECT * FROM student WHERE name IS NULL;
查找名字為null的學生信息
聚合函數
AVG()平均值
MAX()最大值
MIN()最小值
SUM()求和
COUNT()求數量
JDBC
概念
JDBC(Java Data Base Connectivity,java 數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它是由一組用Java語言編寫的類和接口組成。
使用JDBC連接數據庫步驟
1加載JDBC驅動程序,不同的數據庫加載的驅動不一樣
Class.forName("com.mysql.jdbc.Driver");
2建立連接。通過DriverManager類的getConnection方法建立連接時,需要注意getConnection會拋出SQLException異常,需要在try/catch塊中捕獲。
String url = "jdbc:mysql://localhost/bookshop";
String user = "root";
String password = "123456";
Connection con = DriverManager.getConnection(url, user, password);
3.創建Statement對象 用來向數據庫發送查詢和命令 大部分數據庫驅動程序允許在同一個連接中打開多個并行的Statement對象,創建好Statement對象之后,就可以使用它來進行數據庫的操作了。
Statement state = con.createStatement();
4.結果集處理。
//查詢數據
ResultSet set = state.executeQuery("SELECT * FROM user");
while(set.next()){
String name = set.getString("name");
System.out.println(name);
}
//更新記錄
state.executeUpdate("UPDATE user SET pass = '000' WHERE id = 1");
//插入記錄
state.executeUpdate("INSERT user (name, pass)VALUES('Herry', '124')");
//刪除記錄
state.executeUpdate("DELETE FROM user WHERE id = 1");
5.關閉連接。關閉連接的同時,還要關閉對應的Statement和ResultSet對象。
set.close();
state.close();
con.close();
總結
以上是生活随笔為你收集整理的jdbc查mysql_mysql的查询及连接JDBC数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最近很火的MySQL:抛开复杂的架构设计
- 下一篇: postgresql 不同数据库不同模式