MySQL學習--使用客戶端程序


在windows下載運行中輸入cmd,然后輸入以下命令進行登陸:

mysql -h localhost -p –urollen

其中-h localhost表示是運行在本機的MySQL服務器,-p選項用於告知MySQL要提示輸入密碼。-urollen表示使用用戶rollen進行登陸。然后根據提示輸入密碼就可以進入了,界面如下:

image

如果我們想為mysql的cookbook數據庫創建一個用戶的話,可以使用下面的命令創建了一個用戶名為rollen,密碼為rollenholt的用戶:

grant all on cookbook.* to 'rollen'@'localhost' inentified by 'rollenholt';

當然如果要使用一個已有的賬戶訪問cookbook數據庫,那么只需要去掉上面語句的“inentified by 'rollenholt'”部分,如果不去掉的話,會修改這個用戶的密碼的、

當然如果你想訪問的mysql服務器沒有在本機的話,比如說在xyz.com上,我們可以使用:

grant all on cookbook.* to 'rollen'@'xyz.com' inentified by 'rollenholt';

但是需要注意的是grant語句只能被具有管理員權限的用戶用來創建其他賬戶。

查看當前所有的數據庫,然后使用cookbook數據庫作為默認數據庫,接着顯示cookbook數據庫中所有的表,我們可以使用下面的sql語句:

show databases;
use cookbook
show tables;

下面我們來創建一個表,然后插入一些數據吧:

create table limbs (thing varchar(20), legs int, arms int);
insert into limbs (thing, legs, arms) values ('human',2,2);
insert into limbs (thing, legs, arms) values ('insect',6,2);
insert into limbs (thing, legs, arms) values ('squid',0,10);
insert into limbs (thing, legs, arms) values ('peg leg pete',1,2);
insert into limbs (thing, legs, arms) values ('space alien',null,null);

我們可以使用下面的語句來查看表limbs中所有的條目:

select * from limbs;

image

如果想退出mysql的話,那么只需要輸入:quit命令就可以了。

之前說過使用mysql -h localhost -p -urollen登錄mysql,其實也可以做hijack在-p后面(沒有空格)直接輸入密碼的,但是這種方法很不推薦,因為在多用戶的機器上使用諸如ps(他報告進程信息)等工具的其他用戶來說密碼是可見的。

 

mysql的選項文件,如果是windows環境,我們在mysql的安裝目錄下找my.ini文件,如果unix環境的話,可以在home目錄下的my.cnf文件,還存在全局的可選項文件,位於/etc/my.cnf或者mysql安裝目錄下的my.cnf文件。

如果想查看mysql從選項文件中都讀取了那些選項,我們可以使用下面的命令:

C:\Users\rollen>mysql --print-defaults
mysql would have been started with the following arguments:
--port=3306 --default-character-set=latin1

C:\Users\rollen>mysql --print-defaults client
mysql would have been started with the following arguments:
--port=3306 --default-character-set=latin1 client

C:\Users\rollen>mysql --print-defaults client mysql
mysql would have been started with the following arguments:
--port=3306 --default-character-set=latin1 client mysql

后兩個表示在client和mysql組中查找選項。

 

我們需要為mysql的選項文件設置權限,防止其他用戶進行讀取,如果是windows下的話,可以使用windows資源管理器來設置文件權限,unix的話,可以使用:chmod 600 .my.cnf來做到這一點。

mysql語句一般使用分號(;)作為結尾的,但是你也可以使用\g來代替分號,比如:

select now();
-> select 
->now()\g

如果你已經輸入了一行語句,但是又不想執行他們,這個時候可以使用\c選項。如下:

select now()\c

我們其實沒必要在mysql命令行模式下輸入命令,這樣容易出錯,如果想讓mysql從文件中讀取語句的話,

可以在命令行中使用:mysql cookbook <filename

或者在mysql會話中使用:source filename

比如我在d盤根目錄下有一個mysql.sql文件,可以使用:

source d:/mysql.sql

需要注意的是.sql文件本身可以包含source或者\.命令來包含其他 的腳本。

如果想讓mysql從其他的程序中讀取語句,可以使用管道

如果想直接在mysql的命令行中執行給定的語句的話,可以使用-e選項,例如:

mysql -e "select count(*) from limbs" cookbook

如果想將查詢結果轉化為xml或者html輸出的話,可以使用mysql -X或者mysql –H

比如:mysql -X -e "select * from limbs" cookbook -prollenholt -urollen

           mysql -H -e "select * from limbs" cookbook -prollenholt –urollen

 

有時候我們會遇到這樣的問題,查詢結果很長,雜亂無章的顯示在屏幕上,這個時候我們可以使用垂直的生成方式,這個時候使用\G選項。

如下:

image

比如:show full columns from limbs\G

通過在mysql中使用--tee命令選項或者\T命令你可以記錄mysql繪畫的所有或者部分。

在unix中你的第二個選擇是歷史文件,mysql維護一份你的語句記錄,保存在home目錄下的.mysql_history文件。

在SQL語句中使用用戶自定義的變量。

  在select語句中復制給用戶變量的語法是@var_name := value。變量可以用在以后語句中表達式可用的任何地方。

mysql> select  @name := thing from limbs;
+----------------+
| @name := thing |
+----------------+
| human          |
| insect         |
| squid          |
| peg leg pete   |
| space alien    |
+----------------+
5 rows in set (0.00 sec)

mysql> select @name;
+-------------+
| @name       |
+-------------+
| space alien |
+-------------+
1 row in set (0.00 sec)

如果要將一個變量顯示的設置為某一個值的話,可以使用set語句。set語句可以使用“:=”或者“=”來進行賦值。

mysql> set @sum = 4+7;
Query OK, 0 rows affected (0.00 sec)

mysql> select @sum;
+------+
| @sum |
+------+
|   11 |
+------+
1 row in set (0.00 sec)

也可以將select的結果賦值給變量:

mysql> set @max_limbs = (select max(arms+legs) from limbs);
Query OK, 0 rows affected (0.00 sec)

mysql> select @max_limbs;
+------------+
| @max_limbs |
+------------+
|         10 |
+------------+
1 row in set (0.00 sec)

給定變量的值會一直持續到你付給它另外一個值或者你的mysql繪畫結束為止。人一個先出現都可。

另外用戶變量的名稱不是大小寫敏感的。

我們還可以使用mysql作為計算器比如:

mysql> select (3+3) / sqrt(9);
+-----------------+
| (3+3) / sqrt(9) |
+-----------------+
|               2 |
+-----------------+
1 row in set (0.00 sec)

如下代碼說明大小寫不敏感:

mysql> select 'ABC' ='abc';
+--------------+
| 'ABC' ='abc' |
+--------------+
|            1 |
+--------------+
1 row in set (0.00 sec)

mysql> select 'A' = 'B';
+-----------+
| 'A' = 'B' |
+-----------+
|         0 |
+-----------+
1 row in set (0.00 sec)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM