更新時間:2021-01-22 17:41:11 來源:動力節點 瀏覽1283次
MySQL歸根結底是一個關系型數據庫管理系統,主要還是進行數據的管理,MySQL數據庫將數據保存在不同的表中,使用SQL語言訪問數據庫。MySQL主要還是用來進行數據的相關操作,本文我們就來一起學習MySQL常規操作語句。
1./* 啟動MySQL */
net start mysql
2./* 連接與斷開服務器 */
mysql -h 地址 -P 端口 -u 用戶名 -p 密碼
3./* 跳過權限驗證登錄MySQL */
mysqld --skip-grant-tables
-- 修改root密碼
密碼加密函數password()
update mysql.user set password=password('root');
SHOW PROCESSLIST -- 顯示哪些線程正在運行
SHOW VARIABLES --
4./* 數據庫操作 */ ------------------
-- 查看當前數據庫
select database();
-- 顯示當前時間、用戶名、數據庫版本
select now(), user(), version();
-- 創建庫
create database[ if not exists] 數據庫名 數據庫選項
數據庫選項:
CHARACTER SET charset_name
COLLATE collation_name
-- 查看已有庫
show databases[ like 'pattern']
-- 查看當前庫信息
show create database 數據庫名
-- 修改庫的選項信息
alter database 庫名 選項信息
-- 刪除庫
drop database[ if exists] 數據庫名
同時刪除該數據庫相關的目錄及其目錄內容
5./* 表的操作 */ ------------------
-- 創建表
create [temporary] table[ if not exists] [庫名.]表名 ( 表的結構定義 )[ 表選項]
每個字段必須有數據類型
最后一個字段后不能有逗號
temporary 臨時表,會話結束時表自動消失
對于字段的定義:
字段名數據類型 [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string']
-- 表選項
-- 字符集
CHARSET = charset_name
如果表沒有設定,則使用數據庫字符集
-- 存儲引擎
ENGINE = engine_name
表在管理數據時采用的不同的數據結構,結構不同會導致處理方式、提供的特性操作等不同
常見的引擎:InnoDB MyISAM Memory/Heap BDB Merge Example CSV MaxDB Archive
不同的引擎在保存表的結構和數據時采用不同的方式
MyISAM表文件含義:.frm表定義,.MYD表數據,.MYI表索引
InnoDB表文件含義:.frm表定義,表空間數據和日志文件
SHOW ENGINES -- 顯示存儲引擎的狀態信息
SHOW ENGINE 引擎名 {LOGS|STATUS} -- 顯示存儲引擎的日志或狀態信息
-- 數據文件目錄
DATA DIRECTORY = '目錄'
-- 索引文件目錄
INDEX DIRECTORY = '目錄'
-- 表注釋
COMMENT = 'string'
-- 分區選項
PARTITION BY ... (詳細見手冊)
-- 查看所有表
SHOW TABLES[ LIKE 'pattern']
SHOW TABLES FROM 表名
-- 查看表機構
SHOW CREATE TABLE 表名 (信息更詳細)
DESC 表名 / DESCRIBE 表名 / EXPLAIN 表名 / SHOW COLUMNS FROM 表名 [LIKE 'PATTERN']
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']
-- 修改表
-- 修改表本身的選項
ALTER TABLE 表名 表的選項
EG: ALTER TABLE 表名 ENGINE=MYISAM;
-- 對表進行重命名
RENAME TABLE 原表名 TO 新表名
RENAME TABLE 原表名 TO 庫名.表名 (可將表移動到另一個數據庫)
-- RENAME可以交換兩個表名
-- 修改表的字段機構
ALTER TABLE 表名 操作名
-- 操作名
ADD[ COLUMN] 字段名 -- 增加字段
AFTER 字段名 -- 表示增加在該字段名后面
FIRST -- 表示增加在第一個
ADD PRIMARY KEY(字段名) -- 創建主鍵
ADD UNIQUE [索引名] (字段名)-- 創建唯一索引
ADD INDEX [索引名] (字段名) -- 創建普通索引
ADD
DROP[ COLUMN] 字段名 -- 刪除字段
MODIFY[ COLUMN] 字段名 字段屬性 -- 支持對字段屬性進行修改,不能修改字段名(所有原有屬性也需寫上)
CHANGE[ COLUMN] 原字段名 新字段名 字段屬性 -- 支持對字段名修改
DROP PRIMARY KEY -- 刪除主鍵(刪除主鍵前需刪除其AUTO_INCREMENT屬性)
DROP INDEX 索引名 -- 刪除索引
DROP FOREIGN KEY 外鍵 -- 刪除外鍵
-- 刪除表
DROP TABLE[ IF EXISTS] 表名 ...
-- 清空表數據
TRUNCATE [TABLE] 表名
-- 復制表結構
CREATE TABLE 表名 LIKE 要復制的表名
-- 復制表結構和數據
CREATE TABLE 表名 [AS] SELECT * FROM 要復制的表名
-- 檢查表是否有錯誤
CHECK TABLE tbl_name [, tbl_name] ... [option] ...
-- 優化表
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
-- 修復表
REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]
-- 分析表
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
6./* 數據操作 */ ------------------
-- 增
INSERT [INTO] 表名 [(字段列表)] VALUES (值列表)[, (值列表), ...]
-- 如果要插入的值列表包含所有字段并且順序一致,則可以省略字段列表。
-- 可同時插入多條數據記錄!
REPLACE 與 INSERT 完全一樣,可互換。
INSERT [INTO] 表名 SET 字段名=值[, 字段名=值, ...]
-- 查
SELECT 字段列表 FROM 表名[ 其他子句]
-- 可來自多個表的多個字段
-- 其他子句可以不使用
-- 字段列表可以用*代替,表示所有字段
-- 刪
DELETE FROM 表名[ 刪除條件子句]
沒有條件子句,則會刪除全部
-- 改
UPDATE 表名 SET 字段名=新值[, 字段名=新值] [更新條件]
/* 字符集編碼 */ ------------------
-- MySQL、數據庫、表、字段均可設置編碼
-- 數據編碼與客戶端編碼不需一致
SHOW VARIABLES LIKE 'character_set_%' -- 查看所有字符集編碼項
character_set_client 客戶端向服務器發送數據時使用的編碼
character_set_results 服務器端將結果返回給客戶端所使用的編碼
character_set_connection 連接層編碼
SET 變量名 = 變量值
set character_set_client = gbk;
set character_set_results = gbk;
set character_set_connection = gbk;
SET NAMES GBK; -- 相當于完成以上三個設置
-- 校對集
校對集用以排序
SHOW CHARACTER SET [LIKE 'pattern']/SHOW CHARSET [LIKE 'pattern'] 查看所有字符集
SHOW COLLATION [LIKE 'pattern'] 查看所有校對集
charset 字符集編碼 設置字符集編碼
collate 校對集編碼 設置校對集編碼
以上就是MySQL常規操作語句,基本上囊括了數據庫中表和各種數據最基本的增刪查改和我們使用MySQL數據庫常規操作,只要能夠牢牢記住這些MySQL的常規操作語句,基本上就滿足了我們對MySQL的使用。在本站的MySQL教程中,對MySQL操作語句有更加詳細的介紹,幫助我們快速掌握MySQL中的各種操作語句。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習