MySQL基本命令(簡潔版)

數據庫testdb 表test_table

一.mysql的常用命令

1.create database name; 創建數據庫 (create 內部命令)
mysql>create database testdb;
2.use databasename; 選擇數據庫 (use內部命令)
mysql>use testdb;
3.drop database name 直接刪除數據庫,不提醒 (drop內部命令)
mysql>drop database testdb;
4.drop table name 直接刪除表
mysql>drop table test_table;
5.create table name;創建表
mysql>create table test_table;
前提是先mysql>use testdb;
6.show databases顯示所有數據庫 
mysql>show databases;
7.show tables; 顯示數據庫中的表 (show內部命令)
mysql>show tables;
提是先mysql>use testdb;
8.describe tablename; 顯示錶的詳細描述 
mysql>describe test_table;
9.select version(),current_date; 顯示當前mysql版本和當前日期
mysql>select version(),current_date;
mysql>select version(),
->current_date;
select 內部命令?
10.mysql>flush privileges 刷新數據庫 
11.mysql實現修改用戶密碼:
11.1 update 修改
shell>mysql -u root -p 
mysql> update mysql.user set password=PASSWORD(’新密碼’) where User='root'; 
mysql> flush privileges; 
mysql> quit 
11.2 mysqladmin修改用戶密碼
shell>mysqladmin -u root password new_password 
***11.3 自己測試未通過
shell>mysql -u root -p
mysql>SET PASSWORD FOR root=PASSWORD("root");
12.創建帳號
mysql> grant all(delete,updatae,create,drop,insert) privileges on *.* to 用戶@localhost identified by '密碼';
13.重命名錶: 
mysql > alter table t1 rename t2; 把表t1重命名爲t2
14.備份數據庫
14.1 導出整個數據庫
mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
mysqldump -u root -p testdb >d:\testdb.sql
14.2 導出一個表
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
mysqldump -u root -p testdb test_table>d:\test_table.sql
14.3 導出一個數據庫結構
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql(-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table)
mysqldump mysqladmin外部命令
14.4 導入數據庫
用source 命令
進入mysql數據庫控制檯,先建立數據庫,use數據庫
mysql -u root -p
mysql>create testdb;
mysql>use 數據庫
mydql>source d:\testdb.sql;


14.5 導入表
進入數據庫,執行導入操作
mysql>use testdb;
mysql>source d:\test_table.sql; 
15.將表中記錄清空:
mysql>delete from test_table;
16.顯示錶中的記錄:
mysql>select * from test_table;
17.一個建庫和建表以及插入數據的實例
drop database if exists school; //如果存在SCHOOL則刪除
create database school; //建立庫SCHOOL
use school; //打開庫SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表結束
//以下爲插入字段
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');
注:在建表中
(1) 將ID設爲長度爲3的數字字段:int(3),並讓它每個記錄自動加一: auto_increment,
並不能爲空:not null,而且讓它成爲主字段primary key
(2) 將NAME設爲長度爲10的字符字段
(3) 將ADDRESS設爲長度50的字符字段,而且缺省值爲深圳。varchar和char有什麼區別
呢,只有等以後的文章再說了。 
(4) 將YEAR設爲日期字段。
如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。 你可以將以上命令
原樣寫入一個文本文件中假設爲school.sql,然後複製到c:下,並在DOS狀態進入目錄
mysqlin,然後鍵入以下命令:
mysql -uroot -p密碼 < c:school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你
只要將//的註釋去掉即可使用)。


將文本數據轉到數據庫中
文本數據應符合的格式:字段數據之間用tab鍵隔開,null值用來代替。例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
數據傳入命令load data local infile "文件名" into table 表名;
注意:你最好將文件複製到mysqlin目錄下,並且要先用use命令選表所在的庫。
*18.revoke all on database from user 移除user用戶在database數據庫上的所有權限 (自己測試未通過)
19.連接mysql。
格式: mysql -h主機地址 -u用戶名 -p用戶密碼
20.登錄數據庫
mysql-uroot-p;
mysql-uroot-pnewpassword;
mysqlmydb-uroot-p;
mysql mydb -uroot -pnewpassword;
mydb數據庫名
21.剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對於一些重要的應用我們應將安全性儘可能提高,?在這裏應把匿名帳戶刪除、root帳戶


設置密碼,可用如下命令進行:
mysql>use mysql;
mysql>delete from User where User="";
mysql>update User set Password=PASSWORD('newpassword') where User='root';
22.新增用戶
格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by "密碼" 
例1、增加一個用戶test1密碼爲abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MySQL,然後鍵入以下命令: 
mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一臺電腦上登錄你的MySQL數據庫並對你的數據可以爲所欲爲了,解決辦法見例


2。 
例2、增加一個用戶test2密碼爲abc,讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MySQL數據庫所在的那臺


主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,只能通過MySQL主機上的web頁來訪問。 
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密碼,可以再打一個命令將密碼消掉。 
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
下面我們來看看MySQL中有關數據庫方面的操作。注意:你必須首先登錄到MySQL中,以下操作都是在MySQL的提示符下進行的,而且每個命令以分號結束。?
在進行開發和實際應用中,用戶不應該只用root用戶進行連接數據庫,雖然使用root用戶進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技術的提高。我們給一


個應用中使用的用戶賦予最恰當的數據庫權限。如一個只進行數據插入的用戶不應賦予其刪除數據的權限。MySql的用戶管理是通過User表來實現的,添加新用戶常用的方法有兩個


