mysql的一些簡單命令

來源:互聯網
上載者:User

mysql操作命令:
運行cmd進入dos環境
mysql --help查詢基本情況,查詢mysql提供的選擇項目表
串連:mysql -h *** -u *** -p 然後輸入對應密碼即可 quit推出命令
查詢版本和時間:select version(),current_time,current_date;
mysql表示的是時鐘時間而不是cpu或機器時間,這些值並不精確
mysql不區分大小寫,且它可以用作一個簡單的計算機
如:select sin(pi()/4),(4+1)*5;
一行可以輸入多個語句,中間以分號隔開
select version();select now();
對於較長的命令可以輸入到多個行中,mysql通過尋找終止分號而不是輸入行的結束來決定語句在哪裡結束的,如:
select
user(),
current_time;
mysql> 會變成->,表示正在等待剩餘的部分,如果此時發現輸入有誤可以輸入“\c”結束,它將切換回mysql>如:
select
uer(),
now()\c
提示符 含義
mysql> 準備好接收新命令
-> 等待多行命令的下一行
'> 等待下一行,等待以單引號開始的字串的結束
"> 等待下一行,等待以雙引號開始的識別符的結束
/*> 等待下一行,等待以/*開始的注釋的結束
如:
mysql>select * from table where name='tom;
'>
此時由於tom後面少了單引號的結束符而出現此狀況,最簡單的方法就是結束它,但不能只輸入\c,因為mysql作為正在收集的字串的一部分來解釋它,相反應輸入關閉引號字元,然後在輸入\c,即'\c,對於雙引號也是這樣

使用資料庫
show databases;查看伺服器上當前的資料庫
mysql和test是必須有的,mysql描述使用者存取權限,test資料庫經常作為使用者實驗的工作區
use 資料庫名;可切換至對應的資料庫,use命令和quit類似,無需以分號結束,但必須保持命令在單行上
show tables;可以查看當前資料庫中的表
管理員授權:grant all on dbname.* to 'username'@'hostname';
建立資料庫 create database dbname;unix環境下資料庫名稱是區分大小寫
然後use dbname 切換至此資料庫
也可以在串連資料庫時串連到此資料庫,
如:mysql -h hostname -u username -p dbname 然後輸入密碼
建立寵物表pet:
create table pet(name varchar(20),owner varchar(20),
species varchar(20),sex char(1),birth date,death date);
describe tablename;可以得到資料表的基本資料,忘記表的資訊後可以使用該語句獲得表的資訊
建立表後可以通過load data和insert語句來填充表
你可以建立一個文字檔“pet.txt”,每行包含一個記錄,用定位器(tab)把值分開,並且以CREATE TABLE語句中列出的列次序給出。對於丟失的值(例如未知的性別,或仍然活著的動物的死亡日期),你可以使用NULL值。為了在你的文字檔中表示這些內容,使用\N(反斜線,字母N),
然後通過LOAD DATA LOCAL INFILE ''C:/Documents and Settings/Administrator/案頭/pet.txt' INTO TABLE pet;匯入
請注意如果用Windows中的編輯器(使用\r\n做為行的結束符)建立檔案,應使用:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
-> LINES TERMINATED BY '\r\n';
(在運行OS X的Apple機上,應使用行結束符'\r'。)
如果你願意,你能明確地在LOAD DATA語句中指出列值的分隔字元和行尾標記,但是預設標記是定位器和分行符號。這對讀入檔案“pet.txt”的語句已經足夠。
也可以通過insert語句添加一條新記錄:
insert into pet values('none','Dinae','cat','f','2009-05-28',null);
選擇資料
select * from pet;
修正資料:
方法一:先刪除 delete from pet;,然後修改pet.txt檔案,通過load data重新匯入
方法二:update pet set birth='2011-08-31' where name='liang';
update pet set sex='m'where name in ('jia','hai','fan');
update pet set sex='m'where name='zhang 'or name='yong';
尋找合格資料
select * from pet where birth>'2005-10-25';
AND和OR可以混用,但AND比OR具有更高的優先順序,如果你使用兩個操作符,使用圓括弧指明如何對條件進行分組是一個好主意:
mysql> select * from pet where(species='dog' and sex='m')or (species='bird' and sex='f');
選擇特殊的列:
SELECT owner FROM pet;結果中有些可能出現了多次
SELECT distinct owner FROM pet;輸出減到最少,增加關鍵字DISTINCT檢索出每個唯一的輸出記錄
SELECT name, birth FROM pet ORDER BY birth;按出生日期排序,預設是升序
SELECT name, birth FROM pet ORDER BY birth DESC;按降序排列
可以對多個列進行排序,並且可以按不同的方向對不同的列進行排序。例如,按升序對動物的種類進行排序,然後按降序根據生日對各動物種類進行排序(最年輕的動物在最前面),
如:select name,species,birth from pet order by species,birth desc;
===================================
日期計算:
select name,birth,curdate(),(year(curdate())-year(birth));
要想確定每個寵物有多大,可以計算當前日期的年和出生日期之間的差。如果當前日期的日曆年度比出生日期早,則減去一年。以下查詢顯示了每個寵物的出生日期、當前日期和年齡數值的年數字。
mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
-> AS age
-> FROM pet order by name;
+----------+------------+------------+------+
| name | birth | CURDATE() | age |
+----------+------------+------------+------+
| Fluffy | 1993-02-04 | 2003-08-19 | 10 |
| Claws | 1994-03-17 | 2003-08-19 | 9 |
| Buffy | 1989-05-13 | 2003-08-19 | 14 |
| Fang | 1990-08-27 | 2003-08-19 | 12 |
| Bowser | 1989-08-31 | 2003-08-19 | 13 |
| Chirpy | 1998-09-11 | 2003-08-19 | 4 |
| Whistler | 1997-12-09 | 2003-08-19 | 5 |
| Slim | 1996-04-29 | 2003-08-19 | 7 |
| Puffball | 1999-03-30 | 2003-08-19 | 4 |
+----------+------------+------------+------+

此處,YEAR()提取日期的年部分,類似函數還有month(),dayofmonth(),RIGHT()提取日期的MM-DD (日曆年度)部分的最右面5個字元。比較MM-DD值的運算式部分的值一般為1或0,如果CURDATE()的年比birth的年早,則年份應減去1。整個運算式有些難懂,使用alias (age)來使輸出的列標記更有意義。
查詢已死亡動物的年齡:
mysql> select name,birth,death,(year(death)-year(birth))-(right(birth,5)>right(death,5)) as age from pet where death>'0000-00-00' order by age;
請注意在MySQL中,0或 NULL意味著假而其它值意味著真。布爾運算的預設真值是1。
對NULL的特殊處理即是在前面的章節中,為了決定哪個動物不再是活著的,使用death IS NOT NULL而不使用death != NULL的原因。
尋找下月過生日的動物(前提是未死亡):
SELECT name, birth, MONTH(birth) FROM pet;
找出下個月生日的動物也是容易的。假定當前月是4月,那麼月值是4,你可以找在5月出生的動物 (5月),方法是:
如果當前月份是12月,就有點複雜了。你不能只把1加到月份數(12)上並尋找在13月出生的動物,因為沒有這樣的月份。相反,你應尋找在1月出生的動物(1月) 。
你甚至可以編寫查詢,不管當前月份是什麼它都能工作。採用這種方法不必在查詢中使用一個特定的月份,DATE_ADD( )允許在一個給定的日期上加上時間間隔。如果在NOW( )值上加上一個月,然後用MONTH()提取月份,結果產生生日所在月份:
mysql> SELECT name, birth FROM pet
-> WHERE MONTH(birth) = MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH));
完成該任務的另一個方法是加1以得出當前月份的下一個月(在使用模數函數(MOD)後,如果月份當前值是12,則“復原”到值0):
mysql> SELECT name, birth FROM pet
-> WHERE MONTH(birth) = MOD(MONTH(CURDATE()), 12) + 1;
------------------------------------------------------------
null值操作
null值意味著沒有值或未知值
只能用** is null 或者** is not null,而不是**=null 或**!=null,在mysql中0或null意味著假而其他值意味著真,布爾運算的預設值為1.
在group by中兩個null視為相同
執行order by時,如果運行order by * asc,則null值出現在最前面,若desc則排在最後面
--------------------------------------
模式比對
SQL模式比對允許你使用“_”匹配任何單個字元,而“%”匹配任意數目字元(包括零字元)。在 MySQL中,SQL的模式預設是忽略大小寫。下面給出一些例子。注意使用SQL模式時,不能使用=或!=;而應使用LIKE或NOT LIKE比較操作符。

Linux下重啟MySQL的正確方法:

1、通過rpm包安裝的MySQL

    service mysqld restart

2、從源碼包安裝的MySQL

    // linux關閉MySQL的命令

    $mysql_dir/bin/mysqladmin -uroot -p shutdown

    // linux啟動MySQL的命令

    $mysql_dir/bin/mysqld_safe &

其中mysql_dir為MySQL的安裝目錄,mysqladmin和mysqld_safe位於MySQL安裝目錄的bin目錄下,很容易找到的。

3、以上方法都無效的時候,可以通過強行命令:“killall mysql”來關閉MySQL,但是不建議用這樣的方式,因為這種野蠻的方法會強行終止MySQL資料庫服務,有可能導致表損壞

步驟或方法:RedHat Linux (Fedora Core/Cent OS)

1.啟動:/etc/init.d/mysqld start

2.停止:/etc/init.d/mysqld stop

3.重啟:/etc/init.d/mysqld restart

Debian / Ubuntu Linux

1.啟動:/etc/init.d/mysql start

2.停止:/etc/init.d/mysql stop

3.重啟:/etc/init.d/mysql restart

Windows

1.點擊“開始”->“運行”(快速鍵Win+R)。

2.啟動:輸入 net stop mysql

3.停止:輸入 net start mysql

提示* Redhat Linux 也支援service command,啟動:# service mysqld start 停止:# service mysqld stop 重啟:# service mysqld restart

* Windows下不能直接重啟(restart),只能先停止,再啟動。

MySQL啟動,停止,重啟方法:

一、啟動方式

1、使用 service 啟動:service mysqld start

2、使用 mysqld 指令碼啟動:/etc/inint.d/mysqld start

3、使用 safe_mysqld 啟動:safe_mysqld&

二、停止

1、使用 service 啟動:service mysqld stop

2、使用 mysqld 指令碼啟動:/etc/inint.d/mysqld stop

3、mysqladmin shutdown

三、重啟

1、使用 service 啟動:service mysqld restart

2、使用 mysqld 指令碼啟動:/etc/inint.d/mysqld restart

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.