1.什麼是數據庫,數據庫有什麼做用?mysql
數據庫(database)就是存儲數據的倉庫,其本質是一個文件系統,數據按照特定的格式將數據存儲起來,用戶能夠對數據庫中的數據進行增長,修改,刪除及查詢操做sql
2.數據庫的分類數據庫
層次結構
網狀結構
關係化數據庫
關係數據庫,是創建在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。
關係結構模型數據庫,使用二維表格來存儲數據.服務器
3.常見關係化數據庫函數
4.Mysql的安裝大數據
MySQL數據庫的安裝和配置
配置Mysql按照bin目錄到Path中
使用命令行窗口鏈接MYSQL數據庫
mysql –u用戶名 –p密碼
MySQL數據庫Root密碼重置url
5.MySQL數據庫服務器、數據庫和表的關係命令行
所謂安裝數據庫服務器,只是在機器上裝了一個數據庫管理程序,這個管理程序能夠管理多個數據庫,通常開發人員會針對每個應用建立一個數據庫。
爲保存應用中實體的數據,通常會在數據庫建立多個表,以保存程序中實體的數據。
數據庫服務器、數據庫和表的關係如圖所示:對象
6.SQL語言簡介排序
Structured Query Language, 結構化查詢語言
非過程性語言
SQL是用來存取關係數據庫的語言,具備查詢、操縱、定義和控制關係型數據庫的四方面功能
SQL的語法有如下要求:
SQL語句能夠單行或多行書寫,以分號結尾;
可以使用空格和縮進來加強語句的可讀性;
MySQL數據庫的SQL語句不區分大小寫,建議使用大寫,例如:SELECT * FROM user
7.SQL分類
DDL (數據定義語言)
數據定義語言 - Data Definition Language
用來定義數據庫的對象,如數據表、視圖、索引等
DML (數據操縱語言)
數據處理語言 - Data Manipulation Language
在數據庫表中更新,增長和刪除記錄
如 update, insert, delete
DCL (數據控制語言)
數據控制語言 – Data Control Language
指用於設置用戶權限和控制事務語句
如grant,revoke,if…else,while,begin transaction
DQL (數據查詢語言)
數據查詢語言 – Data Query Language
select
8.使用SQL操做數據庫
1.鏈接數據庫
mysql -u root -p 密碼
2.建立數據庫
create database 要建立數據庫的名稱;
3.查看全部的數據庫
show databases;
4.刪除數據庫
drop database 要刪除數據庫的名稱;
5.切換數據庫
use 要切換的數據庫的名稱;
9.使用SQL操做數據庫表
1.建立表
create table 表名稱 (
字段 類型,
字段 類型
)
2.查看錶結構
desc 表名稱;
3.刪除表
drop table 要刪除的表名稱;
4.查看當前數據庫全部表
show tables;
10.MySQL經常使用數據類型
字符串型
VARCHAR、CHAR
大數據類型
BLOB、TEXT
數值型
TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
邏輯性
BIT
日期型
DATE、TIME、DATETIME、TIMESTAMP
11.使用SQL操做數據庫中表記錄1
1.插入記錄
insert into 表名 values(要添加的值…);
當添加的字段的數據類型是int類型,直接寫值
若是添加的字段類型是varchar類型和日期類型,使用單引號把值包起來
2.修改記錄
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 where 條件;
3.刪除記錄
delete from 表名 where 條件
4.查詢記錄
select 字段名 (*) as別名 from 表名 where 條件
5.去除表中重複記錄
select distinct * from 表名;
12.Mysql的約束
6.MySQL的約束
a.非空約束 not null
* 表示數據不能爲空
b.惟一性約束 unique
* 表中的記錄不能重複的
c.主鍵約束 primary key
* 表示非空,惟一性
* 自動增加 auto_increment
13.使用SQL操做數據庫表記錄2
6.where子句使用
a. 運算符 <, >, >=, <=
b. in 顯示在in列表中的值
c. and 多個條件同時知足
d. like 模糊查詢
7.查看當前運行的數據庫
select database();
8.排序
order by 字段名 asc 升序
order by 字段名 desc 降序
14.聚合函數
1.count()函數
select count(*) from …where….
2.sum()函數
select sum(要進行求和字段) from …where….
3. avg()函數
select avg(要計算平均數的字段名稱) from …
4. max()函數
select max(字段) from…
5. min()函數
select min(字段) from…
15.分組查詢
語法 group by + 分組字段
create table orders(id int,name varchar(20),price int);
insert into orders values(1,」dianshi」,2000);
insert into orders values(2,’dianshi’,2000);
insert into orders values(3,’bingxiang’,1000);
insert into orders values(4,」空調」,1000);
16.Sql中limit關鍵字
limit 關鍵字
從第幾條開始查詢幾條
17.多表之間的關係
一對一
一對多
多對多
18.JDBC簡介
JDBC(Java DataBase Connectivity),Java數據庫的鏈接
JDBC使用到的類和接口:
DriverManager,Connection,Statement,ResultSet
JDBC操做步驟:
第一步,加載數據庫的驅動
DriverManager裏面registerDriver(Driver driver)
第二步,建立與數據庫的鏈接
DriverManager裏面getConnection(String url, String user, String password)
第三步,編寫sql語句
第四步,執行sql語句
Statement裏面executeQuery(String sql)
第五步,釋放資源(關閉鏈接)
19.JDBC的DriverManager對象
registerDriver(Driver driver) :
參數是數據庫的驅動,這個驅動是由數據庫提供的。
(a) 這個方法在實際開發中,通常不使用,由於這個方法會加載驅動兩次
(b) 通常在開發中使用反射的方式加載數據庫的驅動
Class.forName(「com.mysql.jdbc.Driver」);
getConnection(String url, String user, String password),返回Connection。
第一個參數:表示要鏈接的數據庫
寫法:jdbc:mysql://數據庫的ip:數據庫的端口號/鏈接的數據庫的名稱
jdbc:mysql://localhost:3306/testdb2
簡寫的方式:jdbc:mysql:///testdb2(使用範圍:鏈接的數據庫是本機,端口是3306)
第二個參數:表示鏈接數據庫的用戶名
第三個參數:表示鏈接數據庫用戶密碼
20.JDBC的Connection對象
Connection表明數據庫的鏈接
建立statement對象
Statement createStatement()
建立預編譯對象 PreparedStatement
PreparedStatement prepareStatement(String sql)
21.JDBC的Statement對象
Statement是用來執行sql語句的對象
1.執行查詢操做方法
ResultSet executeQuery(String sql) ,返回查詢的結果集
2.執行增長 修改 刪除的方法
int executeUpdate(String sql) ,返回成功的記錄數
3.執行sql語句的方法
boolean execute(String sql) ,返回是布爾類型,若是執行的是查詢 的操做返回true,不然返回的false
4.執行批處理的方法
addBatch(String sql):把多個sql語句放到批處理裏面
int[] executeBatch():執行批處理裏面的全部的sql
22.JDBC的ResultSet對象
ResultSet表明查詢返回的結果。 1.遍歷結果集 next(); 2.獲得數據的具體值 getString(「字段名稱」) getInt(「字段名稱」) getObject(「字段名稱」)