,一是在User表插入相應的數據行,同時設置相應的權限;二是通過GRANT命令創建具有某種權限的用戶。其中GRANT的常用用法如下:
mysql>grant all on mydb.* to NewUserName@HostName identified by "password";
mysql>grant usage on *.* to NewUserName@HostName identified by "password";
mysql>grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";
mysql>grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";
23.對常用權限的解釋:
23.1 全局管理權限: 
FILE:在MySQL服務器上讀寫文件。 
PROCESS:顯示或殺死屬於其它用戶的服務線程。 
RELOAD:重載訪問控制表,刷新日誌等。 
SHUTDOWN:關閉MySQL服務。
23.2 數據庫/數據表/數據列權限: 
Alter:修改已存在的數據表(例如增加/刪除列)和索引。 
Create:建立新的數據庫或數據表。 
Delete:刪除表的記錄。 
Drop:刪除數據表或數據庫。 
INDEX:建立或刪除索引。 
Insert:增加表的記錄。 
Select:顯示/搜索表的記錄。 
Update:修改表中已存在的記錄。
23.3 特別的權限: 
ALL:允許做任何事(和root一樣)。 
USAGE:只允許登錄--其它什麼也不允許做。


最後給出在RedHat9.0下的MySql操作演示:
選用數據庫的root用戶登錄
[weiwen@weiwenlinux]$mysql -uroot -p
Enterpassword:MyPassword
mysql>create database mydb;
QueryOK,1rowaffected(0.02sec)
mysql>use mydb;
Databasechanged
mysql>create table TestTable(Idintaut_increment primary key,
UserNamevarchar(16) not null,
Address varchar(255));
QueryOK,0rowsaffected(0.02sec)
mysql>grant all on mydb.* to test@localhost identified by "test";
QueryOK,0rowsaffected(0.01sec)
mysql>quit
Bye
[weiwen@weiwenlinux]$mysqlmydb -utest -ptest
其中test.sql是用vi編輯好的SQL腳本,其內容爲:
Insert into TestTable(UserName,Address) values('Tom','shanghai');
Insert into TestTable(UserName,Address) values('John','beijing');
select * from TestTable;
運行已經編輯好的SQL腳本可以用source filename或.filename。
以上只是對新手的簡單練習,要成爲一個數據庫好手,當以孜孜不倦地追求知識,不斷地思考、嘗試、再思考。
24.MySql常用命令總結 
24.1 使用SHOW語句找出在服務器上當前存在什麼數據庫: 
mysql>SHOW DATABASES; 
24.2 創建一個數據庫MYSQLDATA 
mysql>Create DATABASE MYSQLDATA; 
24.3 選擇你所創建的數據庫 
mysql>USE MYSQLDATA;(按回車鍵出現Databasechanged時說明操作成功!) 
24.4 查看現在的數據庫中存在什麼表 
mysql>SHOW TABLES; 
24.5 創建一個數據庫表 
mysql>Create TABLEMYTABLE(name VARCHAR(20),sex CHAR(1)); 
24.6 顯示錶的結構: 
mysql>DESCRIBE MYTABLE; 
24.7 往表中加入記錄 
mysql>insert into MYTABLE values("hyq","M"); 
24.8 用文本方式將數據裝入數據庫表中(例如D:/mysql.txt) 
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE; 
24.9 導入.sql文件命令(例如D:/mysql.sql) 
mysql>use database; 
mysql>source d:/mysql.sql; 
24.10 刪除表 
mysql>drop TABLE MYTABLE; 
24.11 清空表 
mysql>delete from MYTABLE; 
24.12 更新表中數據 
mysql>update MYTABLE set sex="f" where name='hyq'; 
25.啓動mysql
25.1安裝刪除mysql服務,系統盤下windows文件夾下my.ini文件,設置mysql的路徑等功能
my.ini文件配置如下:
[mysqld]
basedir=D:/Program Files/mysql
#bind-address=ip
datadir=D:/Program Files/mysql/data
#language=D:/Program Files/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
set-variable?= max_connections=1500
skip-locking
#skip-networking
set-variable?= key_buffer=384M
set-variable?= max_allowed_packet=1M
set-variable?= table_cache=512
set-variable?= sort_buffer=2M
set-variable?= record_buffer=2M
set-variable?= thread_cache=8
# Try number of CPU's*2 for thread_concurrency
set-variable?= thread_concurrency=8
set-variable?= myisam_sort_buffer_size=64M
#set-variable?= connect_timeout=5
#set-variable?= wait_timeout=5
server-id?= 1
[isamchk]
set-variable?= key_buffer=128M
set-variable?= sort_buffer=128M
set-variable?= read_buffer=2M
set-variable?= write_buffer=2M




[myisamchk]
set-variable?= key_buffer=128M
set-variable?= sort_buffer=128M
set-variable?= read_buffer=2M
set-variable?= write_buffer=2M
[WinMySQLadmin]
Server=D:/Program Files/mysql/bin/mysqld-nt.exe
安裝mysql服務命令,進入mysql安裝目錄bin下:
mysqld-nt -install
刪除mysql服務
mysqld-nt -remove
25.2 啓動停止mysql
啓動mysql
進入mysql安裝目錄bin下:
net start mysql
停止mysql
net stop mysql
26. 給表改名: 
mysql>RENAME TABLE ztemp TO ztemp4;
27. 修改字段屬性: 
mysql>ALTER TABLE bbabase CHANGE news_id id VARCHAR(5) NOT NULL;
28. 在表中的content後增加一字段: 
mysql>ALTER TABLE bbabase ADD leave_time DATETIME NOT NULL AFTER content;
29. SHOW STATUS命令獲得一份服務器運行與統計的報告,包括打開連接的次數,激活查詢次數,服務器正常運行時間等等。
mysql> SHOW STATUS;
+------------------+-------+
| Variable_name| Value |
+------------------+-------+
| Aborted_clients| 0|
| Aborted_connects | 0|
...
| Uptime| 851|
+------------------+-------+
156 rows in set (0.16 sec)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章