程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySql命令實例匯總

MySql命令實例匯總

編輯:關於MYSQL數據庫

本文實例總結了MySQL常用的各種操作命令。分享給大家供大家參考,具體如下:

Mysql安裝目錄

數據庫目錄

/var/lib/mysql/

配置文件

/usr/share/mysql(mysql.server命令及配置文件)

相關命令

/usr/bin(mysqladmin mysqldump等命令)

啟動腳本

/etc/init.d/mysql(啟動腳本文件mysql的目錄)

系統管理

連接MySQL

格式: mysql -h 主機地址 -u用戶名 -p用戶密碼

例 1:連接到本機上的 MySQL。
復制代碼 代碼如下:hadoop@ubuntu:~$ mysql -uroot -pmysql;

例 2:連接到遠程主機上的 MYSQL。
復制代碼 代碼如下:hadoop@ubuntu:~$ mysql -h 127.0.0.1 -uroot -pmysql;

修改新密碼

在終端輸入:mysql -u用戶名 -p密碼,回車進入Mysql。

> use mysql;
> update user set password=PASSWORD('新密碼') where user='用戶名';
> flush privileges; #更新權限
> quit; #退出

增加新用戶

格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by '密碼'

舉例:

例 1:增加一個用戶 test1 密碼為 abc,讓他可以在任何主機上登錄,並對所有數據庫有
查詢、插入、修改、刪除的權限。首先用以 root 用戶連入 MySQL,然後鍵入以下命令:
復制代碼 代碼如下:mysql>grant select,insert,update,delete on *.* to root@localhost identified by 'mysql';
或者
復制代碼 代碼如下:grant all privileges on *.* to root@localhost identified by 'mysql';
然後刷新權限設置。
復制代碼 代碼如下:flush privileges;

例 2:如果你不想 root 有密碼操作數據庫"mydb"裡的數據表,可以再打一個命令將密碼消掉。
復制代碼 代碼如下:grant select,insert,update,delete on mydb.* to root@localhost identified by '';

刪除用戶

hadoop@ubuntu:~$ mysql -u用戶名 -p密碼
mysql>delete from user where user='用戶名' and host='localhost';
mysql>flush privileges;
//刪除用戶的數據庫
mysql>drop database dbname;

數據庫操作

顯示所有的數據庫
復制代碼 代碼如下:mysql> show databases;(注意:最後有個 s)

創建數據庫
復制代碼 代碼如下:mysql> create database test;

連接數據庫
復制代碼 代碼如下:mysql> use test;

查看當前使用的數據庫
復制代碼 代碼如下:mysql> select database();

當前數據庫包含的表信息
復制代碼 代碼如下:mysql> show tables; (注意:最後有個 s)

刪除數據庫
復制代碼 代碼如下:mysql> drop database test;

表操作

備注:操作之前使用"use <數據庫名>"應連接某個數據庫。

建表

命令:create table <表名> (<字段名 1> <類型 1> [,..<字段名 n> <類型 n>]);

例子:

mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default '0',
> degree double(16,2));

獲取表結構

命令: desc 表名,或者show columns from 表名

例子:

mysql> describe MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;

刪除表

命令:drop table <表名>

例如:刪除表名為 MyClass 的表
復制代碼 代碼如下:mysql> drop table MyClass;

插入數據

命令:insert into <表名> [( <字段名 1>[,..<字段名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
復制代碼 代碼如下:mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

查詢表中的數據

查詢所有行
復制代碼 代碼如下:mysql> select * from MyClass;

查詢前幾行數據

例如:查看表 MyClass 中前 2 行數據
復制代碼 代碼如下:mysql> select * from MyClass order by id limit 0,2;
或者
復制代碼 代碼如下:mysql> select * from MyClass limit 0,2;

刪除表中數據

命令:delete from 表名 where 表達式

例如:刪除表 MyClass 中編號為 1 的記錄
復制代碼 代碼如下:mysql> delete from MyClass where id=1;

修改表中數據

命令:update 表名 set 字段=新值,... where 條件
復制代碼 代碼如下:mysql> update MyClass set name='Mary' where id=1;

在表中增加字段

命令:alter table 表名 add 字段 類型 其他;

例如:在表 MyClass 中添加了一個字段 passtest,類型為 int(4),默認值為 0
復制代碼 代碼如下:mysql> alter table MyClass add passtest int(4) default '0'

更改表名

命令:rename table 原表名 to 新表名;

例如:在表 MyClass 名字更改為 YouClass
復制代碼 代碼如下:mysql> rename table MyClass to YouClass;

更新字段內容

命令:update 表名 set 字段名 = 新內容

update 表名 set 字段名 = replace(字段名, '舊內容', '新內容');

例如:文章前面加入 4 個空格
復制代碼 代碼如下:update article set content=concat('    ', content);

數據庫導入導出

從數據庫導出數據庫文件

使用"mysqldump"命令

首先進入 DOS 界面,然後進行下面操作。

1)導出所有數據庫

格式:mysqldump -u [數據庫用戶名] -p -A>[備份文件的保存路徑]

2)導出數據和數據結構

格式:mysqldump -u [數據庫用戶名] -p [要備份的數據庫名稱]>[備份文件的保存路徑]

舉例:

例 1:將數據庫 mydb 導出到 e:\MySQL\mydb.sql 文件中。

打開開始->運行->輸入"cmd",進入命令行模式。
復制代碼 代碼如下:c:\> mysqldump -h localhost -u root -p mydb >e:\MySQL\mydb.sql
然後輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。

例 2:將數據庫 mydb 中的 mytable 導出到 e:\MySQL\mytable.sql 文件中。
復制代碼 代碼如下:c:\> mysqldump -h localhost -u root -p mydb mytable>e:\MySQL\mytable.sql

例 3:將數據庫 mydb 的結構導出到 e:\MySQL\mydb_stru.sql 文件中。
復制代碼 代碼如下:c:\> mysqldump -h localhost -u root -p mydb --add-drop-table >e:\MySQL\mydb_stru.sql
備注:-h localhost 可以省略,其一般在虛擬主機上用。

3)只導出數據不導出數據結構

