Mysql基礎1-基礎語法-欄位類型

来源:https://www.cnblogs.com/yangp67/archive/2018/07/08/9278338.html
-Advertisement-
Play Games

主要: 基礎 基本概念 1) 資料庫分類 層次資料庫,網狀資料庫,關係資料庫 常見:SQL Server, Oracle,infomix,sybase,ibmDB2,Mysql 2)資料庫存儲的本質和表現: 存儲本質: 將 數據值 通過數據管理系統進行有序的存儲 存儲表現: 每個資料庫對應一個文件夾 ...


主要:

  1. 基礎
  2. 欄位類型


 


基礎

  基本概念

  1) 資料庫分類

    層次資料庫,網狀資料庫,關係資料庫

    常見:SQL Server, Oracle,infomix,sybase,ibmDB2,Mysql

  2)資料庫存儲的本質和表現:

    存儲本質: 將 數據值 通過數據管理系統進行有序的存儲

    存儲表現:

      每個資料庫對應一個文件夾

      每個數據表對應一個或多個文件
  3)mysql資料庫的各層次關係:

    1個資料庫系統包含有多個資料庫

    1個資料庫可以有多張數據表

     一個數據表可以有多個欄位(數據項)和多行數據(記錄)

  4)基本概念

    sql :是關係資料庫的 語言標準。 Struct Query Language 結構化查詢語言

    資料庫database: 存儲各種數據data

    資料庫管理系統dbms: Database Management system

    數據表table,欄位field,列column,行row,記錄record

  資料庫操作的基本模式(流程)

step 1: 建立連接:身份認證

step 2: 客戶端發送sql命令

step 3: 服務端執行命令,返回結果

step 4: 客戶端接收結果並顯示

step 5: 斷開連接
		    
【點擊查看】資料庫操作的基本模式(流程)

  mysql系統級操作

    安裝與配置 【略】

  啟動與停止mysql資料庫服務

      命令模式【管理員】: -- 非管理員才做可能發生 提示 “發生系統錯誤 5”

啟動:net start mysql

停止:net stop mysql

      服務模式:通過服務來啟動或停止     控制面板》管理工具》服務》mysql   啟動/停止

  登錄與退出:

       首先設置mysql環境變數

登錄:  
    形式1: mysql -h 伺服器地址 -u  用戶名 -p -P 埠號

    形式2: mysql --host=伺服器地址 --user=登錄名 --port=埠號 --password
      預設埠: 3306 退出: exit 或 quit

  備份與恢複數據

      通常是用於資料庫的“遷移”:將某台資料庫伺服器中的某個庫,“搬遷”到另一個資料庫伺服器中去

      也常用於數據的“安全備份”:就是資料庫實際運行中,防止資料庫系統崩潰,防止資料庫被黑客入侵

 

備份 【管理員身份】: 
    mysqldump -h 伺服器地址 -u 登錄名 -P 埠號 -p 資料庫名>完整路徑的文件名

恢復: 
    未登錄恢復:	
        mysql -h 伺服器地址  -u 登錄名 -P 埠號 -p  資料庫名<完整路徑的sql文件名

    登錄後恢復:
        source '備份數據文件的完整路徑'        
【點擊查看】備份與恢復形式

  基礎語法

    1)  註釋:

單行註釋: 
    #註釋內容        

    -- 註釋內容(-- 與註釋之間有一個空格)

多行註釋
    /*註釋內容*/
	註(經過測試): 如果是  /*! 語句 */; 這個仍然會執行   如 /*!show tables */;
【點擊查看】單行註釋與多行註釋

    2)語句行

      結束符: 分號(預設) 

      修改結束符:   delimiter 結束符   如: delimiter //

    3)大小寫

      不區分大小寫

      但對於區分大小寫的系統中,生成文件或文件夾的操作是區分大小寫的  如: 創建庫,表會生成對應目錄和文件

        文件或目錄在Linux,Unix中嚴格區分大小寫。 windows中不區分大小寫

    4) 命名規則

          字母和下劃線,不用數字開頭。

       如果是非常規字元,要使用反引號

         資料庫名,表名,視圖名,欄位名,函數名,過程名通常使用小寫,並使用下劃線分割法

欄位類型

  1) 形式:

欄位名  類型名 [(M)] [unsigned] [zerofill]

     M:顯示長度 與zerofil結合使用  不夠長度左側自動補0
                設置zerofill, 則表示該欄位同時具備unsigned。

  2) 主要分3類

    數值型,字元型,時間型

  數值型

    1) 整數型:    

類型                所占位元組數
tinyint      1位元組 smallint 2位元組 mediumint 3位元組 int 4位元組 bigint 8位元組
create table tab_int(
    f1 int unsigned,
    f2 tinyint zerofill,
    f3 bigint(10) zerofill
);
insert into tab_int (f1,f2,f3) values( 15, 15, 15);
select *  from tab_int;
【點擊查看】整數型測試Demo

    2)  小數型

      單精度浮點型float: (單精度 4個位元組,精度6~7位有效數字)   

      雙精度double: (雙精度 8個位元組,約20個有效數字,別名:real

      定點型: decimal (別名: dec numeric fixed, 整數最大65位,小數最多30位)

         如果整數部分超過最大設定的位數,則會自動設置為最大值。 如 decimal(5,2),   插入數據1234.11 則結果為 999.99

 decimal(總的位數,小數位數)
create table tab_float(
    f1 float,
    f2 double,
    f3 decimal(10,3)  -- 總數10位數, 小數3位
);
insert into tab_float (f1, f2, f3) values 
    (123.456789, 123.456789, 123.456789),
    (123456789, 123456789, 1234567),
    (123456789, 123456789, 1234567.11);
select * from tab_float;
【點擊查看】浮點型測試Demo

      

  

 字元型

  字元型要使用引號引起來

  vachar類型:

    概念: 變長字元串,使用時必須設定其長度

    最大長度: 理論最大65535個字元,實際最大隻能是65533個字元   

      原因: 一個表格的一行 的數據存儲最大容量限制: 65535

      編碼不同則最大長度也不同:

        存儲中文 gbk: 最大長度是 65533/2 個  

        存儲中文 utf8: 最大長度是 65533/3 個

    實際存儲: 存儲長度由存儲內容決定,設置值為最多可存儲的字元個數

  char類型

    概念: 定長字元串 , 使用時一般需要設置其長度。 不設置長度,則預設是1.

    最大長度: 255個

    實際存儲: 如果少於設定長度, 會以空格填滿

    適用於: 存儲的數據長度是固定長度的字元。 如: 郵編, 手機號碼等

  enum 類型

    概念: (枚舉)單選項字元串數據類型, 使用時,需要給定 固定的幾個選項。 存儲的時候,只存儲其中一個值

    形式:  enum("選項1", "選項2",....)

    實際存儲: 字元串選項值對應數字: 1,2,3,4,5,..   最多65535個選項

    寫入數據形式: 可以是該選項字元串本身,也可以用對應的數字

    適用於: 存儲表單界面中的 “單選項值”

  set 類型

    概念: 多選項字元串數據類型, 使用時,需要給定 固定的幾個選項。 存儲的時候,存儲其中若幹個值

    形式: set("選項1", "選項2",....)

    實際存儲: 字元串選項值對應數字 1,2,4,8,16... 最多64個選項

    寫入數據形式: 可以用選項字元串並用逗號隔開, 也可以使用對應的“數字的和”

    適用於: 存儲表單界面中的 “多選項值”

-- enum  set 使用Demo
create table enum_set(
   id int unsigned auto_increment primary key,
   gender enum('',''),
   fav set('籃球','足球','跑步','讀書','寫字')   
);

insert into enum_set (id, gender, fav) values(null,'','籃球'),(null,1,1); -- 兩行enum欄位一致

insert into enum_set (id, gender, fav) values(null, '', '籃球,跑步,寫字'),(null,1,19); -- 兩行set欄位一致

--  籃球=1 跑步=2 寫字=16  ==> 對應的和19

select * from enum_set;
【點擊查看】set與enum操作Demo

  text 類型

  概念: 長文本字元類型。其中存儲的數據不占表格中的數據容量限制

  其他同類型: smalltext  tinytext  longtext

  其他類型

  binary類型: 定長二進位字元串類型。 存儲二進位值

  varbinary 類型:  變長二進位字元串類型。存儲二進位值

  blob 類型:二進位數據類型。 存儲二進位值。 適用於存儲圖片,視頻,其他文件等。

 時間型

  時間類型: 要用引號引起來

  1) datetime 類型: 時間日期類型

  2) date類型: 日期類型

  3) time 類型:時間類型

  4) year 類型:年份類型

  5) timestamp 類型: 時間戳類型。 是一個數字。   不需要手動插入數據,系統自動填入

    js中獲取事件戳: gettime() ; 單位是毫秒 

    php中獲取時間戳: time(); 單位是秒

    mysql中: 自動獲得時間戳的數據值,既 now()

-- 時間類型數據表
create table tab_time(
  dt datetime,
   d date,
   t time, 
   y year,
   ts timestamp    -- 該欄位不需要插入數據,系統自動填入
);

insert into tab_time (dt,d,t,y) values('2018-07-07 24:24:24', '2018-07-07','24:24:24','2018'),(now(),now(),now(),now());

select * from tab_time;
【點擊查看】時間類型Demo

      

其他類型

  1) 位類型 bit

    使用形式: bit[(M)]       其中M是1-64的數字。 表示使用多少二進位數字來存儲數據

    插入形式:  b 'value'   如 b '101'

  2) 序列類型 serial

    實質是  bigint  unsigned not null auto_increment unique 的一個別名

  3) 布爾類型 bool

    實質是 tinyint(1) 的一個同義詞。 其值為0表示false, 否則表示true


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

-Advertisement-
Play Games
更多相關文章
  • 一、簡介 1.1 個人簡介 1.2 樹莓派簡介 樹莓派是什麼? 誰在玩樹莓派? 我們可以用樹莓派做什麼? 1.3 ARM簡介 在學習任何嵌入式開發之前,最先要瞭解的就是嵌入式終端的CPU架構。 樹莓派是典型的嵌入式開發板,其CPU架構自然是ARM,先來看下樹莓派3B+的硬體配置: ARM概念 CPU ...
  • 準備 LAMP 環境 LAMP 是 Linux、Apache、MySQL 和 PHP 的縮寫,是 Discuz 論壇系統依賴的基礎運行環境。我們先來準備 LAMP 環境: 安裝 Apache2 ubuntu 需要安裝 Apache2 ,使用 apt-get 安裝 Apache2: sudo apt- ...
  • 卸載mysql: 1、sudo apt-get autoremove --purge mysql-server-5.5 5.5 是資料庫版本, mysql -v 顯示版本信息 2、sudo apt-get remove mysql-server 3、sudo apt-get autoremove m ...
  • 配置過程最終結果是生成.config文件,我們想要對配置的目的有很清楚的瞭解,必須先對.config文件進行分析。通過cd命令切換到linux-2.6.22.6內核目錄,輸入vi .config 可以看到如下圖所示內容(截圖僅部分內容): 分析.config文件被什麼文件使用,為了簡便化我們以網卡D ...
  • 第11章 示波器設計—功能模塊劃分 二代示波器的界面上做了五個按鈕,分別用於不同功能的配置,本章節就為大家講解這五個按鈕實現的功能。 11.1 主界面上的五個按鈕 11.2 Measure測量功能 11.3 ADC電壓測量功能 11.4 DAC信號發生器 11.5 Math數字信號處理 11.6 S ...
  • 說明:1、emWin底層中最重要的一個優化就是16bpp繪製,特此為其增加DMA加速,已經支持RA8875和ili9488。2、使用中務必將emWin任務設置為除了空閑任務,統計任務以外的最低優先順序,這樣就可以有效的發揮DMA的優勢,CPU可以解放出來處理其他任務。操作說明:1. 所有界面支持按鍵操 ...
  • 方法一:在/usr/share/applications/目錄下創建 .desktop文件,其中Icon 和 Exec是指向啟動圖標和啟動文件。 方法二:使用 gnome-desktop-item-edit 創建快捷方式。 1. 未安裝的先安裝gnome-desktop-item-edit, Ubu ...
  • Dockerfile 語法 1.ADD ADD命令有兩個參數,源和目標。它的基本作用是從源系統的文件系統上複製文件到目標容器的文件系統。如果源是一個URL,那該URL的內容將被下載並複製到容器中 2.ENTRYPOINT 配置容器啟動後執行的命令,並且不可被 docker run 提供的參數覆蓋,每 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...