# 表基本操作
## MySQL的存儲引擎
在較為大型的應用系統中,我們一般為將數據庫做**讀寫分離**操作。
MySQL的主要存儲引擎:
* **InnoDB:**支持事務
> 事務:多條指令原子性的執行。
* MyISAM:不支持事務,但是它的數據訪問效率較高
## 表操作
**創建表**
> 表的元素有:表名、表的字段
>
> 表字段的元素有:字段名、**數據類型**、字段長度、**約束**
```sql
CREATE TABLE table_name (
字段名稱 字段數據類型 [字段約束],
字段名稱 字段數據類型 [字段約束]
)
```
示例:
```sql
-- 創建表的語句
CREATE TABLE student_info (
code VARCHAR(50),
name VARCHAR(50)
)
```
**SQL語言的注釋**
用`--`表示注釋部分的內容
**MySQL 字段數據類型**
> 主要分為:數值、日期、字符串三種類型。
數值類型:MySQL 是支持所有標準 SQL 中的數值類型。在絕大多數的應用程序中,我們使用 INT 和 DECIMAL 類型就可以了。
* INT:整型
* DECIMAL:浮點類型
* 其他數值類型:SMALLINT、NUMBERIC
日期類型:一般使用 DATETIME (用日期和時間構成)、DATE(只是表示日期),其他不常用的還有 TIME 、YEAR等等。
字符串類型:一般最常使用 VARCHAR(可變長度)、CHAR(定長)、TEXT(長文本類型,例如博客文章等數據),其他不常用的還有 LONGTEXT、TINYTEXT等等。
> VARCHAR 和 CHAR 的區別:例如 VARCHAR 定義的長度為 200,在使用的時候是存儲了 4 個字符長度的字符串,那么在數據庫中只會占用 4 個字符的數據空間,CHAR 是定長,無論存儲多少數據,在數據空間中都會占用到定義的長度。
在數據中,我們一般不會去存儲類似照片、視頻這樣的二進制文件,而是把這些文件在服務器中的訪問地址用字符串類型的數據進行存儲。
> 在定義數據庫字段名稱時,由于數據庫不區分大小寫,所以,一般碰到了多個單詞,我們用`_`分隔
示例:
```sql
-- 創建表的語句
CREATE TABLE student_info (
code CHAR(2),
name VARCHAR(50),
age INT(12),
weight DECIMAL(10, 2),
birthday DATE,
in_school DATETIME,
description TEXT
)
```
**表的約束**
在一個完整的表中,是需要對表中的字段進行相關約束的。
> 使用約束主要是為了保證數據表中數據的合法性以及相對完整性。
約束類型包括:
* 主鍵約束(PRIMARY KEY:PK):唯一的確定在數據表中的記錄,而且主鍵約束是不能為空的,我們一般使用沒有業務含義的字段去進行主鍵定義,在MySQL中可以使用自增長類型的主鍵或者可以使用 UUID 。
* 非空約束(NOT NULL)
* 默認值(DEFAULT)
* 唯一約束(UNIQUE KEY:UK)
* 外鍵約束(FOREIGN KEY:FK)
語法:
```sql
CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段) REFERENCES 外鍵關聯表(關聯表的字段)
```
* 自動增長(AUTO\_INCREMENT)、
綜合示例:
```sql
-- 創建表的語句
CREATE TABLE student_info1 (
id INT AUTO_INCREMENT PRIMARY KEY,
-- 建立非空和唯一性約束
code CHAR(2) NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL DEFAULT 'zhangsan',
age INT(12) NOT NULL,
weight DECIMAL(10, 2),
birthday DATE NOT NULL,
in_school DATETIME NOT NULL,
description TEXT
)
CREATE TABLE student_account1 (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT,
account VARCHAR(20),
password VARCHAR(20),
CONSTRAINT FK_SI_SA_01 FOREIGN KEY (student_id) REFERENCES student_info1(id)
)
```
> 主鍵是用來定義一條記錄的唯一性的,在應用程序中,一般通過 ID 找到某條記錄,主鍵是不會用過更新的。
>
> 在建立了外鍵關系的兩個表中,一般是子表通過某個字段引用主表的**主鍵**數據,如果要去對外鍵數據進行處理,一般我們會先解除外鍵關系,然后對數據處理后再加上。
**刪除表**:自學完成
**修改表**:自學完成
XMind
- 前言
- 計算機軟件概論
- HTML基礎
- Web原理和HTML簡介
- Web原理
- HTML概念
- HTML標簽
- 標簽
- HTML固定基本結構
- 第一個HTML頁面
- 工具的使用
- 標題
- <hr>和<p>標簽
- 路徑概念
- 超級鏈接
- 列表
- 表格
- 表單的設計與使用
- 表單域的原理
- 文本框和密碼框
- 單選框和復選框
- 下拉列表框
- 多行文本和上傳
- 提交按鈕和重置按鈕
- 為CODING COFFEE加入在線購買頁
- HTML5
- 定位服務
- CSS基礎
- CSS的基礎使用
- CSS簡介
- CSS樣式規則和加載方式
- 內聯元素和區塊元素介紹
- 選擇器
- 偽類
- CSS顏色
- 背景圖片
- 文本
- CSS列表
- DIV+CSS布局
- 盒子模型的邊距和邊框
- Display屬性
- 浮動和清除浮動
- 用Position屬性進行定位
- 專題:居中和對齊
- CSS新特性
- CSS3邊框
- 動畫
- JavaScript基礎
- Hello World!
- 語句和變量
- 一切皆對象
- 標識符、注釋和區塊
- 基本數據類型和引用數據類型
- 語句
- 條件語句
- 循環語句
- 數據類型
- typeof
- number
- 字符串
- 布爾類型
- 函數
- 數組
- 運算符
- 加法運算符
- 算術、賦值、比較運算符
- 布爾運算符
- DOM模型
- DOM和DOM節點
- 特征相關屬性
- 節點對象的方法
- Element對象
- Attribute對象
- Text節點和CSS操作
- 事件模型
- 標準庫
- Number對象
- String對象
- Array對象
- Date、Boolean和Math對象
- JSON對象
- 面向對象編程中的 this
- Web Storage
- 錯誤處理機制
- Error對象和try..catch語句
- javascript的原生錯誤類型
- BOM模型
- window對象
- 計時事件
- jQuery基礎
- 認識jQuery
- jQuery對象和DOM對象
- jQuery選擇器
- jQuery Dom操作
- 查找節點和創建節點
- 插入節點和刪除節點
- 復制節點和替換節點
- 包裹節點和屬性操作
- 樣式操作
- 設置和獲取HTML、文本和值
- 遍歷節點和CSS操作
- jQuery 事件和動畫
- 事件綁定與冒泡處理
- jQuery動畫
- jQuery 插件
- validate 插件
- jQuery與Ajax的應用
- Ajax簡介
- jquery中的Ajax
- Bootstrap基礎
- 起步
- 柵格系統
- 排版樣式
- 表格和按鈕
- 表單和圖片
- 輔助類和響應式工具
- 圖標菜單按鈕組件
- 輸入框和導航組件
- 路徑、分頁、標簽和徽章組件
- 巨幕、頁頭、縮略圖和警告框
- 進度、條媒體對象和Well組件
- 列表組和嵌入組件
- 數據庫
- 數據庫介紹
- MySQL的安裝
- SQL
- 表基本操作
- 修改數據語句
- 數據檢索操作
- 多表數據操作
- 表結構設計
- 綜合應用
- JAVA
- JAVA 介紹
- JAVA 運行原理
- JDK 配置
- 類和對象
- 數據類型
- 變量
- 直接量
- 運算符
- 流程控制
- 數組結構
- 面向對象
- 隱藏和封裝
- 深入構造器
- 類的繼承
- 多態
- 包裝類
- final 修飾符
- 抽象類
- 接口
- 集合框架
- 常用類學習
- 設計模式-單例模式
- 異常處理
- JDBC
- JSP&Servlet
- Web應用
- Tomcat
- JSP
- Scriptlet
- Page 指令
- 包含指令
- 跳轉指令
- 用戶注冊實例
- JSP練習
- 內置對象
- Servlet
- 過濾器
- Web分層思想
- EL表達式
- JSTL
- 分頁實現
- AJAX&JSON
- 開發步驟
- 路徑問題
- Log4j
- Java高級
- 文件操作
- 泛型
- 類加載機制和反射
- 注解 Annotation
- Mybatis框架
- 框架介紹
- Mybatis簡單實現
- 表基本操作
- 優化配置文件
- 表字段名與實體類屬性名不同的解決方案
- 一對一關聯
- 一對多關聯
- Spring框架
- Spring簡介
- IOC控制反轉
- AOP面向切面編程
- SpringMVC框架
- 教學管理
- 學員名錄
- 周測統計
- 2018-03-02
- 2018-03-13
- 2018-03-21
- 課堂作業
- 缺勤記錄
- 默寫記錄
- 班級備忘錄