1. MySQL命令
- MySQL命令是用于與MySQL數(shù)據(jù)庫(kù)進(jìn)行交互和操作的命令。這些命令可以用于各種操作,包括連接到數(shù)據(jù)庫(kù)、選擇數(shù)據(jù)庫(kù)、創(chuàng)建表、插入數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù)等。
2. MySQL基礎(chǔ)命令
- 默認(rèn)端口號(hào):3306
- 查看服務(wù)器版本:select version(); 或者 cmd命令 mysql -verison
- 登錄數(shù)據(jù)庫(kù):mysql -uroot -p
- 退出數(shù)據(jù)庫(kù):exit/quit
- 查看當(dāng)前系統(tǒng)下的數(shù)據(jù)庫(kù):show databases;
- 創(chuàng)建數(shù)據(jù)庫(kù):create 庫(kù)名;
- 使用數(shù)據(jù)庫(kù):use 庫(kù)名;
- 查看表:show tables;
- 建表:create table 表名 (字段名 + 空格 + 數(shù)據(jù)類型);
- 查看表結(jié)構(gòu):desc 表名;
- 添加值:insert into 表名 (列名) values (值);
- 查看表中所有數(shù)據(jù):select * from 表名;
- 查詢建表時(shí)的結(jié)構(gòu):show create table 表名;
- 刪除字段中的值:delete from 表名 where 條件;
- 刪除表中的字段:delete from 表名 drop column 字段名; 或alter table 表名 drop 字段名
- 刪除表:drop table 表名;
- 刪除庫(kù):drop database 庫(kù)名;
- 主鍵約束:primary key
- 唯一約束:unique
- 非空約束:not null
- 默認(rèn)約束:default
- 外鍵約束:foreign key(外鍵)references主表(主鍵)
- 查看別的數(shù)據(jù)庫(kù)的表格:show tables from 表名;
3. MySQL命令簡(jiǎn)介
- MySQL命令是用于與MySQL數(shù)據(jù)庫(kù)進(jìn)行交互和操作的命令。
以下是一些常用的MySQL命令:
- mysql:連接MySQL數(shù)據(jù)庫(kù)的命令,需要指定用戶名和密碼。
- use:使用某個(gè)數(shù)據(jù)庫(kù)。
- show databases:顯示所有數(shù)據(jù)庫(kù)。
- create database:創(chuàng)建新的數(shù)據(jù)庫(kù)。
- drop database:刪除數(shù)據(jù)庫(kù)。
- create table:創(chuàng)建新的表。
- alter table:修改表結(jié)構(gòu)。
- drop table:刪除表。
- insert into:向表中插入新的記錄。
- delete from:刪除表中符合條件的記錄。
- update:更新表中符合條件的記錄。
- select:查詢表中的記錄。
- where:對(duì)查詢的記錄進(jìn)行條件篩選。
- order by:對(duì)查詢的記錄進(jìn)行排序。
- group by:對(duì)查詢的記錄進(jìn)行分組。
- having:對(duì)分組后的記錄進(jìn)行篩選。
- set names:設(shè)置字符集編碼。
這些命令只是MySQL命令的一部分,還有更多的命令可以用于管理和操作MySQL數(shù)據(jù)庫(kù)。
4. MySQL常用命令
4.1 MySQL準(zhǔn)備篇
4.1.1 啟動(dòng)和停止MySQL服務(wù)
net start mysql // 啟動(dòng)mysql服務(wù)
net stop mysql // 停止mysql服務(wù)
4.1.2 修改MySQL賬戶密碼
- 修改MySQL的root用戶密碼,先登陸MySQL
mysql -u root -p123456
注意:mysql -uroot -p
你的MySQL密碼
- 修改root用戶的密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
4.1.3 MySQL的登陸和退出
- MySQL登陸
- win+R 輸入cmd,打開命令行窗口,輸入mysql -uroot -p123456 ,回車,出現(xiàn)下圖且左下角為mysql> ,則登錄成功。
mysql -uroot -p123456
注意:mysql -uroot -p
你的MySQL密碼
- MySQL登出
exit
quit
二選一
4.1.4 查看MySQL版本
SELECT VERSION();
4.2 DDL篇(數(shù)據(jù)定義)
- 在MySQL中,DDL是數(shù)據(jù)定義語(yǔ)言(Data Definition Language)的縮寫,用于定義和管理數(shù)據(jù)庫(kù)的結(jié)構(gòu)。
4.2.1 查詢數(shù)據(jù)庫(kù)
- 查詢所有的數(shù)據(jù)庫(kù)
SHOW DATABASES;
4.2.2 創(chuàng)建數(shù)據(jù)庫(kù)
- 創(chuàng)建數(shù)據(jù)庫(kù):
CREATE DATABASE 數(shù)據(jù)庫(kù)名稱;
- 創(chuàng)建數(shù)據(jù)庫(kù)(判斷,如果不存在則創(chuàng)建)
CREATE DATABASE IF NOT EXISTS 數(shù)據(jù)庫(kù)名稱;
4.2.3 使用數(shù)據(jù)庫(kù)
- 使用數(shù)據(jù)庫(kù)
USE 數(shù)據(jù)庫(kù)名稱;
- 查看當(dāng)前使用的數(shù)據(jù)庫(kù)
SELECT DATABASE();
4.2.4 刪除數(shù)據(jù)庫(kù)
- 刪除數(shù)據(jù)庫(kù)
DROP DATABASE 數(shù)據(jù)庫(kù)名稱;
- 刪除數(shù)據(jù)庫(kù)(判斷,如果存在則刪除)
DROP DATABASE IF EXISTS 數(shù)據(jù)庫(kù)名稱;
4.2.5 查詢表
- 查詢當(dāng)前數(shù)據(jù)庫(kù)下所有表名稱
SHOW TABLES;
- 查詢表結(jié)構(gòu)
DESC 表名稱;
4.2.6 創(chuàng)建表
- 創(chuàng)建表
CREATE TABLE 表名 (
字段名1 數(shù)據(jù)類型1,
字段名2 數(shù)據(jù)類型2,
…
字段名n 數(shù)據(jù)類型n
);
create table tb_user (
id int,
username varchar(20),
password varchar(32)
);
注意:最后一行末尾,不能加逗號(hào)
4.2.7 修改表
- 修改表名
ALTER TABLE 表名 RENAME TO 新的表名;
-- 將表名student修改為stu
alter table student rename to stu;
- 添加一列
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型;
-- 給stu表添加一列address,該字段類型是varchar(50)
alter table stu add address varchar(50);
- 修改數(shù)據(jù)類型
ALTER TABLE 表名 MODIFY 列名 新數(shù)據(jù)類型;
-- 將stu表中的address字段的類型改為 char(50)
alter table stu modify address char(50);
- 修改列名和數(shù)據(jù)類型
ALTER TABLE 表名 CHANGE 列名 新列名 新數(shù)據(jù)類型;
-- 將stu表中的address字段名改為 addr,類型改為varchar(50)
alter table stu change address addr varchar(50);
- 刪除列
ALTER TABLE 表名 DROP 列名;
-- 將stu表中的addr字段 刪除
alter table stu drop addr;
4.2.8 刪除表
- 刪除表
DROP TABLE 表名;
- 刪除表時(shí)判斷表是否存在
DROP TABLE IF EXISTS 表名;
4.2.9 查看數(shù)據(jù)表結(jié)構(gòu)
desc [表名];
4.2.10 查看建表語(yǔ)句
SHOW CREATE TABLE [表名]
4.2.11 增加、刪除和修改字段自增長(zhǎng)
(1)增加自增長(zhǎng)字段
ALTER TABLE table_name ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
注意:
table_name
代表您要增加自增長(zhǎng)字段的表名,id
代表您要增加的自增長(zhǎng)字段名。
(2)修改自增長(zhǎng)字段
ALTER TABLE table_name CHANGE column_name new_column_name INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
-
table_name
代表包含自增長(zhǎng)字段的表名,column_name
代表原始自增長(zhǎng)字段名,new_column_name
代表新的自增長(zhǎng)字段名。請(qǐng)注意,將數(shù)據(jù)類型更改為INT,否則無(wú)法使該列成為自增長(zhǎng)主鍵。完成后,您需要重新啟動(dòng)表格才能使修改生效。
(3)刪除自增長(zhǎng)字段
ALTER TABLE table_name MODIFY column_name datatype;
注意:
table_name
代表要?jiǎng)h除自增長(zhǎng)字段的表名,column_name
代表要?jiǎng)h除的自增長(zhǎng)字段名,datatype
代表要設(shè)置的數(shù)據(jù)類型。
4.2.12 增加、刪除和修改數(shù)據(jù)表的列
(1)增加數(shù)據(jù)表的列
ALTER TABLE <表名> ADD COLUMN <列名> <數(shù)據(jù)類型>;
ALTER TABLE student ADD COLUMN age INT;
上面的命令會(huì)在
student
表中增加一個(gè)名為age
的INT
類型列。
(2)刪除數(shù)據(jù)表的列
ALTER TABLE <表名> DROP COLUMN <列名>;
ALTER TABLE student DROP COLUMN age;
上面的命令會(huì)從
student
表中刪除名為age
的列。
(3)修改數(shù)據(jù)表的列
ALTER TABLE <表名> MODIFY COLUMN <列名> <數(shù)據(jù)類型>;
ALTER TABLE student MODIFY COLUMN age VARCHAR(10);
上面的命令會(huì)將
student
表中的age
列的數(shù)據(jù)類型修改為VARCHAR(10)
。
4.2.13 添加、刪除和查看索引
(1)添加索引:
- 要為表中的某個(gè)列添加索引,可以使用以下命令:
ALTER TABLE table_name ADD INDEX index_name (column_name);
其中,table_name是表的名稱,index_name是索引的名稱,
column_name是要添加索引的列的名稱。
- 例如,如果要為名為users的表的email列添加名為idx_email的索引,可以使用以下命令:
ALTER TABLE users ADD INDEX idx_email (email);
(2)刪除索引:
- 要?jiǎng)h除表中的索引,可以使用以下命令:
ALTER TABLE table_name DROP INDEX index_name;
其中,table_name是表的名稱,index_name是要?jiǎng)h除的索引的名稱。
- 例如,如果要?jiǎng)h除名為users的表的idx_email索引,可以使用以下命令:
ALTER TABLE users DROP INDEX idx_email;
(3)查看索引:
- 要查看表中的索引信息,可以使用以下命令:
SHOW INDEX FROM table_name;
其中,table_name是表的名稱。該命令將返回包含索引信息的結(jié)果集。
- 例如,如果要查看名為users的表的索引信息,可以使用以下命令:
SHOW INDEX FROM users;
4.2.14 創(chuàng)建臨時(shí)表
- 要?jiǎng)?chuàng)建臨時(shí)表,可以使用以下語(yǔ)法:
CREATE TEMPORARY TABLE temp_table_name (
column1 datatype,
column2 datatype,
...
);
其中,temp_table_name是您要?jiǎng)?chuàng)建的臨時(shí)表的名稱。您可以指定表的列和數(shù)據(jù)類型,就像創(chuàng)建常規(guī)表一樣。
- 以下是一個(gè)具體的例子:
CREATE TEMPORARY TABLE temp_users (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
上述命令將創(chuàng)建一個(gè)名為temp_users的臨時(shí)表,其中包含id、name和email列。id列是主鍵。
- 注意:臨時(shí)表僅在當(dāng)前會(huì)話可見,并且在會(huì)話結(jié)束時(shí)自動(dòng)刪除。因此,它是一種在會(huì)話過(guò)程中存儲(chǔ)臨時(shí)數(shù)據(jù)的便捷方式。
4.2.15 創(chuàng)建內(nèi)存表
- 要?jiǎng)?chuàng)建內(nèi)存表,可以使用以下語(yǔ)法:
CREATE TABLE mem_table_name (
column1 datatype,
column2 datatype,
...
) ENGINE=MEMORY;
其中,mem_table_name是您要?jiǎng)?chuàng)建的內(nèi)存表的名稱。您可以指定表的列和數(shù)據(jù)類型,就像創(chuàng)建常規(guī)表一樣。通過(guò)將ENGINE選項(xiàng)設(shè)置為MEMORY,該表將被創(chuàng)建為內(nèi)存表。
以下是一個(gè)具體的例子:
CREATE TABLE mem_users (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
) ENGINE=MEMORY;
上述命令將創(chuàng)建一個(gè)名為mem_users的內(nèi)存表,其中包含id、name和email列。id列是主鍵。
- 注意:內(nèi)存表存儲(chǔ)在內(nèi)存中,因此數(shù)據(jù)的修改會(huì)立即生效,并且對(duì)所有用戶可見。但是,當(dāng)MySQL服務(wù)器關(guān)閉時(shí),內(nèi)存表中的數(shù)據(jù)將丟失。因此,它適用于臨時(shí)存儲(chǔ)數(shù)據(jù)或緩存等場(chǎng)景。
4.2.16 查看數(shù)據(jù)庫(kù)數(shù)據(jù)表存儲(chǔ)位置
要查看MySQL數(shù)據(jù)庫(kù)中數(shù)據(jù)表的存儲(chǔ)位置,您可以執(zhí)行以下步驟:
- 連接到MySQL服務(wù)器,可以使用以下命令:
mysql -u username -p
其中,username是您的MySQL用戶名。系統(tǒng)將提示您輸入密碼。
選擇要查看存儲(chǔ)位置的數(shù)據(jù)庫(kù)。使用以下命令選擇數(shù)據(jù)庫(kù):
USE database_name;
其中,database_name是您要查看存儲(chǔ)位置的數(shù)據(jù)庫(kù)的名稱。
- 執(zhí)行以下命令來(lái)查看數(shù)據(jù)表的存儲(chǔ)位置:
SHOW TABLE STATUS;
該命令將返回包含有關(guān)數(shù)據(jù)庫(kù)中所有數(shù)據(jù)表的信息的結(jié)果集。其中,可以關(guān)注File列,它將顯示數(shù)據(jù)表的存儲(chǔ)位置。
- 如果只想查看特定數(shù)據(jù)表的存儲(chǔ)位置,可以結(jié)合使用SHOW TABLE
STATUS和LIKE語(yǔ)句。例如,要查看名為table_name的表的存儲(chǔ)位置,可以執(zhí)行以下命令:
SHOW TABLE STATUS LIKE 'table_name';
這將返回特定數(shù)據(jù)表的詳細(xì)信息,包括存儲(chǔ)位置。
- 注意:這些命令在MySQL版本5.5及更高版本中有效。
4.2.17 清空表內(nèi)容
- 要清空MySQL表的內(nèi)容,可以使用以下命令:
TRUNCATE TABLE table_name;
其中,table_name是要清空內(nèi)容的表的名稱。
該命令將刪除表中的所有數(shù)據(jù),但保留表的結(jié)構(gòu)。換句話說(shuō),它將刪除表中的所有行,但保留表的主鍵、索引和其他屬性。
- 注意:該操作一旦執(zhí)行,無(wú)法恢復(fù)表的內(nèi)容。因此,在使用該命令之前,請(qǐng)確保您已經(jīng)備份了重要的數(shù)據(jù)。
4.3 DML篇(數(shù)據(jù)操作)
-
DML是數(shù)據(jù)操縱語(yǔ)言。它是一組用于管理和處理數(shù)據(jù)庫(kù)的命令和語(yǔ)句,用于插入、更新、刪除、查詢和修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
-
MySQL命令中關(guān)于DML的操作主要有增加(Insert)、刪除(Delete)和修改(Update)
4.3.1 數(shù)據(jù)增加
- 增加操作:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
例如,要在名為users的表中添加一條記錄,可以執(zhí)行以下命令:
INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com');
4.3.2 數(shù)據(jù)刪除
- 刪除操作:
DELETE FROM table_name WHERE condition;
例如,要?jiǎng)h除名為users表中id為1的記錄,可以執(zhí)行以下命令:
DELETE FROM users WHERE id = 1;
4.3.3 數(shù)據(jù)修改
- 修改操作:
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
例如,要修改名為users表中name為’John Doe’的記錄的email,可以執(zhí)行以下命令:
UPDATE users SET email = 'newemail@example.com' WHERE name = 'John Doe';
4.4 DQL篇(數(shù)據(jù)查詢)
- MySQL中DQL(Data Query Language)操作的主要命令是SELECT,用于從數(shù)據(jù)庫(kù)表中檢索數(shù)據(jù)。
4.4.1 檢索所有數(shù)據(jù)
SELECT * FROM table_name;
這個(gè)命令將返回表中的所有記錄。
4.4.2 指定要檢索的列
SELECT column1, column2 FROM table_name;
這個(gè)命令將返回指定的列,例如column1和column2。
4.4.3 使用WHERE子句來(lái)指定條件
SELECT * FROM table_name WHERE condition;
這個(gè)命令將返回滿足指定條件的所有記錄。例如,SELECT * FROM users WHERE age > 18 將返回年齡大于 18 的所有用戶記錄。
4.4.4 使用聚合函數(shù)來(lái)計(jì)算統(tǒng)計(jì)數(shù)據(jù)
SELECT COUNT(*) FROM table_name;
這個(gè)命令將返回表中的記錄數(shù)。還可以使用其他聚合函數(shù),如SUM、AVG、MAX和MIN等。
4.4.5 使用GROUP BY來(lái)分組數(shù)據(jù)
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
這個(gè)命令將按column1分組,并計(jì)算每個(gè)組中的記錄數(shù)。
4.4.6 使用ORDER BY來(lái)排序數(shù)據(jù)
SELECT * FROM table_name ORDER BY column1;
這個(gè)命令將按column1的升序排序所有記錄。還可以使用DESC關(guān)鍵字來(lái)按降序排序。#### 4.4.7 使用LIMIT來(lái)限制返回的記錄數(shù)
SELECT * FROM table_name LIMIT 10;
這個(gè)命令將返回表中的前10條記錄。還可以使用OFFSET關(guān)鍵字來(lái)指定從哪一行開始返回記錄。
4.5 DCL篇(數(shù)據(jù)控制)
- MySQL中DCL(Data Control Language)操作的主要命令是用于管理用戶和權(quán)限的。
4.5.1 GRANT命令:授予訪問(wèn)權(quán)限
GRANT 權(quán)限列表 ON 對(duì)象類型 對(duì)象名稱 TO 用戶名@用戶地址 IDENTIFIED BY用戶口令;
例如,給用戶test授予對(duì)所有數(shù)據(jù)庫(kù)的完全訪問(wèn)權(quán)限:
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' IDENTIFIED BY 'password';
4.5.2 REVOKE命令:撤銷訪問(wèn)權(quán)限
REVOKE 權(quán)限列表 ON 對(duì)象類型 對(duì)象名稱 FROM 用戶名@用戶地址;
例如,撤銷用戶test對(duì)所有數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限:
REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'localhost';
4.5.3 SET PASSWORD命令:修改用戶口令
SET PASSWORD FOR 用戶名@用戶地址 = SET PASSWORD BY PASSWORD ('新口令');
例如,將用戶test的口令修改為新口令:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-687636.html
SET PASSWORD FOR 'test'@'localhost'=SET PASSWORD BY PASSWORD ('newpassword');
4.5.4 FLUSH命令:刷新權(quán)限
FLUSH PRIVILEGES;
例如,刷新權(quán)限使應(yīng)用立即更改:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-687636.html
FLUSH PRIVILEGES;
到了這里,關(guān)于MySQL 數(shù)據(jù)庫(kù)常用命令大全(詳細(xì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!