mysql 數據庫基本操做

<html> <head> <title>Evernote Export</title> <basefont face="微軟雅黑" size="2" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="exporter-version" content="YXBJ Windows/600753 (zh-CN, DDL); Windows/10.0.0 (Win64);"/> <style> body, td { font-family: 微軟雅黑; font-size: 10pt; } </style> </head> <body> <a name="404"/>html

<div> <span><div><div> 使用終端操做數據庫</div><div><br/></div><div> 1.如何查看有什麼數據庫? </div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>show databases;</div></div><hr/><div> </div><div> 2.如何選擇數據庫? </div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>use databasesName;</div></div><hr/><div> </div><div> 3.如何查看該數據庫中有哪些表? </div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>show tables;</div></div><hr/><div> </div><div><span> </span>4.如何查詢表中的數據? </div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>select * from tableName;</div></div><hr/><div> </div><div><span> </span> 5.如何退出數據庫服務器?</div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>exit;</div></div><div><br/></div><hr/><div> 6.如何在數據庫服務器中建立本身的數據庫? </div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>create database databaseName;</div></div><hr/><div> </div><div> 7.如何建立一個數據表? 建立一個pet表</div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>create TABLE pet(</div><div> name VARCHAR(20),</div><div> owner VARCHAR(20),</div><div> specise VARCHAR(20),</div><div> sex CHAR(1),</div><div> brith DATAE,</div><div> death DATE );</div><div><br/></div><div><br/></div></div><div><br/></div><div><br/></div><div> 注意事項:</div><div> <span style="font-weight: bold;">1</span>:var()與varchar()的區別在於var()是定常的,哪怕存儲的字符串沒有達到&quot;()&quot;中數字的上限,var()依然會佔用空格來填充空間.而varchar()則是不定長的,沒有達到&quot;()&quot;中的上限則會自動去掉後面的空格;</div><div> <span style="font-weight: bold;">2</span>:性別不要用:sex 要用:gender 一個是性 一個是性別;</div><div> <span style="font-weight: bold;"> 3:</span>定義最後一個字段的時候不要加&quot;,&quot;;</div><div> <span style="font-weight: bold;">4</span>:上面的&quot;VAR&quot;,&quot;VARCHAR&quot;,&quot;DATE&quot;能夠用小寫.不過最好用大寫來表示區分關鍵字,若否則也許寫到後面你本身都不知道這個詞是數據庫中的關鍵字仍是你本身自定義的一些數據,同時必定要用英文的標點符號也必須半角輸入</div><hr/><div> 8.如何查看數據表的架構? </div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>describe tableName;</div><div> 說明:</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+-------+</div><div> Field : 字段的名稱</div><div> Type : 字段的類型,能夠有int var varchar </div><div> Key : 是不是關鍵字 如能夠定義爲: primary key 或者 unique key ...</div><div>Default: : 如果該字段沒有主動設置值的時候,該字段的默認值是什麼?</div></div><div> </div><hr/><div> 9.如何插入數據?</div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div> INSERT INTO pet VALUES('kk','cc','dog','1','1998-8-2',null);</div></div><div> +------+-------+---------+------+------------+-------+</div><div> | name | owner | specise | sex | brith | death |</div><div> +------+-------+---------+------+------------+-------+</div><div> | kk | cc | dog | 1 | 1998-08-02 | NULL|</div><div> +------+-------+---------+------+------------+-------+</div><div> 注意:</div><div> NULL:表明的是空,表示該字段尚未數據.千萬不要主動填寫'NULL',這表明你的字段有一個值叫作'null'.</div><div><br/></div><div> 其實還有一種寫法:</div><div> </div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div><font color="#5898FF">INSERT INTO pet(name,owner) VALUES ('xx','cc');</font></div><div><font color="#5898FF">表明我只在name和owner字段上面插入的一條,其餘皆爲NULL/默認值的數據</font></div></div><div> </div><hr/><div> 10.mysql 經常使用數據類型</div><div> 注意:金錢最好用int/bigint(整數,單位用分,拿出來進行*100換成元),千萬不要直接用浮點,會有精度損失.</div><div><br/></div><hr/><div> 11.如何刪除數據</div><div> 先插入數據:</div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div> INSERT INTO pet VALUES('kk1','cc1','dog1','1','1998-1-2',null);</div><div> INSERT INTO pet VALUES('kk2','cc2','dog2','2','1998-2-2',null);</div><div> INSERT INTO pet VALUES('kk3','cc3','dog3','1','1998-3-2','1998-12-2');</div><div> INSERT INTO pet VALUES('kk4','cc4','dog4','2','1998-4-2',null);</div></div><div><br/></div><div><br/></div><div> 刪除語句:</div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>DELETE FROM tablesName WHRER 條件;</div></div><div> </div><div> 修改數據:</div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>UPDATE tableName SET 字段1=值1,字段2=值2 ... WHERE 條件;</div></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><hr/><div>總結:1.table的操做 2.表操做的總結</div><hr/><div> 12.mysql建表中的約束</div><div> <span style="font-weight: bold;"> 1.主鍵約束:</span></div><div> 它可以<span style="font-weight: bold;">惟一肯定</span>一張表中的一條記錄,增長主鍵約束以後,就可使得字段不重複並且不爲空 </div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">create table user(</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;"> id int PRIMARY KEY,</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;"> name VARCHAR(20)</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">);</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">INSERT INTO user VALUES (1,'張三');</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;"><br/></span></div><div>+----+------+</div><div>| id | name |</div><div>+----+------+</div><div>| 1 | 張三 |</div><div>+----+------+</div><div><br/></div><div>運行DESCRIBE user;</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| id | int(11) | NO | PRI | NULL | |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+-------+</div><div>發現 id是不能夠爲null 並且 key的值 也變爲:PRI(primary)</div></div><div> </div><div><span style="font-weight: bold;"><span> </span><span> </span><span> </span>2.複合主鍵:</span></div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>CREATE TABLE user2(</div><div> id INT,</div><div> name VARCHAR(20),</div><div> password VARCHAR(20),</div><div> PRIMARY key(id,name)</div><div>);</div><div><br/></div><div>運行DESCRIBE user2;</div><div>+----------+-------------+------+-----+---------+-------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+----------+-------------+------+-----+---------+-------+</div><div>| id | int(11) | NO | PRI | NULL | |</div><div>| name | varchar(20) | NO | PRI | NULL | |</div><div>| password | varchar(20) | YES | | NULL | |</div><div>+----------+-------------+------+-----+---------+-------+</div><div><br/></div><div>INSERT INTO user2 VALUES (1,'老王','123456');</div><div>INSERT INTO user2 VALUES (2,'老王','123456');</div><div><br/></div><div>+----+------+----------+</div><div>| id | name | password |</div><div>+----+------+----------+</div><div>| 1 | 老王 | 123456 |</div><div>| 2 | 老王 | 123456 |</div><div>+----+------+----------+</div></div><div>說明了複合主鍵只要全部的字段都不是相同的狀況下能夠容許其中的字段重複:</div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>INSERT INTO user2 VALUES (1,'老李','123456');</div><div><br/></div><div>SELECT * FROM user2;</div><div>+----+------+----------+</div><div>| id | name | password |</div><div>+----+------+----------+</div><div>| 1 | 老李 | 123456 |</div><div>| 1 | 老王 | 123456 |</div><div>| 2 | 老王 | 123456 |</div><div>+----+------+----------+</div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">場景:表中有班級號以及學生座位號,咱們能夠用班級號+學生的座位號能夠準確的定位一個學生,如:(1班5號能夠準確的肯定一個學生)</font></span></div></div><div> </div><div> <span style="font-weight: bold;">3.自增約束:</span></div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>CREATE TABLE user3(</div><div> id INT PRIMARY KEY AUTO_INCREMENT,</div><div> name VARCHAR(20)</div><div>);</div><div><br/></div><div>運行DESCRIBE user3;</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| id | int(11) | NO | PRI | NULL | <font color="#5898FF">auto_increment</font> |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div><br/></div><div>INSERT INTO user3(name) VALUES('張三');</div><div>INSERT INTO user3(name) VALUES('李四');</div><div>+----+------+</div><div>| id | name |</div><div>+----+------+</div><div>| 1 | 張三 |</div><div>| 2 | 李四 |</div><div>+----+------+</div><div>沒有自定義id值 可是自動生成了id</div></div><div> <span style="font-weight: bold;"> </span></div><div><span style="font-weight: bold;"><span> </span><span> </span><span> </span>4.惟一約束:</span></div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>CREATE TABLE user5(</div><div> id INT PRIMARY KEY AUTO_INCREMENT,</div><div> name VARCHAR(20)</div><div>);</div><div>運行 DESCRIBE user5;</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| id | int(11) | NO | PRI | NULL | auto_increment |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div><br/></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">新增name爲惟一約束:</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">ALTER TABLE user5 ADD UNIQUE(name);</span></div><div>運行 DESCRIBE user5;</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| id | int(11) | NO | PRI | NULL | auto_increment |</div><div>| name | varchar(20) | YES | <font color="#5898FF">UNI</font> | NULL | |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>測試:插入數據</div><div>INSERT INTO user5(name) VALUES ('cc');</div><div>運行 SELECT * FROM user5; 查看結果:</div><div>+----+------+</div><div>| id | name |</div><div>+----+------+</div><div>| 1 | cc |</div><div>+----+------+</div><div>再次插入INSERT INTO user5(name) VALUES ('cc');</div><div><font color="#000000">出現:ERROR 1062 (23000): Duplicate entry 'cc' for key 'name'</font></div><div><br/></div><div>換個試試 INSERT INTO user5(name) VALUES ('aa');</div><div>運行 SELECT * FROM user5; 查看結果:</div><div>+----+------+</div><div>| id | name |</div><div>+----+------+</div><div>| 3 | aa |</div><div>| 1 | cc |</div><div>+----+------+</div><div><font color="#5898FF">總結一下:</font></div><div> <font color="#5898FF">主鍵約束(primary key)中包含了惟一約束</font></div><div><font color="#5898FF">場景:業務需求:設計一張用戶註冊表,用戶姓名必需要用手機號來註冊,並且手機號和用戶名稱都不能爲空,那麼:</font></div><div><font style="color: rgb(88, 152, 255);">CREATE TABLE user_test(</font></div><div><font style="color: rgb(88, 152, 255);"> id INT PRIMARY KEY AUTO_INCREMENT COMMENT'主鍵id',</font></div><div><font style="color: rgb(88, 152, 255);"> name VARCHAR(20)</font> <font color="#5898FF">NOT NULL</font> <font color="#5898FF">COMMENT'用戶姓名,不能爲空',</font></div><div><font style="color: rgb(88, 152, 255);"> phone_number VARCHAR(20) UNIQUE NOT NULL COMMENT'用戶手機,不能重複且不能爲空'</font></div><div><font color="#5898FF">);</font></div><div><font style="color: rgb(88, 152, 255);">運行 DESCRIBE user_test;</font></div><div><font color="#5898FF">+--------------+-------------+------+-----+---------+----------------+</font></div><div><font color="#5898FF">| Field | Type | Null | Key | Default | Extra |</font></div><div><font color="#5898FF">+--------------+-------------+------+-----+---------+----------------+</font></div><div><font color="#5898FF">| id | int(11) | NO | PRI | NULL | auto_increment |</font></div><div><font color="#5898FF">| name | varchar(20) | NO | | NULL | |</font></div><div><font color="#5898FF">| phone_number | int(11) | NO | UNI | NULL | |</font></div><div><font color="#5898FF">+--------------+-------------+------+-----+---------+----------------+</font></div><div><font color="#5898FF">這樣的話就達到了每個手機號都只能出現一次,達到了每一個手機號只能被註冊一次.</font></div><div><span style="font-size: 9pt; color: rgb(88, 152, 255); font-family: Monaco;">用戶姓名能夠重複,可是手機號碼卻不能重複,複合正常的邏輯需求</span></div></div><div> </div><div><span style="font-weight: bold;"> 5.非空約束:</span></div><div> 在上面的藍字中已經添加了非空約束: NOT NULL;</div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>name和phone_number都設置了非空,先只設置name參數不設置phone_number參數試一試</div><div>INSERT INTO user_test (name) VALUES ('張三');</div><div>會出現Field 'phone_number' doesn't have a default value</div><div><br/></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">兩個非空參數一塊兒設置:</span></div><div>INSERT INTO user_test (name,phone_number) VALUES ('張三','12345678901');</div><div>+----+------+--------------+</div><div>| id | name | phone_number |</div><div>+----+------+--------------+</div><div>| 1 | 張三 | 12345678901 |</div><div>+----+------+--------------+</div></div><div> </div><div> <b>6.默認約束</b></div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>CREATE TABLE user6(</div><div> id int PRIMARY KEY AUTO_INCREMENT COMMENT'主鍵id',</div><div> name VARCHAR(20) NOT NULL COMMENT'用戶姓名不能爲空',</div><div> phone_number VARCHAR(20) NOT NULL COMMENT'用戶手機號,不能爲空',</div><div> status INT DEFAULT 0 COMMENT'用戶狀態0:啓用 1:禁封 默認:0'</div><div>);</div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">運行DESCRIBE user6;</span></div><div>+--------------+-------------+------+-----+---------+----------------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+--------------+-------------+------+-----+---------+----------------+</div><div>| id | int(11) | NO | PRI | NULL | auto_increment |</div><div>| name | varchar(20) | NO | | NULL | |</div><div>| phone_number | varchar(20) | NO | | NULL | |</div><div>| status | int(11) | YES | | 0 | |</div><div>+--------------+-------------+------+-----+---------+----------------+</div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">插入數據:</span></div><div><span style="font-family: Monaco; font-size: 9pt;">INSERT INTO user6(name,phone_number) VALUES ('aa','123');</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">INSERT INTO user6(name,phone_number) VALUES('bb','1234');</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">INSERT INTO user6(name,phone_number) VALUES('cc','1263456');</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;"><br/></span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">查看數據:SELECT * FROM user6;</span></div><div>+----+------+--------------+--------+</div><div>| id | name | phone_number | status |</div><div>+----+------+--------------+--------+</div><div>| 1 | aa | 123 | 0 |</div><div>| 2 | bb | 1234 | 0 |</div><div>| 3 | cc | 1263456 | 0 |</div><div>+----+------+--------------+--------+</div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">咱們沒有設置status的值,可是給咱們建立了默認值 0.</span></div><div><br/></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">應用場景:</font></span></div><div><font color="#5898FF">業務需求:找正常的用戶,對這些正經常使用戶進行發放優惠卷或者積分之類的東西,而被禁封的用戶咱們不讓其參加多動.</font></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">咱們想要封用戶只要將status的值從0改成1就好了,固然咱們取用戶的時候必需要先判斷status是不是0.如果1.說明該用戶已經被禁封.</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">先封手機號爲'1234'的用戶:</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">UPDATE user6 SET status = 1 WHERE phone_number= '1234';</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">SELECT * FROM user6;</font></span></div><div><font color="#5898FF">+----+------+--------------+--------+</font></div><div><font color="#5898FF">| id | name | phone_number | status |</font></div><div><font color="#5898FF">+----+------+--------------+--------+</font></div><div><font color="#5898FF">| 1 | aa | 123 | 0 |</font></div><div><font color="#5898FF">| 2 | bb | 1234 | 1 |</font></div><div><font color="#5898FF">| 3 | cc | 1263456 | 0 |</font></div><div><font color="#5898FF">+----+------+--------------+--------+</font></div><div><font color="#5898FF">status爲1,說明用戶已經被封,該用戶不能夠參加活動</font></div><div><font color="#5898FF"><br/></font></div><div><font><span style="font-size: 10pt; color: rgb(88, 152, 255); font-family: Monaco;">咱們取用戶的時候加上status的判斷</span><font color="#5898FF"><span style="font-size: 10pt; font-family: Monaco;">,</span><font style="font-size: 11pt;">如:</font></font></font></div><div><span style="font-size: 9pt; color: rgb(88, 152, 255); font-family: Monaco;">SELECT * FROM user6 WHERE status = 0;</span></div><div><font color="#5898FF">+----+------+--------------+--------+</font></div><div><font color="#5898FF">| id | name | phone_number | status |</font></div><div><font color="#5898FF">+----+------+--------------+--------+</font></div><div><font color="#5898FF">| 1 | aa | 123 | 0 |</font></div><div><font color="#5898FF">| 3 | cc | 1263456 | 0 |</font></div><div><font color="#5898FF">+----+------+--------------+--------+</font></div><div><span style="font-size: 9pt; color: rgb(88, 152, 255); font-family: Monaco;"><br/></span></div></div><div><br/></div><div> <span style="font-weight: bold;"> 7.外鍵約束</span></div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>CREATE TABLE classes(</div><div> id INT PRIMARY KEY AUTO_INCREMENT COMMENT'班級表id',</div><div> name VARCHAR(20) COMMENT'班級名稱'</div><div>);</div><div>運行DESCRIBE classes;</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| id | int(11) | NO | PRI | NULL | auto_increment |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div><br/></div><div>CREATE TABLE student(</div><div> id INT PRIMARY KEY AUTO_INCREMENT COMMENT'學生表id',</div><div> name VARCHAR(20) COMMENT'學生姓名',</div><div> class_id int COMMENT'教室id,這張表中的class_id是classes表中id的值',</div><div> FOREIGN KEY (class_id) REFERENCES classes(id)</div><div>);</div><div>//FOREIGN :外來 REFERENCES:應用,參考</div><div>運行DESCRIBE student;</div><div>+----------+-------------+------+-----+---------+----------------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+----------+-------------+------+-----+---------+----------------+</div><div>| id | int(11) | NO | PRI | NULL | auto_increment |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>| class_id | int(11) | YES | <font color="#5898FF">MUL</font> | NULL | |</div><div>+----------+-------------+------+-----+---------+----------------+</div><div><br/></div><div><b>班級</b>插入數據:</div><div>INSERT INTO CLASSES (name) VALUES ('一班');</div><div>INSERT INTO CLASSES (name) VALUES ('二班');</div><div>INSERT INTO CLASSES (name) VALUES ('三班');</div><div>INSERT INTO CLASSES (name) VALUES ('四班');</div><div>查看數據 SELECT * FROM classes;</div><div>+----+------+</div><div>| id | name |</div><div>+----+------+</div><div>| 1 | 一班 |</div><div>| 2 | 二班 |</div><div>| 3 | 三班 |</div><div>| 4 | 四班 |</div><div>+----+------+</div><div><br/></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;"><b>學生</b>插入數據:</span></div><div>INSERT INTO student (name,class_id) VALUES ('小趙',1);</div><div>INSERT INTO student (name,class_id) VALUES ('小錢',2);</div><div>INSERT INTO student (name,class_id) VALUES ('小孫',3);</div><div>INSERT INTO student (name,class_id) VALUES ('小李',4);</div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">查看數據 SELECT * FROM student;</span></div><div>+----+------+----------+</div><div>| id | name | class_id |</div><div>+----+------+----------+</div><div>| 1 | 小趙 | 1 |</div><div>| 2 | 小錢 | 2 |</div><div>| 3 | 小孫 | 3 |</div><div>| 4 | 小李 | 4 |</div><div>+----+------+----------+</div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">如果像插入班級爲5的數據 如:</span></div><div>INSERT INTO student (name,class_id) VALUES ('小周',<font color="#5898FF">5</font>);</div><div>報錯: Cannot add or update a child row</div><div><br/></div><div>咱們刪除正在被學生表引用的'四班'試試:</div><div>DELETE classes WHERE name = '四班';</div><div>出現:Cannot delete or update a parent row:不能刪除主表中的行</div><div><font color="#5898FF"><br/></font></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">咱們先刪除學生表中的 '小李'從而解除班級中'四班'的外鍵約束,再來刪除'四班'(由於小李引用了四班)</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font style="color: rgb(88, 152, 255);">DELETE FROM student WHERE name = '小李';</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">再次刪除classes表中的'四班';</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">DELETE FROM classes WHERE name = '四班';</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font style="color: rgb(88, 152, 255);">最後: SELECT * FROM classes;</font></span></div><div><font color="#5898FF">+----+------+</font></div><div><font color="#5898FF">| id | name |</font></div><div><font color="#5898FF">+----+------+</font></div><div><font color="#5898FF">| 1 | 一班 |</font></div><div><font color="#5898FF">| 2 | 二班 |</font></div><div><font color="#5898FF">| 3 | 三班 |</font></div><div><font color="#5898FF">+----+------+</font></div><div><font color="#5898FF">'四班'被成功刪除!</font></div><div><br/></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#000000">總結:</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#000000">1.主表中沒有的數據,在附表中,是不可使用的.</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#000000">2.主表中記錄的數據如今正在被附表所引用,那麼主表中正在被引用的數據不能夠被刪除</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#000000">3.若要想刪除,先將附表中的數據刪除在刪除主表數據</font></span></div><div><span style="font-size: 9pt; font-family: Monaco;"><font color="#5898FF">4.對於外鍵約束你們能夠聯想 省,市 來進行聯想 (市必需要依賴於省,只要省還有一個市在引用,那麼就不能夠刪除省,要否則市就沒有省了. 那麼咱們想刪除省,必需要將該省下全部的市所有刪除以後,才能夠刪除這個省)</font></span></div></div><div><br/></div><div><span style="font-weight: bold;"> 8.如何建表以後添加主鍵約束</span></div><div style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; font-size: 12px; color: rgb(51, 51, 51); border-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.15);-en-codeblock:true;"><div>CREATE TABLE user4(</div><div> id INT,</div><div> name VARCHAR(20)</div><div>);</div><div>運行DESCRIBE user4;</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| id | int(11) | YES | | NULL | |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+-------+</div><div><br/></div><div>加入主鍵約束:</div><div>ALTER TABLE user4 add PRIMARY KEY(id);</div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">再次運行DESCRIBE user4;</span></div><div>+-------+-------------+------+-----+---------+-------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| id | int(11) | NO | <font color="#5898FF">PRI</font> | NULL | |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+-------+</div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;"><br/></span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">刪除主鍵約束:</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">ALERT TABLE user4 DROP PRIMARY KEY;</span></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">運行DESCRIBE user4查看錶結構:</span></div><div>+-------+-------------+------+-----+---------+-------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| id | int(11) | NO | | NULL | |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+-------+</div><div><br/></div><div>使用modify 修改字段.添加約束:</div><div>ALTER TABLE user4 MODIFY id INT PRIMARY key;</div><div>使用DESCRIBE user4 查看錶結構:</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+-------+</div><div>| id | int(11) | NO | <font color="#5898FF">PRI</font> | NULL | |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+-------+</div><div><br/></div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">給主鍵設置自增加:</span></div><div>ALTER TABLE user4 MODIFY id INT AUTO_INCREMENT;</div><div><span style="font-size: 9pt; color: rgb(51, 51, 51); font-family: Monaco;">運行 DESCRIBE user4 查看錶結構:</span></div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| Field | Type | Null | Key | Default | Extra |</div><div>+-------+-------------+------+-----+---------+----------------+</div><div>| id | int(11) | NO | <font color="#5898FF">PRI</font> | NULL | <font color="#5898FF">auto_increment</font> |</div><div>| name | varchar(20) | YES | | NULL | |</div><div>+-------+-------------+------+-----+---------+----------------+</div></div><div><br/></div></div><div><br/></div></span> </div></body></html>mysql

相關文章
相關標籤/搜索