Mysql常用命令詳解
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供張家港網(wǎng)站建設、張家港做網(wǎng)站、張家港網(wǎng)站設計、張家港網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、張家港企業(yè)網(wǎng)站模板建站服務,10年張家港做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
Mysql安裝目錄
數(shù)據(jù)庫目錄
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相關(guān)命令
/usr/bin(mysqladmin mysqldump等命令)
啟動腳本
/etc/init.d/mysql(啟動腳本文件mysql的目錄)
系統(tǒng)管理
連接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; #更新權(quán)限
quit; #退出
增加新用戶
格式:grant select on 數(shù)據(jù)庫.* to
用戶名@登錄主機 identified by '密碼'
舉例:
例 1:增加一個用戶 test1 密碼為
abc,讓他可以在任何主機上登錄,并對所有數(shù)據(jù)庫有
查詢、插入、修改、刪除的權(quán)限。首先用以 root 用戶連入
MySQL,然后鍵入以下命令:
mysqlgrant select,insert,update,delete on *.* to
root@localhost identified by 'mysql';
或者
grant all privileges on *.* to
root@localhost identified by 'mysql';
然后刷新權(quán)限設置。
flush privileges;
例
2:如果你不想 root 有密碼操作數(shù)據(jù)庫“mydb”里的數(shù)據(jù)表,可以再打一個命令將密碼消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
'';
刪除用戶
hadoop@ubuntu:~$ mysql
-u用戶名 -p密碼
mysqldelete from user where user='用戶名' and
host='localhost';
mysqlflush privileges;
//刪除用戶的數(shù)據(jù)庫
mysqldrop
database dbname;
數(shù)據(jù)庫操作
顯示所有的數(shù)據(jù)庫
mysql show databases;(注意:最后有個
s)
創(chuàng)建數(shù)據(jù)庫
mysql create database
test;
連接數(shù)據(jù)庫
mysql use
test;
查看當前使用的數(shù)據(jù)庫
mysql select
database();
當前數(shù)據(jù)庫包含的表信息
mysql
show tables; (注意:最后有個 s)
刪除數(shù)據(jù)庫
mysql drop database
test;
表操作
備注:操作之前使用“use
數(shù)據(jù)庫名”應連接某個數(shù)據(jù)庫。
建表
命令: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));
獲取表結(jié)構(gòu)
命令: desc 表名,或者show columns from
表名
例子:
mysql describe MyClass
mysql desc MyClass;
mysql
show columns from MyClass;
刪除表
命令:drop table 表名
例如:刪除表名為
MyClass 的表
mysql drop table MyClass;
插入數(shù)據(jù)
命令:insert into 表名 [( 字段名
1[,..字段名 n ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59);
查詢表中的數(shù)據(jù)
查詢所有行
mysql
select * from MyClass;
查詢前幾行數(shù)據(jù)
例如:查看表 MyClass 中前 2 行數(shù)據(jù)
mysql
select * from MyClass order by id limit 0,2;
或者
mysql select * from
MyClass limit 0,2;
刪除表中數(shù)據(jù)
命令:delete from 表名 where 表達式
例如:刪除表
MyClass 中編號為 1 的記錄
mysql delete from MyClass where id=1;
修改表中數(shù)據(jù)
命令: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;
更新字段內(nèi)容
命令:update 表名 set
字段名 = 新內(nèi)容
update 表名 set 字段名 = replace(字段名, '舊內(nèi)容', '新內(nèi)容');
例如:文章前面加入 4
個空格
update article set content=concat(' ', content);
數(shù)據(jù)庫導入導出
從數(shù)據(jù)庫導出數(shù)據(jù)庫文件
使用“mysqldump”命令
首先進入 DOS
界面,然后進行下面操作。
1)導出所有數(shù)據(jù)庫
格式:mysqldump -u [數(shù)據(jù)庫用戶名] -p
-A[備份文件的保存路徑]
2)導出數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)
格式:mysqldump -u [數(shù)據(jù)庫用戶名] -p
[要備份的數(shù)據(jù)庫名稱][備份文件的保存路徑]
舉例:
例 1:將數(shù)據(jù)庫 mydb 導出到 e:\MySQL\mydb.sql
文件中。
打開開始-運行-輸入“cmd”,進入命令行模式。
c:\ mysqldump -h localhost -u
root -p mydb e:\MySQL\mydb.sql
然后輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。
例
2:將數(shù)據(jù)庫 mydb 中的 mytable 導出到 e:\MySQL\mytable.sql 文件中。
c:\ mysqldump -h
localhost -u root -p mydb mytablee:\MySQL\mytable.sql
例 3:將數(shù)據(jù)庫 mydb
的結(jié)構(gòu)導出到 e:\MySQL\mydb_stru.sql 文件中。
c:\ mysqldump -h localhost -u root -p
mydb --add-drop-table e:\MySQL\mydb_stru.sql
備注:-h localhost
可以省略,其一般在虛擬主機上用。
3)只導出數(shù)據(jù)不導出數(shù)據(jù)結(jié)構(gòu)
格式:
mysqldump -u [數(shù)據(jù)庫用戶名] -p -t
[要備份的數(shù)據(jù)庫名稱][備份文件的保存路徑]
4)導出數(shù)據(jù)庫中的Events
格式:mysqldump -u [數(shù)據(jù)庫用戶名] -p
-E [數(shù)據(jù)庫用戶名][備份文件的保存路徑]
5)導出數(shù)據(jù)庫中的存儲過程和函數(shù)
格式:mysqldump -u [數(shù)據(jù)庫用戶名]
-p -R [數(shù)據(jù)庫用戶名][備份文件的保存路徑]
從外部文件導入數(shù)據(jù)庫中
1)使用“source”命令
首先進入“mysql”命令控制臺,然后創(chuàng)建數(shù)據(jù)庫,然后使用該數(shù)據(jù)庫。最后執(zhí)行下面操作。
mysqlsource
[備份文件的保存路徑]
2)使用“”符號
首先進入“mysql”命令控制臺,然后創(chuàng)建數(shù)據(jù)庫,然后退出 MySQL,進入 DOS
界面。最后執(zhí)行下面操作。
mysql -u root –p [備份文件的保存路徑]
方法一、使用source調(diào)用寫好的sql文件,例如:
mysql source d:\db\load.sql
方法二、記事本打開sql文件,全選復制之后,粘貼到命令窗口里面(點鼠標右鍵粘貼)
看他們網(wǎng)上的,寫得都是千篇一律,同時,好多也寫得不是很好,下面是我自己總結(jié)的有關(guān)mysql的使用細節(jié),也是我在學習過程中的一些記錄吧,希望對你有點幫助,后面有關(guān)存儲過程等相關(guān)操作還沒有總結(jié)好,下次總結(jié)好了再發(fā)給你吧,呵呵~~~~~
MySql學習筆記
MySql概述:MySql是一個種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),所謂關(guān)聯(lián)數(shù)據(jù)庫就是將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大的倉庫中。這樣就增加了速度與提高了靈活性。并且MySql軟件是一個開放源碼軟件。
注意,MySql所支持的TimeStamp的最大范圍的問題,在32位機器上,支持的取值范圍是年份最好不要超過2030年,然后如果在64位的機器上,年份可以達到2106年,而對于date、與datetime這兩種類型,則沒有關(guān)系,都可以表示到9999-12-31,所以這一點得注意下;還有,在安裝MySql的時候,我們一般都選擇Typical(典型安裝)就可以了,當然,如果還有其它用途的話,那最好選擇Complete(完全安裝);在安裝過程中,一般的還會讓你進行服務器類型的選擇,分別有三種服務器類型的選擇,(Developer(開發(fā)機)、Server Machine(服務器)、Dedicated MySql Server Machine(專用MYSQL服務器)),選擇哪種類型的服務器,只會對配置向?qū)?nèi)存等有影響,不然其它方面是沒有什么影響的;所以,我們?nèi)绻情_發(fā)者,選擇開發(fā)機就可以啦;然后接下來,還會有數(shù)據(jù)庫使用情況對話框的選擇,我們只要按照默認就可以啦;
連接與斷開服務器:
連接:在windows命令提示符下輸入類似如下命令集:mysql –h host –u user –p
例如,我在用的時候輸入的是:mysql –h localhost –u root –p
然后會提示要你輸入用戶密碼,這個時候,如果你有密碼的話,就輸入密碼敲回車,如果沒有密碼,直接敲回車,就可以進入到數(shù)據(jù)庫客戶端;連接遠程主機上的mysql,可以用下面的命令:mysql –h 159.0.45.1 –u root –p 123
斷開服務器:在進入客戶端后,你可以直接輸入quit然后回車就可以了;
下面就數(shù)據(jù)庫相關(guān)命令進行相關(guān)說明
你可以輸入以下命令對數(shù)據(jù)庫表格或者數(shù)據(jù)庫進行相關(guān)操作,在這里就省略了,然后直接進行文字說明了;
Select version(),current_date;//從服務器得到當前mysql的版本號與當前日期
Select user(); //得到當前數(shù)據(jù)庫的所有用戶
Use databasename; 進入到指定的數(shù)據(jù)庫當中,然后就可以操作這個數(shù)據(jù)庫當中的表格了
Show databases; //查詢目前數(shù)據(jù)庫中所有的數(shù)據(jù)庫,并且顯示出來;
Create batabase databasename;創(chuàng)建數(shù)據(jù)庫,例如:create database manager;
Show tables; //查看當前數(shù)據(jù)庫中的所有表格;
Create table tablename(colums);創(chuàng)建表,并且給表指定相關(guān)列,例如:create table pet(name varchar(20),owner varchar(20),species varchar(20),sex char(1),birth date,death date);
Describe tablename;將表當中的所有信息詳細顯示出來,例如:describe pet;
可以用命令一次插入多條記錄,例如:
Insert into pet values(‘Puffball’,’Diane’,’hamster’,’f’,’1993-12-3’,null),( ‘Puffball’,’Diane’,’hamster’,’f’,’1993-12-3’,now());
Select * from pet; 從pet表當中查詢出所有的記錄,顯示出來;
Delete from pet where id=1;刪除ID為1的那一條記錄;
Update pet set birth=’2001-1-3’ where name=’Bowser’;更新name為Bowser的記錄當中的birth字段的值;
Select distinct owner from pet;從pet表中選擇出owner字段的值唯一的行,如果有多行記錄這個字段的值相同,則只顯示最后一次出現(xiàn)這一值的一行記錄;
有關(guān)日期計算:
Select name,birth,curdate(),(year(curdate())-year(birth)) as age from pet;
此處,year()函數(shù)用于提取對應字段的年份,當然類似的還有month(),day()等;
在mysql當中,sql語句可以使用like查詢,可以用”_”配任何單個字符,用”%”配任意數(shù)目字符,并且SQL模式默認是忽略大小寫,例如:select * from pet where name like ‘%fy’;
當然也可以用正則表達式模式進行配。
同時在sql當中,也要注意分組函數(shù)、排序函數(shù)、統(tǒng)計函數(shù)等相關(guān)用法,在這里只列舉一二;
Select species,count(*) from pet group by speceis;
Select * from pet order by birth desc;
查詢最大值的相關(guān)操作:
Select max(age) from pet;
取前多少項記錄,這個主要用于分頁查詢操作當中,
Select * from pet order by birth desc limit 3;取前三條記錄,
Select * from pet order by birth desc limit 0,3;這個可以用于分頁查詢,limit后面的第一個參數(shù),是起始位置,第二個參數(shù)是取記錄條數(shù);
有關(guān)創(chuàng)建表格自增長字段的寫法:
Create table person(id int(4) not null auto_increment,name char(20) not null,primary key (id));
修改表操作:
向表中增加字段:注意,在這個地方,如果是增加多個字段的時候,就要用括號括起來,不然會有問題,如果是單個字段的話,不用括號也沒事;
Alter table test add(address varchar(50) not null default ‘xm’,email varchar(20) not null);
將表中某個字段的名字修改或者修改其對應的相關(guān)屬性的時候,要用change對其進行操作;
Alter table test change email email varchar(20) not null default ‘zz’;//不修改字段名
Alter table test change email Email varchar(30) not null;//修改字段名稱
刪除表中字段:
Alter table test drop email;//刪除單個字段
Alter table test drop address,drop email;//刪除多列
可以用Drop來取消主鍵與外鍵等,例如:
Alter table test drop foreign key fk_symbol;
刪除索引:
Drop index index_name on table_name;
例如:drop index t on test;
向表中插入記錄:注意,當插入表中的記錄并不是所有的字段的時候,應該要在前面列出字段名稱才行,不然會報錯;
Insert into test(name) values(‘ltx’);
Insert into test values(1,’ltx’);
也可以向表中同時插入多列值,如:
Insert into test(name) values(‘ltx’),(‘hhy’),(‘xf’);
刪除表中記錄:
Delete from test;//刪除表中所有記錄;
Delete from test where id=1;//刪除表中特定條件下的記錄;
當要從一個表或者多個表當中查詢出一些字段然后把這些字段又要插入到另一個表當中的時候,可以用insert …..select語法;
Insert into testt(name) (select name from test where id=4);
從文件中讀取行插入數(shù)據(jù)表中,可以用Load data infile語句;
Load data infile ‘test.txt’ into table test;
可以用Describe語法進行獲取有關(guān)列的信息;
Describe test;//可以查看test表的所有信息,包括對應列字段的數(shù)據(jù)類型等;
MySql事務處理相關(guān)語法;
開始一項新的事務:start transaction或者begin transaction
提交事務:commit
事務回滾:rollback
set autocommit true|false 語句可以禁用或啟用默認的autocommit模式,只可用于當前連接;
例子:
Start transaction;
Update person set name=’LJB’ where id=1;
Commit | rollback;
數(shù)據(jù)庫管理語句
修改用戶密碼:以root用戶為例,則可以寫成下面的;mysql –u root –p 舊密碼 –password 新密碼
Mysql –u root –password 123;//將root用戶的密碼修改成123,由于root用戶開始的時候,是沒有密碼的,所以-p舊密碼就省略了;
例如修改一個有密碼的用戶密碼:mysql –u ltx –p 123 –password 456;
增加一個用戶test1,密碼為abc,讓他可以在任何時候主機上登陸,并對所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。
Grant select,insert,update,delete on *.* to test1@”%” identified by ‘a(chǎn)bc’;
增加一個test2用戶,密碼為abc,讓他只可以在localhost上登陸,并且可以對數(shù)據(jù)庫進行查詢、插入、修改、刪除操作;
Grant select,insert,update,delete on mydb.* to test2@localhost identified by ‘a(chǎn)bc’;
如果不想讓用戶test2有密碼,可以再輸入以下命令消掉密碼:
Grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;
備份數(shù)據(jù)庫常用命令:mysqldump –h host –u username –p dbname保存路徑與文件名
然后回車后,會讓你輸入用戶密碼,輸入密碼后,再回車就OK啦;
Mysqldump –hlocalhost –uroot –p test E:\db\test.sql
這一命令具體解釋下:
這個命令就是備份test數(shù)據(jù)庫,并且將備份的內(nèi)容存儲為test.sql文件,并且保存在E:\db下面;
命令當中-p 前面的test是數(shù)據(jù)庫名,然后在數(shù)據(jù)庫名后面要跟上一個””,然后接下來,就是寫要保存的位置與保存文件的文件名;
將備份好的數(shù)據(jù)庫導入到數(shù)據(jù)庫當中去:也就是運行.sql文件將數(shù)據(jù)庫導入數(shù)據(jù)庫當中去-
首先你得創(chuàng)建數(shù)據(jù)庫,然后運行如下命令:mysql –hlocalhost –uroot –p linuxE:\db\test.sql然后回車,再輸入密碼就可以啦;
解釋下上面的命令:linux是就要導入的數(shù)據(jù)庫名字,然后后面要緊跟著“”符號,然后后面就是要導入的數(shù)據(jù)庫文件;
將數(shù)據(jù)庫導出保存成XML文件、從XML文件導入數(shù)據(jù)到數(shù)據(jù)庫:
導出表中數(shù)據(jù):mysql –X –h hostName –u userName –p Pwd –e “use DatabaseName;sql;” xml文件名
或者用另外一種方式也行:mysqldump –xml –h hostName –u userName –p pwd dbName tableName //這一種只用于顯示在當前的mysql客戶端,不保存到文件當中;
相關(guān)說明:-X代表的是文件的格式是XML,然后-e一寫不能掉,還有就是要用雙引號將要操作的語句括起來;單引號不行;
例如:mysql –X –hlocalhost –uroot –p –e “use test;select * from pet;”E:\db\out.xml
從XML文件導入數(shù)據(jù)到數(shù)據(jù)庫:
Insert into tableName values(1,load_file(‘filepath’));
例如:insert into pet values(1,load_file(“E:\db\out.xml”));
查看數(shù)據(jù)庫狀態(tài)與查詢進程:
Show status;//查看狀態(tài)
Show processlist;//查看進程
更改用戶名,用以下命令:
Update set user=”新名字” where user=”舊用戶名”;
給數(shù)據(jù)庫用戶設置管理員權(quán)限:
Mysqladmin –h host –u username –p pwd;
以root用戶為例;
Mysqladmin –h localhost –u root –p 123;
存儲過程與函數(shù)
存儲程序和函數(shù)分別是用create procedure和create function語句,一個程序要么是一個程序要么是一個函數(shù),使用call語句來調(diào)用程序,并且程序只能用輸出變量傳回值;
要想在MySql5.1中創(chuàng)建子程序,必須具有create routine權(quán)限,并且alter routine和execute權(quán)限被自動授予它的創(chuàng)建者;
創(chuàng)建存儲過程:
首先聲明分隔符,所謂分隔符是指你通知mysql客戶端你已經(jīng)輸入一個sql語句的字符或字符串符號,在這里我們就以“//”為分隔符;
Delimiter 分隔符\
如:delimiter //
再創(chuàng)建存儲過程:
Create procedure 存儲過程名 ( )
聲明存儲過程開始:
begin
然后開始寫存儲過程體:
Select * from pet;
結(jié)束存儲過程:
End;//
剛剛的例子全部寫出來,完整的代碼就是:
Delimiter //
Create procedure spt () //注意,這個地方,存儲過程名與括號之間要有個空格
Begin
Select * from pet;
End;//到這里,整個存儲過程就算寫完啦
執(zhí)行存儲過程:
Call 存儲過程名 ();//
如,我們執(zhí)行剛剛創(chuàng)建的存儲過程,就是:
Call spt ();//
需要說明的是存儲過程名后面一定要加個空格,而后面那個括號,則是用于傳送參數(shù)的參數(shù)列表;另外,我們創(chuàng)建存儲過程完成后,也只是創(chuàng)建了,但是只有調(diào)用call 存儲過程名 ();//后才算執(zhí)行完畢,才能看到存儲過程的結(jié)果;
網(wǎng)站欄目:MySQL中怎么語句文檔 mysql文件怎么運行
網(wǎng)址分享:http://muchs.cn/article6/doeijog.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、軟件開發(fā)、域名注冊、自適應網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)