2011年12月24日 星期六

[MySQL]2-1 表格的關連及限制用法_PK_FK_UK_INDEX

表格的關連及限制用法_PK_FK_UK_INDEX
例:
建立user table
CREATE TABLE user (
      id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '這是PK_ID',
      username  varchar(20) NOT NULL DEFAULT '名字',
      account_number varchar(20) NOT NULL COMMENT '帳號',
      password varchar(255) NOT NULL DEFAULT '123' COMMENT '密碼預設為123',
      PRIMARY KEY(id),
      UNIQUE KEY account_number (account_number)
)AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

新增user table 資料
INSERT INTO user (id,username,account_number)
VALUES  (1,'Mr. Wu','wu123'),
                (2,'Mr. Wang','wang1'),
              (3,'Mr. Lin','lin'),
                (4,'Mr. ERIC','eric');

建立 user 的職業occupation
CREATE TABLE occupation (
      id bigint(20)    NOT NULL AUTO_INCREMENT ,
      occupation CHAR(20) NOT NULL COMMENT '職業',
      salary int(20)   NOT NULL DEFAULT 0,
      user_id bigint(20)   NOT NULL,
      PRIMARY KEY (id),
      FOREIGN KEY fk_occupation(user_id) REFERENCES user(id)
)AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

occupation table 資料
INSERT INTO occupation (occupation,salary,user_id)
VALUES ('軍人',40000,1),
                ('老師',45000,2),
                ('商人',98000,3),
              ('敗家',-35000,4),
                ('業務',25000,2);

說明:
1、PRIMARY KEY 主鍵設定
PRIMARY KEY  是設定此表格欄位值獨一無二的值
PRIMARY KEY (欄位名稱)
例:在user table 及 occupation table 的主鍵名稱是id
PRIMARY KEY (id)

2、FOREIGN KEY 外來鍵
FOREIGN KEY 是設定此表格有參考(關連)到其它表格的值
FOREIGN KEY 建立FK的名稱且是資料庫唯一的名稱(欄位名稱)
            REFERENCES 參考表格(欄位名稱)
例:在occupation table 有個欄位user_id參考 user table id
FOREIGN KEY fk_occupation(user_id) REFERENCES user(id)

3、UNIQUE KEY 唯一鍵
UNIQUE KEY 是設定表格欄位值不重複的值
UNIQUE KEY 建立名稱(欄位名稱)
例:在user table 有個帳號的欄位account_number不可以重複值
UNIQUE KEY account_number (account_number)

4、NOT NULL
設定不可以有null值

5、AUTO_INCREMENT
是自動產生主鍵值
最後要加起始值
AUTO_INCREMENT=1

6、COMMENT '這是PK_ID'
說明或註解

7、DEFAULT
設定初值,
如果你沒有insert 此欄位,會自動補初值。

8、DEFAULT CHARSET=utf8
設定編碼為utf8

表格的關連及限制用法INDEX

INDEX|KEY} [index_name] [index_type] (index_col_name,...)



CREATE TABLE user (
      id  bigint(20 NOT NULL AUTO_INCREMENT COMMENT '這是PK_ID',
      username   varchar(20 NOT NULL DEFAULT '名字',
      account_number  varchar(20 NOT NULL  COMMENT '帳號',
      password  varchar(255 NOT NULL DEFAULT '123'  COMMENT '密碼預設為123',
      PRIMARY KEY(id),
      UNIQUE KEY account_number (account_number),
      KEY(username)
)AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


PK 預設就有INDEX了。

參考資料


















其它文章

沒有留言:

張貼留言

標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...