數(shù)據(jù)庫基本知識(自己整理,初學(xué)者可以看一下,基于MySql).doc_第1頁
數(shù)據(jù)庫基本知識(自己整理,初學(xué)者可以看一下,基于MySql).doc_第2頁
數(shù)據(jù)庫基本知識(自己整理,初學(xué)者可以看一下,基于MySql).doc_第3頁
數(shù)據(jù)庫基本知識(自己整理,初學(xué)者可以看一下,基于MySql).doc_第4頁
數(shù)據(jù)庫基本知識(自己整理,初學(xué)者可以看一下,基于MySql).doc_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)庫1 常見數(shù)據(jù)庫1.1 MySql : 甲骨文1.2 Oracle: 甲骨文1.3 SQL Server: 微軟1.4 Sybase: 賽爾斯1.5 DB2: IBM2 MySql基礎(chǔ)知識2.1 關(guān)系結(jié)構(gòu)數(shù)據(jù)模型數(shù)據(jù)庫2.2 SQL(Structured Query Language)結(jié)構(gòu)化查詢語言2.2.1 DDL(Data Definition Language):數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫對象:庫、表、列等操作數(shù)據(jù)庫CREATE DATABASE IF NOT EXISTSmydb1USE mydb1DROP DATABASE IF NOT EXISTS mydb1ALTER DATABASE mydb1 CHARACTER SET utf8操作表插入表CREATE TABLE stu( sid CHAR(6), sname VARCHAR(20), age INT, gender VARCHAR(10) );更改表ALTER TABLE t_user ADD (student varcher(20)ALTER TABLE t_user MODIFY gender CHAR(20)ALTER TABLE t_user CHANGE gender VARCHER(20)ALTER TABLE t_user REMANE genderTO gendersALTER TABLE t_user DROP gender刪除表DROP TABLE t_user2.2.2 DML(Data Manipulation Language):數(shù)據(jù)操作語言,用來定義數(shù)據(jù)庫記錄(數(shù)據(jù))插入數(shù)據(jù)INSERT INTO t_user VALUES()INSERT INTO 表名 VALUES(值1,值2,)更新數(shù)據(jù)UPDATE t_user SET name=UPDATE 表名 SET 列名1=值1, 列名n=值n WHERE 條件刪除數(shù)據(jù)雖然TRUNCATE和DELETE都可以刪除表的所有記錄,但有原理不同。DELETE的效率沒有TRUNCATE高!TRUNCATE其實(shí)屬性DDL語句,因?yàn)樗窍菵ROP TABLE,再CREATE TABLE。而且TRUNCATE刪除的記錄是無法回滾的,但DELETE刪除的記錄是可以回滾的(回滾是事務(wù)的知識?。?。 DELETE FROM t_user DELETE FROM 表名 WHERE 條件TRUNCATE TABLE stu; TRUNCATE TABLE 表名2.2.3 DCL(Data Control Language):數(shù)據(jù)控制語言,用來定義訪問權(quán)限和安全級別創(chuàng)建用戶CREATE USER 用戶名地址 IDENTIFIED BY 密碼;給用戶授權(quán)GRANT 權(quán)限1, , 權(quán)限n ON 數(shù)據(jù)庫.* TO 用戶名查看用戶權(quán)限SHOW GRANTS FOR 用戶名撤銷用戶權(quán)限REVOKE權(quán)限1, , 權(quán)限n ON 數(shù)據(jù)庫.* FORM 用戶名刪除用戶DROP USER 用戶名修改用戶名密碼UPDATE USER SET PASSWORD=PASSWORD(1234) WHERE User=user2 and Host=localhost; FLUSH PRIVILEGES;2.2.4 DQL(Data Query Language):數(shù)據(jù)查詢語言,用來查詢記錄(數(shù)據(jù))基礎(chǔ)查詢SELECT selection_list /*要查詢的列名稱*/FROM table_list /*要查詢的表名稱*/WHERE condition /*行條件*/GROUP BY grouping_columns /*對結(jié)果分組*/HAVING condition /*分組后的行條件*/ORDER BY sorting_columns /*對結(jié)果分組*/LIMIT offset_start, row_count /*結(jié)果限定*/模糊查詢SELECT * FROM t_user WHERE name LIKE_聚合函數(shù)COUNT(); MAX();MIN();AVG();SUM();多表查詢連接查詢內(nèi)連接SELECT * FROM department d INNER JOIN employee e ON d.deptno = e.deptno左連接SELECT * FROM department d LEFT JOIN employee e ON d.deptno = e.deptno右連接SELECT * FROM department d RIGHT JOIN employee e ON d.deptno = e.deptno自然連接查詢內(nèi)連接SELECT* FROM department d NATURAL INNER JOIN employee e左連接SELECT* FROM department d NATURAL LEFT JOIN employee e右連接SELECT* FROM department d NATURAL RIGHT JOIN employee e2.3 完整性約束(主外鍵)2.3.1 主鍵特點(diǎn)非空唯一被引用語法CREATE TABLE stu( sid CHAR(6) PRIMARY KEY, sname VARCHAR(20), age INT, gender VARCHAR(10) );ALTER TABLE stu ADD PRIMARY KEY(sid);CREATE TABLE stu( sid CHAR(6), sname VARCHAR(20), PRIMARY KEY(sid) );2.3.2 外鍵外鍵必須引用另一張票的主鍵CREATE TABLE t_section( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(30), u_id INT, CONSTRAINT fk_t_user FOREIGN KEY(u_id) REFERENCES t_user(uid) );2.4 多表查詢2.4.1 合并結(jié)果集笛卡爾積2.4.2 連接查詢內(nèi)連接方言Select * from emp AS e, dept AS d WHERE emp.deptno= dept.deptnoAS可以省略標(biāo)準(zhǔn)SELECT * FROM emp e INNER JOIN dept d ON e.deptno = d.deptnoINNER 可以省略外連接左外連接Select * from emp e LEFT OUTER JOIN dept d ON e.deptno = d.deptno OUTER可以省略右外連接Select * from emp e RIGHT OUTER JOIN dept d ON e.deptno = d.deptno OUTER可以省略自然連接SELECT * FROM emp NATURAL JOIN dept;SELECT * FROM emp NATURAL LEFT JOIN dept;SELECT * FROM emp NATURAL RIGHT JOIN dept;2.4.3 子查詢子查詢結(jié)果集的形式 單行單列(用于條件) 單行多列(用于條件) 多行單列(用于條件) 多行多列(用于表)2.5 關(guān)系模型(表)2.5.1 一對多/多對一2.5.2 多對多2.5.3 一對一3 數(shù)據(jù)庫基礎(chǔ)知識3.1 JDBC3.1.1 JDBC(Java DataBase Connectivity)就是Java數(shù)據(jù)庫連接,說白了就是用Java語言來操作數(shù)據(jù)庫3.1.2 JDBC核心類(接口)介紹DriverManagerConnectionStatement用于向數(shù)據(jù)庫發(fā)送SQL語句l void executeUpdate(String sql):執(zhí)行更新操作(insert、update、delete等);l ResultSet executeQuery(String sql):執(zhí)行查詢操作,數(shù)據(jù)庫在執(zhí)行查詢后會(huì)把查詢結(jié)果,查詢結(jié)果就是ResultSet;批處理l void addBatch(String sql):添加一條語句到“批”中;l int executeBatch():執(zhí)行“批”中所有語句。返回值表示每條語句所影響的行數(shù)據(jù);l void clearBatch():清空“批”中的所有語句。PreparedStatementStatement接口的子接口優(yōu)點(diǎn) 防SQL攻擊; 提高代碼的可讀性、可維護(hù)性; 提高效率!API 給出SQL模板! 調(diào)用Connection的PreparedStatement prepareStatement(String sql模板); 調(diào)用pstmt的setXxx()系列方法sql模板中的?賦值! 調(diào)用pstmt的executeUpdate()或executeQuery(),但它的方法都沒有參數(shù)。批處理pstmt.addBatch()ResultSetrs.next();/光標(biāo)移動(dòng)到第一行rs.getInt(1);/獲取第一行第一列的數(shù)據(jù)3.2 DBUtils3.2.1 DBUtils是Apache Commons組件中的一員,開源免費(fèi),是對JDBC的簡單封裝3.2.2 API構(gòu)造方法QueryRunner qr = new QueryRunner();QueryRunner qr = new QueryRunner(dataSource)增刪改查update():執(zhí)行insert、update、delete;query():執(zhí)行select語句public T query(String sql, ResultSetHandler rh, Object params)public T query(Connection con, String sql, ResultSetHandler rh, Object params)batch():執(zhí)行批處理3.3 數(shù)據(jù)庫連接池3.3.1 Java為數(shù)據(jù)庫連接池提供了公共的接口:javax.sql.DataSource,各個(gè)廠商可以讓自己的連接池實(shí)現(xiàn)這個(gè)接口3.3.2 Tomcat配置連接池JNDI(Java Naming and Directory Interface),Java命名和目錄接口。JNDI的作用就是:在服務(wù)器上配置資源,然后通過統(tǒng)一的方式來獲取配置的資源。3.3.3 DBCPDBCP是Apache提供的一款開源免費(fèi)的數(shù)據(jù)庫連接池 BasicDataSource3.3.4 C3P0ComboPooledDataSourceC3P0也是開源免費(fèi)的連接池3.4 Java中的時(shí)間類型3.4.1 java.sql包下的三個(gè)時(shí)間類型的類都是java.util.Date的子類3.4.2 java.sql.Date - java.u

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論