Mysql表基本操作

来源:http://www.cnblogs.com/xiami-xm/archive/2016/08/02/5729668.html
-Advertisement-
Play Games

一. 創建表的方法 語法:create table 表名( 屬性名數據類型完整約束條件, 屬性名數據類型條完整約束件, 。。。。。。。。。 屬性名數據類型 ); (1)舉例:1 create table example0( 2 id int, 3 name varchar(20), 4 sexboo ...


一. 創建表的方法

語法:create table 表名(

屬性名數據類型完整約束條件,

屬性名數據類型條完整約束件,

。。。。。。。。。

屬性名數據類型

);

(1)舉例:
1
create table example0( 2 id int, 3 name varchar(20), 4 sexboolean);

 

表的完整性約束
約束條件 說明
(1)primary key 標識該欄位為表的主鍵,
  (2) foreign key 標識該欄位為表的外鍵,與某主表相連繫
  (3) not null 標識該屬於的值不能為空
  (4) unique 標識這個屬性值是唯一
  (5) auto_increment 標識該屬性值的自動增加
  (6) default 為該屬性值設置預設值

 

 

 

 

 

 

 

 

 

1.1 設置表的主鍵

  主鍵是一個表的特殊欄位,這個欄位是唯一標識表中的每條信息,主鍵和記錄的關係,跟人和身份證一樣。名字可以一樣,但是身份證號碼絕對不會一樣,主鍵用來標識每個記錄,每個記錄的主鍵值都不同。

  主鍵可以幫助Mysql以最快的速度查找到表中的每一條信息,主鍵必須要滿足的條件那就是它的唯一性,表中的任意兩條記錄的主鍵值,不能相同,否則就會出現主鍵值衝突,主鍵值不能為空,可以是單一的欄位,也可以是多個欄位的組合。

  主鍵衝突:
單主鍵情況:主鍵不能相同
多主鍵情況:表中有多主鍵時,只要主鍵不完全相同都是符合條件的,只有當所有主鍵一模一樣時才會主鍵衝突

1 create table sxkj(
2 User_id int primary key,
3 user_name varchar(20),
4 user_sexchar(7));
主鍵

 

 1.2 設置多個欄位做主鍵

1 舉例:
2 create table sxkj2(
3 user_id int,
4 user_name float,
5 grade float,
6 primary key(user_id,user_name));
多主鍵

 

1.3 設置表的外鍵

  外鍵是表的一個特殊欄位,如果aa是B表的一個屬性且依賴於A表的主鍵,那麼A表被稱為父表,B表被稱為子表。

  語法:

  constraint 外鍵別名 foreign key(外鍵欄位1,外鍵欄位2) references 表名(關聯的主鍵欄位1,主鍵欄位2);

 

1.4 設置表的非空值

  語法:屬性名 數據類型  NOT NULL  

1 舉例:
2 create table C(
3 user_id int NOT NULL);

 

1.5 設置表的唯一性約束

  唯一性指的就是所有記錄中該欄位不能重覆出現

  語法:屬性名 數據類型 unique

1 舉例:
2 create table D(
3 user_id int unique);

 

1.6 設置表的屬性值自動增加

  Auto_increment是Mysql資料庫中特殊的約束條件,它的作用是向表中插入數據時自動生成唯一的ID,一個表只能有一個欄位使用auto_increment 約束,必須是唯一的。

  語法:屬性名 數據類型 auto_increment

  *預設欄位值從1開始自增。

1 舉例:
2 create table F(
3 user_id int primary key auto_increment);
1 插入一條空的信息
2 insert into F values();
3 
4 查看表格F的內容
5 select * from F;
6 
7 在結果中可以看到user_id為1

 

1.7 設置表的預設值

  在創建表時,可以指定表中的欄位的預設值,如果插入一條新的記錄時,沒有給這個欄位複製,那麼資料庫會自動的給這個欄位插入一個預設值,欄位的預設值用default來設置。

  語法:屬性名 數據類型 default 預設值

舉例:
create table G(
user_id int primry key auto_increment,
user_name varchar(20) default 'zero');

向表中插入空數據:
insert into G values();    //系統會預設第一欄位自增為1,第二欄位為預設值zero

 

二. 查看表結構的方法

  Mysql  DESCRIBE可以查看那表的基本定義,包括、欄位名稱,欄位的數據類型,是否為主鍵以及預設值等。。

 

2.1 語法:describe 表名;可以縮寫為desc

舉例:

desc B;

 

2.2  show create table查詢表詳細的結構語句

 

三. 修改表的方法

     額外:修改表預設自增,從1000開始。

     alter table F auto_increment=1000;

 

3.1 修改表名

  語法:alter table 舊表名 rename 新表名;

舉例;
alter table A rename zyA;

 

3.2 修改表的數據類型

  語法:alter table 表名 modify 屬性名數據類型;

舉例;
alter table A modify user_name double;

 

3.3 修改表的欄位名稱

  語法: alter table 表名 change 舊屬性名新屬性名新數據類型;

舉例:
alter table A change user_name user_zyname float;

 

 3.4 修改增加欄位

  alter table 表名 ADD 屬性名1  數據類型 [完整性約束條件] [FIRST |AFTER 屬性名2]

增加沒有約束條件的欄位:
alter table A add phone varchar(20)
增加有完整約束條件的欄位:
alter table A add age int(4) not null;

 

  在表的第一個位置增加欄位

  預設情況每次增加的欄位。都在表的最後。

alter table tt add num int(8) primary key first; 

 執行在那個位置插入新的欄位,在phone後面增加

alter table A add address varchar(30) not null after phone;

 

總結:

(1)預設add增加欄位是在最後面增加

(2)如果想在表的最前端增加欄位用first關鍵字

(3)如果想在某一個欄位後面增加的新的欄位,使用after關鍵字

 

3.5 刪除一個欄位

  alter table 表名 drop 屬性名;

舉例:刪除A表的age欄位
alter table A drop age;

 

3.6 更改表的存儲引擎

  alter table 表名 engine=存儲引擎

alter table A engine=MYISAM

 

 3.7 刪除表的外鍵約束

  alter table 表名 drop foreign key 外鍵別名;

 

四.  刪除表的方法

4.1 刪除沒有被關聯的普通表

  drop table 表名;

 

4.2 刪除被其他表關聯的父表

  在資料庫中某些表之間建立了一些關聯關係。一些成為了父表,被其子表關聯,要刪除這些父表,就不是那麼簡單了。

  刪除方法:先刪除所關聯的子表的外鍵,再刪除主表。

  1.先用show create table 子表名 \G;查看子表的外鍵別名
  2.再alter table 子表名 drop foreign key 外鍵別名;刪除外鍵別名
  3.此時可以用drop table 父表名;刪除父表了

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、索引的工作原理 我給大家推薦一個別人的總結。 http://blog.csdn.net/NightManHAHA/article/details/5648579 2、索引的設計原則 對於一張表來說,索引的有無和建立什麼樣的索引,要取決與where字句和Join表達式中。 一般來說建立索引的原則包 ...
  • 首先進入mysql:mysql -u root -p 1.建庫: create database 庫名稱; 例如:create database mydata;(創建一個名為“mydata”的庫); 2.建表: use 要存表的庫名稱; create table 表名稱(欄位設定列表); 例如:us ...
  • Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such a ...
  • 在初始化MySQL的過程中經常會碰到各種問題,如 出現這些問題的原因無非是兩種, 1> 沒有傳遞合適的參數。 譬如: [root@localhost ~]# /usr/test/mariadb-10.1.16-linux-x86_64/scripts/mysql_install_db --datad ...
  • 我們這裡先給出題和結果吧,該題目是剛纔從網上看到的,很多朋友會問這個答案不是有嗎?錯,如果仔細看差別就大了,不多說了直接進入主題吧: 這就是我們要做到的,我接下來給出三種方法吧: 方法一: 我們一看明顯可以看出方法一代碼量太大了,不適用由於我就找到了方法二,我對他代碼進行組合了可以得到以下方法: 方 ...
  • 這段時間遇到一個問題就是ReportService 中採用了遠程連接的報表偶爾會斷開連接,導致報表導出異常,查閱了很多資料,幾天來就是斷斷續續的終於解決了這個問題,下麵把一些解決的點一一展示出來,便於大家將來遇到同樣問題無從下手。 首先是報錯,接下來我馬上去看日誌,很多人不知道文件的位置,一般預設就 ...
  • 成功安裝了Oracle 11g後,使用sqlplus登錄資料庫時遇到下麵錯誤: [oracle@DB-Server ~]$ sqlplus / as sysdba sqlplus: error while loading shared libraries: /u01/app/lib/libclnts... ...
  • 計算string所占的位元組長度:返回字元串的長度,單位是 計算string所占的字元長度:返回字元串的長度,單位是 eg: //去掉該欄位後面15位字元串 select t.depre_name, substr(t.depre_name, 0, (length(t.depre_name) 16)) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...