學習基礎mysql語法
前 言
mysql
# mysql語法--本篇學習都是透過使用Navicat Premium(資料庫管理工具),連接mysql資料.
本篇學習主要有兩個部分:
一、建立用戶,建立資料庫,給予使用者權限,刪除使用者權限。
三、表-建立表格、主鍵、外鍵 四、資料庫設計的三大範式 |
-- 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;
#4 資料庫的三大典範 |
1、第一範式(1NF):資料表中的每一列(欄位),必須是不可分割的最小單元。也就是確保每一列的原子性。
例如:userInfo:'山東省煙臺市13181621008'
# 下台省下180187201867206767676767607207207072020年307370020年3700070年370007370年部分:# 2.第二範式(2NF):滿足1NF後,要求:表中的所有列,都必須依賴主鍵,而不能有任何一列與主鍵沒有關係。 也就是說,一個表只描述一件事情。
例如: 訂單表,只能描述與訂單相關的資訊,所以所有的欄位都必須與訂單ID相關;
與產品ID相關;
因此: 不能在同一張表中同事出現訂單資訊與產品資訊。
3、第三範式(3NF):表中的每一列都要與主鍵直接相關,而不是間接相關。 (表中的每一列,只能依賴主鍵)。
例如:訂單表中,需有顧客相關資訊,分理處顧客表之後。訂單表中,只需要有一個使用者ID即可。而不能有其他的客戶資料。因為,其他的使用者資訊是直接關聯於使用者ID,而不是關聯於訂單ID。
【第二範式與第三範式的本質差異】
在於沒有分出兩張表,第二範式是說一張表包含了多種不同實體的屬性,那麼必須要分成多張表。
第三範式是要求,已經分好了多張表的化,那麼,一張表中只能有另一張表中的ID(主鍵),而不能有其他的任何信息(其他的任何信息,一律用主鍵在另一表查詢)
#
#
以上是學習基礎mysql語法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

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

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

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

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