????? Hi,大家好,今天我給大家?guī)淼氖恰癕ariaDB(MySQL)常用語句的使用”
伊通網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),伊通網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為伊通1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的伊通做網(wǎng)站的公司定做!
?????說明
????????????? 1、MySQL語句不區(qū)分字符大小寫,在Unix或類Unix(Linux)系統(tǒng)下“參數(shù)”區(qū)分字符大小寫
????????????? 2、多數(shù)MySQL語句以";"結(jié)尾;如果結(jié)尾處不寫";"MySQL會(huì)等待輸入下一條語句,直到結(jié)尾有";"為止
????????????? 3、一行需要執(zhí)行多條語句用";"進(jìn)行分隔
??????????本篇內(nèi)容以Linux系統(tǒng)為例;本文中的[符號(hào)里邊的內(nèi)容為可選內(nèi)容,既可有可無的 ]、{符號(hào)里的內(nèi)容為必須給出的內(nèi)容 }、|符號(hào)為或者之意;語句之前的符號(hào)#為Linux系統(tǒng)的命令提示符(需在系統(tǒng)下執(zhí)行的)、符號(hào)>為MySQL數(shù)據(jù)庫提示符(需在MySQL數(shù)據(jù)庫中執(zhí)行的);字體顏色為紅色的是需要注意的地方(可能會(huì)出現(xiàn)誤操作的地方)
?
溫馨提示:使用電腦閱讀效果更佳
?
MariaDB(MySQL)語句分類
?????服務(wù)端命令:通過mysql連接發(fā)往服務(wù)器執(zhí)行并取回結(jié)果(SQL語句)
????????????? DDL(Data Defined Language):要用于管理數(shù)據(jù)庫組件,例如表、索引、視圖、用戶、存儲(chǔ)過程
???????????????????? CREATE DATABASE, ALTER DATABASE, DROP DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, DROP INDEX, CREATE USER, DROP USER, SELECT
????? ?????DML(Data Manipulation Language):數(shù)據(jù)操縱語言,主要用管理表中的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的增、刪、改、查
???????????????????? INSERT, DELETE, UPDATE, SELECT
????????????? DCL:權(quán)限管理
???????????????????? GRANT, REVOKE
?????客戶端命令:本地執(zhí)行
以下語句有兩種表示方式(clear,\c),語句結(jié)尾處不用加;但加了也不會(huì)出錯(cuò) | |
語句 | 說明 |
? (\?) | 獲取命令幫助 |
clear (\c) | 清除當(dāng)前的輸入語句 |
connect (\r) | 重新連接MySQL |
delimiter (\d) | 設(shè)置語句分隔符,默認(rèn)為分號(hào); |
ego (\G) | 語句結(jié)束標(biāo)記,結(jié)果以垂直方式顯示 |
exit (\q) | 退出MySQL |
go (\g) | 語句結(jié)束標(biāo)記 |
help (\h) | 顯示此幫助 |
prompt (\R) | 更改MySQL提示符 |
quit (\q) | 退出MySQL |
source (\.) | 裝載并運(yùn)行SQL腳本,腳本存放的位置"MySQL"用戶需要有權(quán)限讀取 |
status (\s) | 獲取MySQL狀態(tài)信息 |
system (\!) | 執(zhí)行shell命令 |
use (\u) | 設(shè)定哪個(gè)庫為默認(rèn)數(shù)據(jù)庫 |
?
????一、登錄/退出MySQL
??????????登錄
????????????????登錄本地?cái)?shù)據(jù)庫
?????? ????????????????匿名登錄
?????????????????????????????????? # mysql [數(shù)據(jù)庫名稱]
?????????????????????????????????? # mysql -p [數(shù)據(jù)庫名稱]
???????????????????? ?????指定用戶登錄
?????????????????????????????????? # mysql -u 用戶名 -p [數(shù)據(jù)庫名稱]
?????????????????????????????????? # mysql -u 用戶名 –p用戶的密碼 [數(shù)據(jù)庫名稱]
????????????????遠(yuǎn)程登錄數(shù)據(jù)庫
??????????????????????????? # mysql -h主機(jī) -u用戶名 -p用戶的密碼 [數(shù)據(jù)庫名稱]
????????????????注意:在登錄時(shí)可指定數(shù)據(jù)庫"[DATABASE_NAME]"
??????????退出
???????????????????? > exit
???????????????????? > quit
???????????????????? > \q
???????????????????? Ctrl+C
????二、選擇/切換數(shù)據(jù)庫:在數(shù)據(jù)庫中執(zhí)行的操作都要先選擇數(shù)據(jù)庫
????????????? > USE數(shù)據(jù)庫名稱;
?
????三、數(shù)據(jù)庫管理
??????????創(chuàng)建
????????????????創(chuàng)建一個(gè)新的數(shù)據(jù)庫
??????????????????????????? > CREATE {DATABASE | SCHEMA}數(shù)據(jù)庫名稱;
????????????????創(chuàng)建一個(gè)新的數(shù)據(jù)庫,如果數(shù)據(jù)庫不存在,則創(chuàng)建
??????????????????????????? > CREATE DATABASE IF NOT EXISTS數(shù)據(jù)庫名稱;
?????????????????????注意:數(shù)據(jù)庫名稱在創(chuàng)建時(shí)定義,后期不可更改
??????????修改
????????????????修改指定數(shù)據(jù)庫的默認(rèn)字符集
??????????????????????????? > ALTER DATABASE數(shù)據(jù)庫名稱 CHARACTER SET '字符集名稱';
??????????查詢
????????????????查看當(dāng)前設(shè)備上已有的數(shù)據(jù)庫
??????????????????????????? > SHOW DATABASES;
????????????????????查看以指定字符開頭的數(shù)據(jù)庫
??????????????????????????? > SHOW DATABASES LIKE 'name%';
????????????????????查看以指定字符結(jié)尾的數(shù)據(jù)庫
??????????????????????????? > SHOW DATABASES LIKE '%name';
????????????????????查看數(shù)據(jù)庫所支持的引擎
??????????????????????????? > SHOW ENGINES;
??????????????????查看所支持的字符集
??????????????????????????? > SHOW CHARACTER SET;
?????????????????????常見字符集
?????????????????????????????????? big5:繁體中文
?????????????????????????????????? gb2312:簡體中文
?????????????????????????????????? utf8:統(tǒng)一的字符編碼標(biāo)準(zhǔn)
??????????????????查看字符集的排序方式
??????????????????????????? > SHOW COLLATION;
????????????????????查看當(dāng)前數(shù)據(jù)庫的版本號(hào)和當(dāng)前日期
??????????????????????????? > SELECT VERSION(), CURRENT_DATE;
??????????刪除
??????????????????刪除數(shù)據(jù)庫:刪庫需小心(MySQL沒有回收站)
??????????????????????????? > DROP {DATABASE | SCHEMA}數(shù)據(jù)庫名稱;
??????????????????????????? > DROP {DATABASE | SCHEMA} [IF EXISTS]數(shù)據(jù)庫名稱;
????????????????????建議把不用的數(shù)據(jù)庫移動(dòng)到其他位置,而不是刪除
??????????????????????????? # mv /var/lib/mysql/DATABASE_NAME??/PATH/TO/DIRECTORY_NAME
?
????四、數(shù)據(jù)表管理
??????????創(chuàng)建
??????????????????在數(shù)據(jù)庫內(nèi)創(chuàng)建數(shù)據(jù)表
??????????????????????????? > USE數(shù)據(jù)庫名稱;
??????????????????????????? > CREATE TABLE數(shù)據(jù)表名稱 (字段1 數(shù)據(jù)類型 修飾符,字段2 數(shù)據(jù)類型 修飾符,字段3 數(shù)據(jù)類型 修飾符 ...) [table_option];
? ? ? ? ? ? ????????MySQL數(shù)據(jù)類型參考:點(diǎn)我查看
??????????????????????在創(chuàng)建數(shù)據(jù)表時(shí)還可以定義以下內(nèi)容:
? ? ? ? ? ? ? ? ? ? ? ? ? ??定義鍵
?????????????????????????????????????????主鍵:PRIMARY KEY (字段1,字段2, ...)
?????????????????????????????????????????唯一鍵:UNIQUE KEY? (字段1,字段2,...)
?????????????????????????????????????????外鍵:FOREIGN KEY (column)
???????????????????????????定義索引
????????????????????????????????????????? KEY|INDEX [索引名稱] (字段1,字段2,...)
> CREATE TABLE server ( IDC_ROOM VARCHAR(3) NOT NULL,RACK_SLOT VARCHAR(10)NOT NULL ,SN VARCHAR(30) PRIMARY KEY,HOSTNAME VARCHAR(16) NOT NULL,MACHINE_TYPE VARCHAR(10) NOT NULL ) ;
???????????????????? ????? table_option:
??????????????????????????? ? | ENGINE [=] engine_name: 【定義存儲(chǔ)引擎】
??????????????????????????? ? | AUTO_INCREMENT [=] value: 【設(shè)置默認(rèn)自動(dòng)增長數(shù)據(jù)從數(shù)字幾開始算,默認(rèn)為1】
??????????????????????????? ? | [DEFAULT] CHARACTER SET [=] charset_name: 【定義字符集,如不定義則從數(shù)據(jù)庫繼承】
??????????????????????????? ? | [DEFAULT] COLLATE [=] collation_name: 【定義排序規(guī)則】
??????????????????????????? ? | COMMENT [=] 'string': 【定義數(shù)據(jù)表的注釋信息】
??????????????????????????? ? | MAX_ROWS [=] value【定義最大行數(shù)】
??????????????????????????? ? | MIN_ROWS [=] value【定義最小行數(shù)】
??????????????????????????? ? | PASSWORD [=] 'string'【加密】
?????????????????????????? ? | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}【定義行格式】
??????????????????????????? ? ?????????? DEFAULT:默認(rèn)格式
??????????????????????????? ? ?????????? DYNAMIC:動(dòng)態(tài)格式
??????????????????????????? ? ?????????? FIXED:固定長度
??????????????????????????? ? ?????????? COMPRESSED:壓縮存儲(chǔ)
??????????????????????????? ? ?????????? REDUNDANT:冗余存儲(chǔ)
??????????????????????????? ? ?????????? COMPACT:緊致存儲(chǔ)
?
???????????????????? ?????鍵類型可以在字段中指明
?????????????????????????????????? > CREATE TABLE數(shù)據(jù)表名稱 (ID TINYINT NOT NULL AUTO_INCREMENT UNIQUE KEY,NAME VARCHAR(20) NOT NULL UNIQUE KEY);
???????????????????????也可以單獨(dú)指明:把多個(gè)字段聯(lián)合起來定義(多字段索引)
?????????????????????????????????? > CREATE TABLE數(shù)據(jù)表名稱 (ID TINYINT NOT NULL AUTO_INCREMENT ,NAME VARCHAR(20) NOT NULL,UNIQUE KEY(ID,NAME));
???????????????????? ??????????????????????注意:創(chuàng)建數(shù)據(jù)表的時(shí)候,表名不可使用"table"作為其名稱
????????????????在指定數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表
??????????????????????????? > CREATE TABLE數(shù)據(jù)庫名稱.數(shù)據(jù)表名稱 (字段1 數(shù)據(jù)類型 修飾符,字段2 數(shù)據(jù)類型 修飾符,字段3 數(shù)據(jù)類型 修飾符 ...) [table_option];
??????????插入
????????????????向數(shù)據(jù)表中插入數(shù)據(jù)
? ? ????????????????????一次插入一行
?????????????????????????????????? > INSERT INTO [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱(字段1,字段2,字段3 ...)
?????? ????????????????一次插入多行
?????????????????????????????????? > INSERT INTO [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱(字段1,字段2,字段3 ...) {VALUES | VALUE} (DATE1: '字段1的值','字段2的值',字段3的值' ...),(DATE2: '字段1的值','字段2的值','字段3的值' ...) ...;
注意
?????????????????????????????????? (1)使用INSERT語句,可以一次插入一行,也可以一次插入多行"(line1_data),(line2_data)..."
?????????????????????????????????? (2)如果想用INSERT語句插入空值時(shí),可以直接用NULL
????????????????????
????????????????????替換表中已有數(shù)據(jù):如果沒有數(shù)據(jù),則插入;如果已有數(shù)據(jù),則替換(支持單行插入、多行插入、給定字段插入或全字段插入)
??????????????????????????? > REPLACE [INTO]數(shù)據(jù)表名稱(字段1,字段2,字段3 ...) VALUES ('字段1的值','字段2的值','字段3的值','字段4的值','字段5的值','字段6的值')[,(line2_data)...];
????????????????從文件中讀取數(shù)據(jù)并插入到表中:一個(gè)空表,填充它的一個(gè)簡易方法是創(chuàng)建一個(gè)文本文件,每條信息各一行,然后用一個(gè)語句將文件的內(nèi)容裝載到表中
??????????????????????????? > LOAD DATA LOCAL INFILE '/PATH/TO/ FILE_NAME' INTO TABLE [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
?????????????????????注意:如果需要填充空值時(shí),使用(反斜線+字母N)表示
???????????????? ?????我演示的是從文件中導(dǎo)入到數(shù)據(jù)庫,表中的敏感數(shù)據(jù)我已修改
????????????????從EXCEL表格中插入數(shù)據(jù):點(diǎn)我查看
??????????修改
????????????????修改數(shù)據(jù)表的名稱
??????????????????????????? > RENAME TABLE [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 TO數(shù)據(jù)庫名稱.新表名稱 ;
??????????????????????????? > ALTER TABLE [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 RENAME TO數(shù)據(jù)庫名稱.新表名稱;
????????????????修改注釋信息
??????????????????????????? > ALTER TABLE [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 COMMENT = '注釋信息';
????????????????????給表中添加一個(gè)新字段
??????????????????????????? > ALTER TABLE數(shù)據(jù)表名稱 ADD新字段名 數(shù)據(jù)類型 修飾符 [FIRST | AFTER字段名];
??????????????????????????????????指明字段位置
????????????????????????????????????????? FIRST:添加到第一字段
????????????????????????????????????????? AFTER:添加到哪個(gè)字段后面
?????????????????????????????????????????如果不指定字段位置,則放在最后
????????????????修改字段名稱(CHANGE)
??????????????????????????? > ALTER TABLE數(shù)據(jù)表名稱 CHANGE原名稱 新名稱 原有屬性信息(數(shù)據(jù)類型、修飾符...);
????????????????修改/更新指定字段
??????????????????????????? > UPDATE [LOW_PRIORITY] [IGNORE] [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 SET字段1=字段1的值[,字段2=字段2的值] ... WHERE where_condition [ORDER BY ...] [LIMIT row_count]
???????????????????????注意:用UPDATE修改行時(shí)必須使用WHERE子句指明條件(盡量指主鍵),否則將修改所有
??????????查詢
??????????????????查詢當(dāng)前數(shù)據(jù)庫中的數(shù)據(jù)表
??????????????????????????? > USE數(shù)據(jù)庫名稱;
??????????????????????????? > SHOW TABLES;
??????????????????查詢指定庫中的數(shù)據(jù)表
??????????????????????????? > SHOW TABLES IN數(shù)據(jù)庫名稱;
??????????????????????????? > SHOW TABLES FROM數(shù)據(jù)庫名稱;
????????????????????查看數(shù)據(jù)表的詳細(xì)信息
??????????????????????????? > DESCRIBE [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
??????????????????????????? > DESC [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
??????????????????查看數(shù)據(jù)表的狀態(tài)信息
??????????????????????????? > SHOW TABLE STATUS [LIKE '數(shù)據(jù)表名稱'];
????????????????查看數(shù)據(jù)表的狀態(tài)信息(垂直顯示)
??????????????????????????? > SHOW TABLE STATUS [LIKE '數(shù)據(jù)表名稱']\G;
??????????????????????????? ?????????????輸出內(nèi)容說明
???????????????? ?查看創(chuàng)建命令
???????????????????? ????? > SHOW CREATE TABLE [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
????????????????顯示以指定字符開頭的表的狀態(tài)
??????????????????????????? > SHOW TABLE STATUS WHERE Name LIKE '數(shù)據(jù)表名稱%'\G;
????????????????顯示指定時(shí)間創(chuàng)建的表
??????????????????????????? > SHOW TABLE STATUS WHERE Create_time LIKE '時(shí)間%'\G;
?????????? SELECT語句:用來從數(shù)據(jù)表中檢索信息
??????????????????????????? > SELECT SELECT_EXPR FROM [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱1,[數(shù)據(jù)表名稱2 ...] [WHERE where_condition];
SELECT語句的子句的執(zhí)行過程
???????????????????? ????? SELECT_EXPR
?????????????????????????????????? *:所有字段(所有行,所有列)
?????????????????????????????????? ALL
??????????????????????????????????字段1,字段2,字段3:投影;只顯示指定字段
?????????????????????????????????? DISTINCT:相同的數(shù)據(jù),只顯示一次
?????????????????????????????????? field AS field_alias:給field取個(gè)別名field_alias
?
???????????????????????????只查看表中不同的數(shù)據(jù)
?????????????????????????????????? > SELECT DISTINCT FROM [數(shù)據(jù)庫名稱.]?數(shù)據(jù)表1,[數(shù)據(jù)表2 ...];
???????????????????? ?????查看指定表中所有字段(慎用)
?????????????????????????????????? > SELECT * FROM [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱1,[數(shù)據(jù)表2 ...];
???????????????????????????查看指定表中的指定列(如果表太大則不適合執(zhí)行)
?????????????????????????????????? > SELECT字段1,字段2,字段3 ... FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
?????????????????????定義顯示的字段別名
?????????????????????????????????? > SELECT字段 AS字段別名 FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
???????????????????? ????? FROM子句:指定要查詢的關(guān)系
??????????????????????????????????單表查詢(簡單查詢):后面跟一個(gè)表名
??????????????????????????????????多表查詢:后面跟多個(gè)表名
??????????????????????????????????子查詢:后面跟WHERE子句
?
??????????????????????????? WHERE子句:選擇、指明條件;只輸出符合條件的行(重要)
?????????????????????????????????? > SELECT字段1,字段2,字段3 ... FROM [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 WHERE where_condition;
?????????????????????????????????? ????? where_condition:
??????????????????????????? ????????????????操作符
BETWEEN x AND y | 在x和y范圍之間的值 |
IS NULL | 空值 |
IS NOT NULL | 非空值 |
IN (LIST) | 使用列表給出的值;用于離散取值 |
????????????????????????????????????????? ?????算數(shù)運(yùn)算
+ | 加 |
- | 減 |
* | 乘 |
/ | 除 |
% | 取模 |
????????????????????????????????????????? ?????比較表達(dá)式
>? | 大于 |
<? | 小于 |
>= | 大于等于 |
<= | 小于等于 |
= | 等于 |
!=或 <> | 不等于 |
<=> | 空值比較 |
???????????????????? ?????????????????????組合條件(邏輯運(yùn)算)
AND (&&) | 與;并且關(guān)系,既兩個(gè)條件同時(shí)滿足 |
OR (||) | 或;或者關(guān)系,既兩個(gè)條件滿足一個(gè) |
NOT (!) | 非;條件不滿足即為真 |
???????????????????????????????????????????????? ??????????注意:AND和OR可以混用,但AND比OR具有更高的優(yōu)先級(jí)。如果你使用兩個(gè)操作符,使用圓括號(hào)指明如何對(duì)條件進(jìn)行分組是一個(gè)好主意(NOT xxx AND NOT xxx AND NOT xxx等于NOT ( xxx OR xxx OR xxx ) )
??????????????????????????????????????字符串比較
????????????????????????????????????????????通配符
?????????????????????????????????????????????????????????????? LIKE '模式':支持使用“通配符”做模糊匹配
????????????????????????????????????????????????????????????????????? %:任意長度的任意字符
????????????????????????????????????????????????????????????????????? _:任意單個(gè)字符
????????????????????????????????????????????正則表達(dá)式
?????????????????????????????????????????????????????????????? {RLIKE | REGEXP} '模式':基基于正則表達(dá)式做模式匹配;不用索引、效率低
??????????????????????????????????????????????????????????????正則表達(dá)式元字符:點(diǎn)我查看
?????????????????????排序(ORDER BY):將查詢到的結(jié)果排序顯示;如果表太大,排序操作極其消耗資源
??????????????????????????? > ORDER BY字段名稱 {ASC | DESC}
???????????????????????????升序:默認(rèn)(ASC)
????????????????????????????????????????? ?> SELECT字段1,字段2,字段3 ... FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 ORDER BY?字段名稱?ASC;
???????????????????????????降序(DESC)
????????????????????????????????????????? ?> SELECT字段1,字段2,字段3 ... FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 ORDER BY 字段名稱?DESC;
??????????????????????????????????注意:默認(rèn)是區(qū)分字符大小寫的,如不想?yún)^(qū)分字符大小寫則執(zhí)行“ORDER BY BINARY字段名稱”
????????????????????? LIMIT子句
?????????????????????????????????? LIMIT [offset,]count
?????????????????????????????????? LIMIT #:只顯示前#行的內(nèi)容
?????????????????????????????????? LIMIT x,y:忽略x行,顯示y行后的行
???????????????????? ???????????????????? x:偏移量
????????????????????????????????????????? y:偏移后取幾個(gè)值予以顯示
?????? ?????????????????????注意:在MySQL中字符串必須加引號(hào),而數(shù)值一定不能加引號(hào)
?????????????????????聚合計(jì)算
?????????????????????????????????? > SELECT聚合計(jì)算函數(shù) FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
??????????????????????????????????聚合計(jì)算函數(shù)
????????????????????????????????????????? AVG(字段名稱):求平均值
????????????????????????????????????????? MAX(字段名稱):求最大值
????????????????????????????????????????? MIN(字段名稱):求最小值
????????????????????????????????????????? SUM(字段名稱):求合
????????????????????????????????????????? COUNT(字段名稱):求個(gè)數(shù)之和
?????????????????????分組(GROUP BY):分組主要目的是為了做聚合計(jì)算
?????????????????????????????????? > SELECT * FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 GROUP BY '字段名';
??????????????????????????????????對(duì)分組進(jìn)行過濾
????????????????????????????????????????? > HAVING conditions;
??????????復(fù)制
??????????????????復(fù)制表結(jié)構(gòu)
??????????????????????????? > CREATE TABLE數(shù)據(jù)表名稱 LIKE?原數(shù)據(jù)庫.原數(shù)據(jù)表;
????????????????復(fù)制表中的幾個(gè)字段并將其創(chuàng)建成一個(gè)新表(不會(huì)復(fù)制其屬性)
??????????????????????????? > CREATE TABLE數(shù)據(jù)表名稱 SELECT字段1,字段2,字段3 ... FROM原數(shù)據(jù)庫.原數(shù)據(jù)表;
??????????刪除???
????????????????刪除表:刪表需小心(MySQL沒有回收站)
??????????????????????????? > DROP TABLE [IF EXISTS][數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
????????????????刪除表中的行(DELETE)
??????????????????????????? > DELETE FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 [WHERE where_condition];
??????????????????????????? > DELETE FROM數(shù)據(jù)表名稱 [ORDER BY ...] [LIMIT row_count]
?????????????????????????注意:用DELETE刪除行時(shí)必須使用WHERE子句,否則將清空整張表(DELETE FROM table_name)
????????????????先排序后刪除
??????????????????????????? > DELETE FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 [WHERE where_condition] [ORDER BY '字段名' [DESC]]
????????????????刪除字段(列)
??????????????????????????? > ALTER TABLE數(shù)據(jù)表名稱 DROP字段名稱;
????????????????清空整張數(shù)據(jù)表
??????????????????????????? > TRUNCATE[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
?
????五、索引管理
???????????創(chuàng)建
????????????????????創(chuàng)建索引
??????????????????????????? > CREATE {INDEX | INDEXES}索引名稱 ON[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱(字段1,字段2,字段3 ...);
????????????????創(chuàng)建多列索引
??????????????????????????? > CREATE UNIQUE {INDEX | INDEXES}索引名稱 ON[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;??????
????????????????????給表中指定的字段加入索引
??????????????????????????? > ALTER TABLE[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱?ADD INDEX(‘字段名稱’);
???????????查詢
????????????????查看表中索引
??????????????????????????? > SHOW {INDEX | INDEXES} FROM[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
、????????刪除:索引不用時(shí),要立即刪除
????????????????刪除索引:這可能會(huì)導(dǎo)致查詢操作降低
??????????????????????????? > DROP {INDEX | INDEXES}索引名稱 ON[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱;
??????????注意:INDEX為一個(gè)索引,INDEXES為多個(gè)索引
?
????六、鍵管理
??????????創(chuàng)建
???????????????? (1)在數(shù)據(jù)表創(chuàng)建的時(shí)候定義主鍵
???????????????? (2)給已有的表中指定的字段加入主鍵
??????????????????????????? ALTER TABLE[數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 ADD {PRIMARY KEY | UNIQUE KEY}(‘字段名稱’);
??????????修改
???????????????????先刪除鍵,再添加鍵
??????????查詢
??????????????????查詢主鍵
??????????????????????> SHOW KEYS FROM [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 WHERE key_name='PRIMARY';
??????????刪除
????????????????????刪除鍵:不是自增長的才可以刪除,如果是自增長(有auto_increment屬性)必須先將表中其他屬性刪除
??????????????????????????? >ALTER TABLE [數(shù)據(jù)庫名稱.]數(shù)據(jù)表名稱 DROP {PRIMARY KEY | UNIQUE KEY};
?
????七、用戶管理
??????????MySQL用戶和操作系統(tǒng)中的用戶不同;不能用MySQL用戶登錄操作系統(tǒng),同樣也不能用操作系統(tǒng)用戶訪問MySQL
??????????用戶是公開的,大家都可以看到;而密碼只有某個(gè)授權(quán)使用用戶才能獲取
?????????? MySQL使用自己獨(dú)有的加密機(jī)制password()函數(shù)加密用戶密碼
?????????? MySQL默認(rèn)管理員是root,和操作系統(tǒng)管理員名稱一致
?????????? MySQL用戶由'用戶名'@'主機(jī)'共同組成
??????????????????? MySQL用戶名:不能超過16個(gè)字符
????????????????主機(jī)
???????????????????? ?????主機(jī)名:zhangdaifu
??????????????????????????? IP地址:10.0.0.1
???????????????????? ?????網(wǎng)絡(luò)地址:10.0.0.1/255.0.0.0
??????????????????????????????????支持使用通配符表示:10.%.%._/255.0.0.0
?????????????????????????????????????????如需表示通配符本身的含義則需要進(jìn)行轉(zhuǎn)義\
??????????創(chuàng)建
????????????????創(chuàng)建用戶帳號(hào)
??????????????????????????? > CREATE USER '用戶名'@'主機(jī)';
??????????????????創(chuàng)建用戶賬號(hào)并設(shè)置其密碼
??????????????????????????? > CREATE USER '用戶名'@'主機(jī)' IDENTIFIED BY '密碼';
?
??????????修改
????????????????修改用戶名
??????????????????????????? > UPDATE mysql.user SET USER='新用戶名稱' WHERE User='用戶名';
?????????????查詢:MySQL用戶在mysql.user表中保存
????????????????查看所有用戶信息
??????????
新聞標(biāo)題:MySQL常用語句
當(dāng)前網(wǎng)址:http://aaarwkj.com/article46/jpoihg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)