首頁 資料庫 mysql教程 學習基礎mysql語法

學習基礎mysql語法

Jun 23, 2017 am 11:10 AM
mysql 基礎 學習 文法

 

  前 言

 mysql 

# mysql語法--本篇學習都是透過使用Navicat Premium(資料庫管理工具,連接mysql資料.



本篇學習主要有兩個部分:

     一、建立用戶,建立資料庫,給予使用者權限,刪除使用者權限。

     二、MYSQL中常見的資料類型
   三、表-建立表格、主鍵、外鍵
     四、資料庫設計的三大範式
以下所有程式碼全部在新查詢表裡面使用mysql語法編輯。 ############ #########################1、建立用戶,建立資料庫,給予使用者權限,刪除使用者權限。 #########################
/* SQL 多行註解*/
-- SQL 單行註解

#建立使用者:CREATE USER '使用者名稱'@'主機名稱' IDENTIFIED BY '密碼';
#      主機名稱可以為空,為空預設為%權限,表示所有主機可連線。
給使用者指派權限: GRANT 權限名稱ON 資料庫名稱.表示TO 使用者名稱@主機名稱         
#刪除使用者權限#:    REVOKE 權限名稱ON 資料庫名稱.表示FROM 使用者名稱@主機名稱;
建立資料庫: CREATE DATABASE [IF NOT EXISTS] 資料庫名稱[CHARACTER SET[= ] 'UTF8'];
     <<<如果省略[IF NOT EXISTS] 重複建立資料庫時,會報錯!
查詢本機中所有的資料庫:SHOW DATABASES

使用mydb這個資料庫↓,表示下面的查詢都會預設針對mydb資料庫
USE mydb;
查詢資料庫中所有資料表: SHOW TABLES [FROM 資料庫]

 

#2  MYSQL中常見的資料類型
   
一、字元型:

      ① CHAR(N):固定N個字元長度的字串,如果長度不夠會自動空格補齊;
② VARCHAR(N):儲存可邊長度的字元節。常用的 0~255;
      ③ TEXT:儲存可變長度的字串。 (常用語發佈文章等大段內容)0~((2^16-1)*10^2);
      ④ TINYTEXT:0~((2^8-1)*10);
 〠 MEDIUMTEXT:0~((2^24-1)*10^3)​​;
      ⑥ LINGTEXT:0~((2^32-1)*10^4);
      ⑦ enum(" "女"):枚舉類型,欄位只能容納列舉的資料。

二、整形:
    
    ① TINYINT:         無符號0~2^8-1  有符號-2^7~22-1;##^7-1;## ② SMALLINT:    無符號0~2^16-1 有符號-2^15~2^15-1;
    ③ MEDIUMINT:   無符號0~2^24-1 有符號-2^23~2^23 -1;
    ④ INT:             無符號0~2^32-1 有符號-2^31~2^31-1 最常用!
    ⑤ BIGINT:      無符號0~2^64-1 有符號-2^63~2^63-1;


三、浮點型:
##    ① FLOAT:  可以精確到小數點後7位有效數字;
    ② DOUBLE:  可以精確到小數點後15位到16位有效數字;


4、日期時間資料資料類型#    
    注意:由於時間儲存使用字串或時間戳存儲,所以資料庫中幾乎沒有日期類型。
    ① DATE:儲存日期與時間資料
    ② TIMESTAMP:比DATE更精確


## 

## 
##3、表-建立表格、主鍵、外鍵
######
   
 【建立表格

  CREATE TABLE [IF NOT EXISTS] 表單名稱(
  IF NOT EXISTS 可以省略,省略後重複建立報錯.如果不省略,則建立時會偵測表是否已存在,如果表存在則不再執行建立語句
  定義列:列名資料類型清單關鍵字
  )
  常用的列定義關鍵字:
          ① UNSIGNED: 設定清單為無符號列。只能設定類型為數字類型的欄位
          ② AUTO_INCREMENT PRIMARY KEY 設定列為自動成長列。自動增長列必須是主鍵。
          ③ NOT null:設定列為非空白限制
          ④ UNIQUE:設定唯一性限制。該欄位不能出現重複值。
          ⑤ DEFAULT: 設定預設值限制。


 【主鍵

#      1、主鍵的注意事項?  主鍵預設為空!主鍵預設唯一性約束!
                                                                          
      2中使用中主鍵的方式?
              ① 在列定義是設定: age SMALLINT(3) PRIMARY KEY,
         #【外鍵】  
 
      1、設定外鍵有哪些注意事項
          ①=innodb的資料庫引擎支援外鍵,修改mysql.ini    ①=innodb的資料庫引擎支援外鍵,修改mysql.inidefault-storage-engine=innodb的資料庫引擎支援外鍵,修改mysql.ininote類型必須相同。 (數值型要求長度和無符號都相同,字串要求型別相同,長度可以不同。)          ③ 設定外鍵的欄位必須要有索引。如果沒有索引,設定外鍵時會自動產生一個索引。
      2、設定外鍵的語法?
          [CONSTRAINT 外鍵名稱] FOREIGN KEY (外鍵欄位) REFERENCES 參考表(參照欄位) [ON DELETE SET NULL on update CASCADE]-- 參照欄位) [ON DELETE SET NULL on update CASCADE]-- 參照欄位) [ON DELETE SET NULL on update CASCADE]-- 參照欄位) [ON DELETE SET NULL on update CASCADE]-- 參照欄位) [ON DELETE SET NULL on update 3、外鍵約束的參照完整性操作?
          參考作業:當參考表的參考欄位進行刪除或更新是,外鍵表中的外鍵如何應對。
          參照作業選用值:restrict 拒絕參考表刪除或更新參考欄位;(預設)
             NO ACTION 與restrict一樣,但這個指令只在mysql生效;
                           欄位時,外鍵表的記錄同步刪除或更新;(外鍵表與參考表同步)
                           外鍵設為null;

         

 

#
CREATE TABLE IF NOT EXISTS tb1( 
-- IF NOT EXISTS 可以省略,省略后重复创建报错.如果不省略,则创建时会检测表是否已存在,如果表存在则不再执行创建语句id INT(3),
    `name` VARCHAR(255) NOT null, -- name是系统关键字,所以使用反引号``包裹age SMALLINT(3) AUTO_INCREMENT PRIMARY KEY,
    lalala INT UNIQUE,
 height DOUBLE(3,2) DEFAULT 1.2 -- 设置默认值约束:默认值为1.2-- PRIMARY KEY(age));create table if not exists classes(
 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  classname VARCHAR(255) NOT NULL );CREATE table if not EXISTS `user`(
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    clsId INT UNSIGNED,
    `name` VARCHAR(255) NOT NULL, CONSTRAINT user_fk_classes FOREIGN KEY (clsid) REFERENCES classes(id) ON DELETE SET NULL on update CASCADE)-- auto_increment-- 显示表结构SHOW TABLES;-- 显示表内容结构SHOW COLUMNS FROM TB1;-- 现实表的建表语句show create TABLE tb1;-- 删除表DROP TABLE IF EXISTS TB1;DROP TABLE IF EXISTS classes;DROP TABLE IF EXISTS `user`;-- 修改表名 ALTER table tb1 rename tb2;-- 修改字段 列-- alter table 表名 change 旧列名 新列名 列定义 [first|after某一列]-- first 将这个字段调整为表格第一列; after某一列: 将这个字段放到某一列后面alter table tb1 change height width VARCHAR(200) not NULL FIRST; 



-- 删除表中某一列alter table tb1 drop name;-- 新增一列:必选部分:alter table tb1 add haha DOUBLE(8,2)alter table tb1 add haha DOUBLE(8,2) DEFAULT 1.2 after age;-- 新增多列:不能调整列的位置,只能插在最后。alter table tb1 add (
    ha1 DOUBLE(3,2) UNSIGNED,
    ha2 VARCHAR(255)
);-- 同时修改多表明  rename table tb3 to tb1[,`USER`to user1];rename table tb2 to tb1,`USER`to user1;-- 增加主键约束alter table tb1 add PRIMARY KEY(id);-- 删除主键约束alter table tb1 drop PRIMARY KEY;-- 新增唯一性约束ALTER table tb1 add unique key(ha1);-- 删除唯一性约束:由于创建唯一性约束会默认创建索引,所以删除时,需删除索引ALTER table tb1 drop index ha1;    
-- 设置默认值约束:前提必须设置default 属性ALTER table tb1 alter ha1 set default 20;-- 删除默认值约束ALTER table tb1 alter haha drop default;-- 设置外键约束 必选部分  alter table tb1 add  foreign key (clsid)REFERENCES classes(id)alter table tb1 add constraint waijianming foreign key (clsid)REFERENCES classes(id) ON DELETE SET NULL on update CASCADE;-- 删除外键约束,由于常见外键时会生成索引,所以删除外键后,需要删索引。alter table tb1 drop foreign key waijianming;alter table tb1 drop INDEX waijianming;

SHOW COLUMNS FROM TB1;
登入後複製




rrreee

 

 

#4  資料庫的三大典範
#   
1、第一範式(1NF):資料表中的每一列(欄位),必須是不可分割的最小單元。也就是確保每一列的原子性。
        例如:userInfo:'山東省煙臺市13181621008'
                   #  下台省下180187201867206767676767607207207072020年307370020年3700070年370007370年部分:# 2.第二範式(2NF):滿足1NF後,要求:表中的所有列,都必須依賴主鍵,而不能有任何一列與主鍵沒有關係。   也就是說,一個表只描述一件事情。

        例如: 訂單表,只能描述與訂單相關的資訊,所以所有的欄位都必須與訂單ID相關;
                                   與產品ID相關;
        因此: 不能在同一張表中同事出現訂單資訊與產品資訊。

3、第三範式(3NF):表中的每一列都要與主鍵直接相關,而不是間接相關。 (表中的每一列,只能依賴主鍵)。
    例如:訂單表中,需有顧客相關資訊,分理處顧客表之後。訂單表中,只需要有一個使用者ID即可。而不能有其他的客戶資料。因為,其他的使用者資訊是直接關聯於使用者ID,而不是關聯於訂單ID。


【第二範式與第三範式的本質差異】
在於沒有分出兩張表,第二範式是說一張表包含了多種不同實體的屬性,那麼必須要分成多張表。
第三範式是要求,已經分好了多張表的化,那麼,一張表中只能有另一張表中的ID(主鍵),而不能有其他的任何信息(其他的任何信息,一律用主鍵在另一表查詢)
         

 

 

 

學習時候的筆記,可能會有一些錯誤的地方,歡迎各位的批評指點。

反思,複盤,每天收穫一點---------------------期待更好的自己

 

#

以上是學習基礎mysql語法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MySQL:初學者的數據管理易用性 MySQL:初學者的數據管理易用性 Apr 09, 2025 am 12:07 AM

MySQL適合初學者使用,因為它安裝簡單、功能強大且易於管理數據。 1.安裝和配置簡單,適用於多種操作系統。 2.支持基本操作如創建數據庫和表、插入、查詢、更新和刪除數據。 3.提供高級功能如JOIN操作和子查詢。 4.可以通過索引、查詢優化和分錶分區來提升性能。 5.支持備份、恢復和安全措施,確保數據的安全和一致性。

忘記數據庫密碼,能在Navicat中找回嗎? 忘記數據庫密碼,能在Navicat中找回嗎? Apr 08, 2025 pm 09:51 PM

Navicat本身不存儲數據庫密碼,只能找回加密後的密碼。解決辦法:1. 檢查密碼管理器;2. 檢查Navicat的“記住密碼”功能;3. 重置數據庫密碼;4. 聯繫數據庫管理員。

navicat premium怎麼創建 navicat premium怎麼創建 Apr 09, 2025 am 07:09 AM

使用 Navicat Premium 創建數據庫:連接到數據庫服務器並輸入連接參數。右鍵單擊服務器並選擇“創建數據庫”。輸入新數據庫的名稱和指定字符集和排序規則。連接到新數據庫並在“對象瀏覽器”中創建表。右鍵單擊表並選擇“插入數據”來插入數據。

mysql:簡單的概念,用於輕鬆學習 mysql:簡單的概念,用於輕鬆學習 Apr 10, 2025 am 09:29 AM

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

Navicat for MariaDB如何查看數據庫密碼? Navicat for MariaDB如何查看數據庫密碼? Apr 08, 2025 pm 09:18 PM

Navicat for MariaDB 無法直接查看數據庫密碼,因為密碼以加密形式存儲。為確保數據庫安全,有三個方法可重置密碼:通過 Navicat 重置密碼,設置複雜密碼。查看配置文件(不推薦,風險高)。使用系統命令行工具(不推薦,需要對命令行工具精通)。

MySQL和SQL:開發人員的基本技能 MySQL和SQL:開發人員的基本技能 Apr 10, 2025 am 09:30 AM

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

navicat怎麼新建連接mysql navicat怎麼新建連接mysql Apr 09, 2025 am 07:21 AM

可在 Navicat 中通過以下步驟新建 MySQL 連接:打開應用程序並選擇“新建連接”(Ctrl N)。選擇“MySQL”作為連接類型。輸入主機名/IP 地址、端口、用戶名和密碼。 (可選)配置高級選項。保存連接並輸入連接名稱。

navicat如何執行sql navicat如何執行sql Apr 08, 2025 pm 11:42 PM

在 Navicat 中執行 SQL 的步驟:連接到數據庫。創建 SQL 編輯器窗口。編寫 SQL 查詢或腳本。單擊“運行”按鈕執行查詢或腳本。查看結果(如果執行查詢的話)。

See all articles