mysq資料庫相關操作

来源:https://www.cnblogs.com/80-blog/archive/2018/05/22/9059184.html
-Advertisement-
Play Games

(一)常用SQL語句 1.SELECT USER() 得到登陸的用戶 2.SELECT VERSION() 得到mysql的版本信息 3.SELECT NOW() 得到當前的時間 4.SELECT DATABASE() 得到打開的資料庫名字 (二)資料庫相關操作 1.創建資料庫(名稱不要包含特殊字元 ...


(一)常用SQL語句

1.SELECT USER()  得到登陸的用戶

2.SELECT VERSION()  得到mysql的版本信息

3.SELECT NOW()  得到當前的時間

4.SELECT DATABASE()  得到打開的資料庫名字

(二)資料庫相關操作

1.創建資料庫(名稱不要包含特殊字元或者是MySQL關鍵字)

(1)CREATE {DATABASE|SCHEMA} db_name;

如:CREATE DATABASE dou

(2)CREATE {DATABASE|SCHEMA} db_name [IF NOT EXISTS ] db_name   檢測資料庫名稱是否存在,不存在則創建

如:CREATE DATABASE IF NOT EXISTS dou;

(3)CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset;  在創建資料庫的同時指定編碼方式

如:CREATE DATABASE IF NOT EXISTS dou DEFAULT CHARACTER SET 'GBK';

 2.查看當前伺服器下全部資料庫

SHOW DATABASES|SCHEMAS;(註意s)

3.查看指定資料庫的詳細信息

SHOW CREATE DATABASE dou;

4.修改指定資料庫的編碼方式

ALTER DATABASE dou DEFAULT CHARACTER SET 'UTF8';

5.打開指定資料庫

USE dou

6.得到當前打開的資料庫

SELECT DATABASE()|SCHEMA();(註意小括弧)

7.刪除指定資料庫

DROP DATABASE dou;

DROP DATABASE IF EXIST dou;如果存在則刪除

(三)數據表相關操作

1.創建表

CREATE TABLE [IF NOT EXISTS] tbl_name(
欄位名稱 欄位類型 [完整性約束條件],
欄位名稱 欄位類型 [完整性約束條件],
...
)ENGINE=存儲引擎 CHARSET=編碼方式;

如:

CREATE TABLE IF NOT EXISTS dou(
id INT PRIMARY KEY,
username VARCHAR(20),
password CHAR(32),
email VARCHAR(50),
age TINYINT,
card CHAR(18),
tel CHAR(11),
salary FLOAT(8,2),
married TINYINT(1),
addr VARCHAR(100),
sex ENUM('男','女','保密')
)ENGINE=INNODB CHARSET=UTF8;

完整性約束:

①UNSIGNED 無符號,沒有負數,從0開始

②NOT NULL 非空約束,值不能為NULL,可以不填,不填即為空白

③DEFAULT 預設值 如果插入的時候沒有給欄位賦值則使用預設值

  如:age TINYINT UNSIGNED DEFAULT 18

④PRIMARY KEY 主鍵,值不能重覆,一個表只能有一個主鍵,欄位不能為空;

但是一個表裡可以有複合主鍵

如:

-- 複合主鍵
CREATE TABLE test_primary_key(
id INT UNSIGNED,
courseId VARCHAR(20),
username VARCHAR(20),
email VARCHAR(50),
PRIMARY KEY(id,courseId)
);

此時只有當id和courseid同時和前面的相同時,才會出錯,如果僅有一個重覆也是可以正常添加的

⑤AUTO_INCREMENT 自動增長,只能用於數值列,而且配合索引使用,預設初始值為1,每次增長1

如:

CREATE TABLE test_auto_increment(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20)
);

INSERT test_auto_increment(username) VALUES('A');
INSERT test_auto_increment(username) VALUES('B');

INSERT test_auto_increment(id,username) VALUES(NULL,'E');
INSERT test_auto_increment(id,username) VALUES(DEFAULT,'F');
INSERT test_auto_increment(id,username) VALUES(15,'G');

INSERT test_auto_increment(username) VALUES('C');

此時最後一次的id為16

⑥UNIQUE KEY 唯一性,同樣的值不能重覆,但是NUL除外

⑦ZEROFILL 零填充,當數據的顯示長度不夠的時候可以使用前補0的效果填充至指定長度,欄位會自動添加UNSIGNED

如:

CREATE TABLE zero(
id INT(4) ZEROFILL
);

INSERT zero VALUES(1);

自動前面補零即 0001

⑧FOREIGN KEY 外鍵約束

2.查看當前資料庫下已有數據表

SHOW TABLES;

3.查看指定數據表的詳細信息

SHOW CREATE TABLE test_auto_increment

4.查看表結構

DESC|DESCRIBE test_auto_increment

SHOW COLUMNS FROM test_auto_increment

5.刪除指定數據表

DROP TABLE [IF EXISTS] test_auto_increment

(四)表結構相關操作

①添加欄位

ALTER TABLE tbl_name
ADD 欄位名稱 欄位屬性 [完整性約束條件] [FIRST|AFTER 欄位名稱]

如:

-- 添加郵箱欄位 email VARCHAR(50) NOT NULL UNIQUE ,並將email添加到username後面
ALTER TABLE user1
ADD email VARCHAR(50) NOT NULL UNIQUE AFTER username;

②刪除欄位

-- 刪除test欄位
ALTER TABLE user1
DROP username;

③修改欄位類型、欄位屬性

ALTER TABLE tbl_name
MODIFY 欄位名稱 欄位類型 [欄位屬性] [FIRST | AFTER 欄位名稱]

如:

- 將email欄位改為VARCHAR(50) NOT NULL FIRST

ALTER TABLE user1
MODIFY email VARCHAR(50) NOT NULL FIRST;

④修改欄位名稱、欄位類型、欄位屬性

ALTER TABLE tbl_name
CHANGE 原欄位名稱 新欄位名稱 欄位類型 欄位屬性 [FIRST | AFTER 欄位名稱]

如:

-- 將password 名稱改為pwd
ALTER TABLE user1
CHANGE password pwd CHAR(40) NOT NULL;

⑤添加主鍵

ALTER TABLE tbl_name
ADD PRIMARY KEY(欄位名稱)

⑥添加唯一

ALTER TABLE tbl_name
ADD UNIQUE KEY(欄位名稱)

⑦刪除唯一

ALTER TABLE tbl_name
DROP (欄位名稱)

⑧修改數據表名稱

ALTER TABLE tbl_name

RENAME new_tbl_name

或者直接 RENAME TABLE tbl_name TO new_tbl_name


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

-Advertisement-
Play Games
更多相關文章
  • change buffer是在其他資料庫中沒有的一個概念,說白了就是一塊系統表空間分配的空間,針對的對象是輔助索引的葉子節點(為什麼不是主鍵索引?因為主鍵索引是聚集索引,在磁碟上的排列是有序的,磁碟的順序IO的性能很高,而隨機IO的性能卻很低)。當輔助索引的值有更新時,將這些更新先緩存起來,當有其他 ...
  • (一)數值型 1.整數型 ①當數值超過特定類型時,則自動截斷,即取特定類型的最大值或最小值 例如INSERT test_int(a) VALUES(-129); 此時存儲的是-128 ②對於無符號填充,賦值取0 例如INSERT test_unsigned(a,b) VALUES(-12,-12); ...
  • 環境:Linux version 2.6.32-642.el6.x86_64 軟體版本:postgresql-9.6.8.tar.gz 下載地址: https://www.postgresql.org/ftp/source/v9.6.8/ 新項目要上線測試,要求安裝一個PG 的資料庫 我們進行的是源 ...
  • MySQL 8.0終於支持降序索引了。其實,從語法上,MySQL 4就支持了,但正如官方文檔所言,"they are parsed but ignored",實際創建的還是升序索引。 無圖無真相,同一個建表語句,看看MySQL 5.7和8.0的區別。 create table slowtech.t1 ...
  • 準備將鍵值對中的鍵與值對調,結果第10行出了bug,顯示"tuple parameter unpacking is not supported" 解決方法:將map(lambda(word,count) : (count,word)) 改為 map(lambda word_count : (word ...
  • 丟失重做日誌文件 丟失了重做日誌文件組中的某個成員,並且組中至少還有一個成員: -不會影響實例的正常操作。 -預警日誌中會收到一條信息,通知您無法找到某個成員 -可以通過刪除丟失的重做日誌成員並添加新成員來恢復丟失的日誌文件 -如果包含丟失日誌文件的組已歸檔,您可以清除日誌組來重新創建丟失的文件 恢 ...
  • --向student表中加入入學時間屬性,其數據類型為日期型alter table student add scome date; --刪除student表中的入學時間屬性alter table student drop column scome; --刪除基本表drop table <表名>; - ...
  • 1.複製表結構: create table newName like oldName;//可以複製所有結構。 或者: create table newName select * from oldName where 1<>1;//讓where條件不成立,只能拷貝結構,無法拷貝內容,且外鍵約束 、主鍵 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...