Serializable,簡單但效率低、無事務、版本演進難。| 類別 | 全稱 | 核心指令 |
|---|---|---|
| DDL | Data Definition Language | CREATE/ALTER/DROP DATABASE/TABLE/INDEX |
| DML | Data Manipulation Language | SELECT/INSERT/UPDATE/DELETE |
| DCL | Data Control Language | GRANT/REVOKE |
CREATE TABLE T (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(50) DEFAULT 'N/A' NOT NULL,
memo NTEXT,
created DATETIME DEFAULT GETDATE(),
amount MONEY,
qty INT DEFAULT 0,
price DECIMAL(12,4) DEFAULT 0,
img IMAGE
);
約束類型:PK、FK、UNIQUE、NOT NULL、CHECK、DEFAULT。
INSERT ... VALUES / INSERT ... SELECTDELETE / TRUNCATE (不可回滾、不觸發 Trigger)UPDATE ... SET ... WHERESELECT [DISTINCT] col [alias] FROM ... WHERE ... ORDER BY ...BETWEEN、IN、LIKE (%、_、ESCAPE)、IS NULL。String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url = "jdbc:sqlserver://localhost:1433;databaseName=Test";
String sql = "SELECT * FROM Users WHERE id=?";
Class.forName(driver);
Connection con = DriverManager.getConnection(url, "user", "pwd");
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, 100);
ResultSet rs = ps.executeQuery();
while (rs.next()) { /* process */ }
rs.close(); ps.close(); con.close();
PreparedStatement 防注入、預編譯重用,優於 Statement。
常用聚合:COUNT/SUM/AVG/MAX/MIN;計數修飾:* / ALL(col) / DISTINCT(col)。
EXISTS / ALL / ANY 量詞。UNION / UNION ALL / EXCEPT / INTERSECT (縱向拼接)。DAO (Data Access Object) 封裝所有資料庫存取,業務邏輯層僅依賴介面,實現**鬆散耦合**、易測試、易遷移。
| 領域 | 技術 | 用途 |
|---|---|---|
| 結構描述/驗證 | DTD / XML Schema (XSD) | 定義元素、屬性、資料型別、約束 |
| 轉換 | XSL / XSLT | XML → HTML/PDF/其他 XML |
| 查詢 | XPath / XQuery | 節點選取、條件過濾、聚合 |
| 解析 | DOM (樹、隨機存取) / SAX (事件流、低記憶體、單向) | 程式化處理 XML 文檔 |
| 連結/定位 | XLink / XPointer | 跨文檔引用、精準片段定位 |
// 寫入
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("root");
root.addElement("child").addAttribute("attr", "value").setText("content");
OutputFormat fmt = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileOutputStream("out.xml"), fmt);
writer.write(doc); writer.close();
// 讀取 (SAXReader + 迭代器)
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("in.xml"));
for (Iterator i = doc.getRootElement().elementIterator(); i.hasNext(); ) {
Element e = (Element) i.next();
System.out.println(e.getName() + " = " + e.getTextTrim());
}
從關係理論到 SQL、JDBC、DAO、ER 建模、正規化、XML 全棧技術,構建了企業級資料存取與交換的完整知識骨架。實戰中請根據資料量、併發、跨平台需求,在 RDBMS、NoSQL、XML/JSON 之間做理性選型。