在開發一個軟體專案時,最重要的、基本的和內在的方面之一是一個結構合理的資料庫模式。這相當於建造一所需要確保地基適當鋪設的房子,否則建造優質房屋的機會大大減少。
令人驚訝的是,這比人們想象的要容易得多,讓我們學習一下用於編寫結構良好的資料庫模式的各個方面。
首先,開啟您喜愛的文字編輯器。建立資料庫架構只需要一個純文字檔案。資料庫由多個表組成,每個表由列組成,CREATE TABLE語法用於建立單個表。下面是一個基本示例:
CREATE TABLE users (id INT NOT NULL,is_active TINY INT NOT NULL,full_name VAR CHAR(100) NOT NULL,email VARCHAR(100) NOT NULL);如您所見,這將建立一個名為users的資料庫表,該表由四列組成。這應該是一個相當直截了當的SQL語句,以CREATE TABLE開頭,後跟資料庫表的名稱,然後在括號內用逗號分隔表的列。
如上所示,表中包含的列用逗號分隔。每個列定義由三個相同的部分組成:
COL_NAME TYPE [OPTIONS]列的名稱,後跟列型別,然後是任何可選引數。稍後我們將討論可選引數,但重點是列型別,下面列出了可用的最常用列型別:
出於所有目的,上面的列型別都是編寫構造良好的mySQL資料庫模式所需要的。
定義列時,還可以指定各種選項。下面是CREATE TABLE語句的另一個示例:
CREATE TABLE users (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(100) NOT NULL UNIQUE,status ENUM('active','inactive') NOT NULL DEFAULT 'active',balance DECIMAL(8,2) NOT NULL DEFAULT 0,date_of_birth DATETIME,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP);上面這些看起來有點嚇人,但不用擔心,很簡單。分解一下,下面是在上面的陳述中發生的事情:
上面是一個結構良好的資料庫表的示例,應該用作以後的示例。
使用關係資料庫(如mySQL)的最大優點之一是它非常支援外來鍵約束和級聯。這是指透過列將兩個錶鏈接在一起,形成父子關係,因此刪除父行時,也會自動刪除必要的子行。
舉個例子:
CREATE TABLE users (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(100) NOT NULL UNIQUE,full_name VARCHAR(100) NOT NULL,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP) engine=InnoDB;CREATE TABLE orders (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,userid INT NOT NULL,amount DECIMAL(8,2) NOT NULL,product_name VARCHAR(200) NOT NULL,FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE) engine=InnoDB;您將注意到外來鍵子句是最後一行。這一行只是說明這個表包含子行,這些子行由userid列連結到它們的父行,父行是users表的id列。這意味著,每當從users表中刪除一行時,mySQL都會自動從orders表中刪除所有相應的行,從而確保資料庫的結構完整性。
還要注意上面語句末尾的engine=InnoDB。儘管InnoDB現在是預設的mySQL表型別,但並不總是這樣,所以為了安全起見,應該新增它,因為級聯只適用於InnoDB表。
現在,您可以很好地構建可靠、結構良好的mySQL資料庫模式了。利用以上知識,您現在可以編寫組織良好的模式,同時提供效能和結構完整性。
在您的模式就位後,確保您知道如何將其與這些基本的SQL命令一起使用。
關鍵區別–sql與mysql 資料庫是資料的集合。有各種型別的資料庫。關係資料庫是以表的形式儲存資料的資料庫型別。這些表是相互關聯的,因為它們使用約束。MySQL是一個關係資料庫管理系統。用於對資料庫執行操作的語言稱...
...言。PHP程式碼可以很容易地嵌入HTML程式碼。PHP中有各種資料型別,如整數、布林值、Null、字串、陣列和物件。PHP可用於檔案操作,如開啟、關閉、讀取和寫入檔案。可以處理資料收集和傳送電子郵件的表格。PHP支援HTTP cookies。C...
主要區別——memcached與redis 關係資料庫是一種常見的資料庫型別,但不適合儲存大量資料。因此,引入了NoSQL。它代表非關係或非SQL。Memcached和Redis屬於NoSQL。Memcached和Redis的主要區別在於,Memcached是一個開源的、高效能的分散...
...te 現代應用程式需要快速高效的效能,一個常用的輕量級資料庫管理系統就是SQLite。儘管SQLite被廣泛使用,但它也有一些侷限性。SQLite查詢可能很慢,而且可能更難管理大量資料。當資料數量增加時,程式碼遷移也變得更加困難...
關鍵區別–nosql與mongodb 關係資料庫管理系統(RDBMS)被許多組織使用。結構化查詢語言(SQL)用於儲存、檢索和修改關係資料庫中的資料。它們在儲存大量資料方面效率不高,而且很難進行橫向擴充套件。因此,引入了NoSQL。...
Java提供JDBC(Java資料庫連線),作為JavaSDK(軟體開發工具包)的一部分。使用這個API,很容易連線到關係資料庫,並執行查詢、**、更新和刪除記錄等常見操作。 ...
如果您經常編寫連線到資料庫伺服器的應用程式,那麼如果您知道如何在Windows機器上安裝MySQL資料庫以進行測試,這會有所幫助。 ...
... MySQL——SQL允許資料庫和網站之間的通訊,允許使用者測試和儲存電子郵件、密碼和任何其他資料輸入。我們會將此用於您的本地WordPress帳戶。 ...
...很多方法可以對網站進行密碼保護。你可以設定一個線上資料庫並編寫你自己的登入系統程式碼,也可以使用內容管理系統,比如Wordpress。 ...
...態或***站(即,依賴於標準、預寫頁面的網站,或者使用資料庫填充頁面的網站)。 ...