一.About Mysql
1.Mysql 優點
-
體積小、速度快、開放原始碼、免費
-
一般中小型網站的開發都選擇 MySQL ,最流行的關係型資料庫
-
LAMP / LNMP
Linux作為作業系統
Apache或Nginx作為 Web 伺服器
MySQL作為資料庫
PHP作為伺服器端指令碼
都是免費或開放原始碼軟體,不用花一分錢就可以建立起一個穩定、免費的網站系統
2.登陸MySQL
-
登陸:
mysql –h 主機名 -u 使用者名稱 –p
-
登出:
quit;
-
修改密碼:
mysqladmin –uroot –p舊密碼 password 新密碼
3.視覺化工具
phpMyAdmin、MySQL-Front、MySQL Workbench、Navicat等
4.sql語句
-
不區分大小寫
-
以分號結尾
-
註釋:
#註釋內容直到行尾
--註釋內容直到行尾
/*註釋內容*/
5.執行環境
Linux:mysql shell
Windows:Command Line Client
視覺化工具的SQL 編輯器
6.where 條件
-
比較運算子:=、 >、 <、 >=、 <=、 !=、 <>
-
擴充套件運算子:is null、 is not null、 like、 in、 between
-
邏輯運算子:and、 or
-
函式:count、sum、avg、max、min
-
排序:order by
-
分組:group by
7.運算元據
增
insert into 表名 values (值1, 值2, ...);
insert into 表名 (列名1, 列名2, ... ) values (值1, 值2, ...);
刪
改
查
查詢所有資料:
select 列名 from 表名;
查詢指定資料:
select 列名 from 表名 [where 條件];
查詢多個列:
select 列名1, 列名2 from 表名 [where 條件];
查詢所有列:
select * from 表名 [where 條件];
指定別名:
select 列名 as 別名 from 表明 [where 條件];
查詢唯一值:
select distinct 列名 from 表名;
二.示例程式碼
1.maven依賴
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.0.2</version> </dependency>
2例項程式碼
1 package com.my.connect; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.ResultSetMetaData; 8 import java.sql.SQLException; 9 /** 10 * 一個非常標準的連線Mysql資料庫的示例程式碼 11 */ 12 public class ConnectDB { 13 14 public static void main(String[] args) { 15 // TODO Auto-generated method stub 16 Connection con = null;// 建立一個資料庫連線 17 PreparedStatement pre = null;// 建立預編譯語句物件,一般都是用這個而不用Statement 18 ResultSet result = null;// 建立一個結果集物件 19 ResultSetMetaData metaData = null;//建立一個表頭資訊物件 20 try { 21 // 載入Mysql驅動程式 ,oracle的: Class.forName("oracle.jdbc.driver.OracleDriver"); 22 //不知道可以打出Driver 看匯入包的提示 23 Class.forName("com.mysql.jdbc.Driver"); 24 String url = "jdbc:mysql://localhost:3306/studata";//localhost 為本級地址,studata為資料庫名 25 String userName = "root"; 26 String password = "root"; 27 con = DriverManager.getConnection(url, userName, password);// 獲取連線 28 29 System.out.println("資料庫連線成功!"); 30 31 String sql = "select * from studata s where s.stuNo = ?";//預編譯語句,?代表引數 32 pre = con.prepareStatement(sql);// 例項化預編譯語句 33 pre.setInt(1, 10000);;// 設定引數,前面的1表示引數的索引,而不是表中列名的索引 34 result = pre.executeQuery();// 執行查詢,注意括號中不需要再加引數 35 metaData = result.getMetaData();//獲取表頭資訊 36 while (result.next()) { 37 // 當結果集不為空時 38 System.out.println(metaData.getColumnName(1) + " " + metaData.getColumnName(2)); 39 40 System.out.println(result.getString("stuNo") + " " + result.getString("stuName")); 41 } 42 43 } catch (Exception e) { 44 // TODO Auto-generated catch block 45 e.printStackTrace(); 46 } finally { 47 // 逐一將上面的幾個物件關閉,因為不關閉的話會影響效能、並且佔用資源 48 // 注意關閉的順序,最後使用的最先關閉 49 if (result != null) 50 try { 51 result.close(); 52 if (pre != null) 53 pre.close(); 54 if (con != null) 55 con.close(); 56 System.out.println("資料庫連線已關閉!"); 57 } catch (SQLException e) { 58 // TODO Auto-generated catch block 59 e.printStackTrace(); 60 } 61 62 } 63 64 } 65 66 }
3.執行結果
資料庫連線成功! stuNo stuName 10000 趙軍 資料庫連線已關閉!