格式:

mysqldump -u [數據庫用戶名] -p -t [要備份的數據庫名稱]>[備份文件的保存路徑]

4)導出數據庫中的Events

格式:

mysqldump -u [數據庫用戶名] -p -E [數據庫用戶名]>[備份文件的保存路徑]

5)導出數據庫中的存儲過程和函數

格式:

mysqldump -u [數據庫用戶名] -p -R [數據庫用戶名]>[備份文件的保存路徑]

從外部文件導入數據庫中

1)使用"source"命令

首先進入"mysql"命令控制台,然後創建數據庫,然後使用該數據庫。最後執行下面操作。

mysql>source [備份文件的保存路徑]

2)使用"<"符號

首先進入"mysql"命令控制台,然後創建數據庫,然後退出 MySQL,進入 DOS 界面。最後執行下面操作。

mysql -u root –p < [備份文件的保存路徑]

常用MySQL語句補充:

1. 使用SHOW語句找出在服務器上當前存在什麼數據庫:
復制代碼 代碼如下:mysql> SHOW DATABASES;
2. 2、創建一個數據庫MYSQLDATA
復制代碼 代碼如下:mysql> CREATE DATABASE MYSQLDATA;
3. 選擇你所創建的數據庫
復制代碼 代碼如下:mysql> USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!)
4. 查看現在的數據庫中存在什麼表
復制代碼 代碼如下:mysql> SHOW TABLES;
5. 創建一個數據庫表
復制代碼 代碼如下:mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6. 顯示表的結構:
復制代碼 代碼如下:mysql> DESCRIBE MYTABLE;
7. 往表中加入記錄
復制代碼 代碼如下:mysql> insert into MYTABLE values ("hyq","M");
8. 用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)
復制代碼 代碼如下:mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9. 導入.sql文件命令(例如D:/mysql.sql)
復制代碼 代碼如下:mysql>use database;
mysql>source d:/mysql.sql;
10. 刪除表
復制代碼 代碼如下:mysql>drop TABLE MYTABLE;
11. 清空表
復制代碼 代碼如下:mysql>delete from MYTABLE;
12. 更新表中數據
復制代碼 代碼如下:mysql>update MYTABLE set sex="f" where name='hyq';

以下是在網絡看到的使用MySql的管理心得:

在windows中MySql以服務形式存在,在使用前應確保此服務已經啟動,未啟動可用net start mysql命令啟動。而Linux中啟動時可用"/etc/rc.d/init.d/mysqld start"命令,注意啟動者應具有管理員權限。

剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對於一些重要的應用我們應將安全性盡可能提高,在這裡應把匿名帳戶刪除、 root帳戶設置密碼,可用如下命令進行:

use mysql;
delete from User where User="";
update User set Password=PASSWORD('newpassword') where User='root';

如果要對用戶所用的登錄終端進行限制,可以更新User表中相應用戶的Host字段,在進行了以上更改後應重新啟動數據庫服務,此時登錄時可用如下類似命令:

mysql -uroot -p;
mysql -uroot -pnewpassword;
mysql mydb -uroot -p;
mysql mydb -uroot -pnewpassword;

上面命令參數是常用參數的一部分,詳細情況可參考文檔。此處的mydb是要登錄的數據庫的名稱。

在進行開發和實際應用中,用戶不應該只用root用戶進行連接數據庫,雖然使用root用戶進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技 術的提高。我們給一個應用中使用的用戶賦予最恰當的數據庫權限。如一個只進行數據插入的用戶不應賦予其刪除數據的權限。MySql的用戶管理是通過 User表來實現的,添加新用戶常用的方法有兩個,一是在User表插入相應的數據行,同時設置相應的權限;二是通過GRANT命令創建具有某種權限的用 戶。其中GRANT的常用用法如下:

grant all on mydb.* to NewUserName@HostName identified by "password" ;
grant usage on *.* to NewUserName@HostName identified by "password";
grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";
grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";

若要給此用戶賦予他在相應對象上的權限的管理能力,可在GRANT後面添加WITH GRANT OPTION選項。而對於用插入User表添加的用戶,Password字段應用PASSWORD 函數進行更新加密,以防不軌之人竊看密碼。對於那些已經不用的用戶應給予清除,權限過界的用戶應及時回收權限,回收權限可以通過更新User表相應字段, 也可以使用REVOKE操作。

下面給出本人從其它資料(www.cn-java.com)獲得的對常用權限的解釋:

全局管理權限:

FILE: 在MySQL服務器上讀寫文件。
PROCESS: 顯示或殺死屬於其它用戶的服務線程。
RELOAD: 重載訪問控制表,刷新日志等。
SHUTDOWN: 關閉MySQL服務。
數據庫/數據表/數據列權限:
ALTER: 修改已存在的數據表(例如增加/刪除列)和索引。
CREATE: 建立新的數據庫或數據表。
DELETE: 刪除表的記錄。
DROP: 刪除數據表或數據庫。
INDEX: 建立或刪除索引。
INSERT: 增加表的記錄。
SELECT: 顯示/搜索表的記錄。
UPDATE: 修改表中已存在的記錄。
特別的權限:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登錄–其它什麼也不允許做。

希望本文所述對大家MySQL數據庫設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved