1. 程式人生 > >Mysql命令&&MySQL常用操作命令

Mysql命令&&MySQL常用操作命令

Mysql命令
use <dbname> [LIKE wild];
show tables;
show databases;
?/help;
exit/quit;
mysqladmin version;
mysql mysqladmin version;
net start mysql;
mysqladmin variables;
mysqladmin -h hostname --port=port_number variables;
預設的情況下,埠是3306,套接字的名字是MySQL
mysqladmin shutdown;
mysqladmin reload;
mysqladmin –help;
mysqladmin -u root -p shutdown;
如果完全省略了 -p 選項,mysql 就認為您不需要口令,不作提示
shell>mysql –h mysql.domain.net –u tom -p;
CREATE DATABASE db_name;
DROP DATABASE [IF EXISTS] db_name;
SHOW/ DESCRIBE;

source E:/Tomcat/webapps/2richshop1.1/doc/sql.txt;

GRANT privileges (columns) ON what TO user IDENTIFIED BY "password" WITH GRANT OPTION

修改root使用者口令:
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='hunte';
  mysql> FLUSH PRIVILEGES;
  mysql> QUIT


SELECT 語句的語法如下:

SELECT selection_list    選擇哪些列

FROM table_list     從何處選擇行

WHERE primary_constraint   行必須滿足什麼條件

GROUP BY grouping_columns      怎樣對結果分組

HAVING secondary_constraint     行必須滿足的第二條件

ORDER BY sorting_columns 怎樣對結果排序

LIMIT count  結果限定

注意:所有使用的關鍵詞必須精確地以上面的順序給出。例如,一個HAVING子句必須跟在GROUP BY子句之後和ORDER BY子句之前。


COUNT()函式計數非NULL結果的數目

TIMESTAMP列型別提供一種型別,TIMESTAMP值可以從1970的某時的開始一直到2037年,精度為一秒,其值作為數字顯示。你可以使用它自動地用當前的日期和時間標記INSERT或UPDATE的操作。如果你有多個TIMESTAMP列,只有第一個自動更新。

自動更新第一個TIMESTAMP列在下列任何條件下發生:

l         列沒有明確地在一個INSERT或LOAD DATA INFILE語句中指定。

l         列沒有明確地在一個UPDATE語句中指定且一些另外的列改變值。(注意一個UPDATE設定一個列為它已經有的值,這將不引起TIMESTAMP列被更新,因為如果你設定一個列為它當前的值,MySQL為了效率而忽略更改。)

l         你明確地設定TIMESTAMP列為NULL.

除第一個以外的TIMESTAMP列也可以設定到當前的日期和時間,只要將列設為NULL,或NOW()。

例如,建立如下的表:

mysql> CREATE TABLE student

       -> (

       -> id int,

       -> name char(16),

       -> english tinyint,

       -> chinese tinyint,

       -> history tinyint,

       -> time timestamp

       -> );

向表中插入記錄,可以檢視效果:

mysql> INSERT student(id,name,englisht,Chinese,history) VALUES(11,”Tom”,66,93,67);

檢視記錄的儲存情況:

mysql> SELECT * FROM student;

+------+---------+---------+---------+---------+----------------+
| id   | name    | english | chinese | history | time           |
+------+---------+---------+---------+---------+----------------+
|   11 | Tom     |      66 |      93 |      67 | 20010220123335 |
+------+---------+---------+---------+---------+----------------+
 

你可以看到time列紀錄下了資料錄入時的時間值。如果你更新改記錄,在檢視操作的結果:

mysql> UPDATE student SET english=76 WHERE id=11;

mysql> SELECT * FROM student;

+------+------+---------+---------+---------+----------------+
| id   | name | english | chinese | history | time           |
+------+------+---------+---------+---------+----------------+
|   11 | Tom  |      76 |      93 |      67 | 20010220125736 |
+------+------+---------+---------+---------+----------------+
可以清楚的看到,time列的時間被自動更改為修改記錄的時間。

有時候你希望不更改任何值,也能打到修改TIMESTAMP列的值,這時只要設定該列的值為NULL,MySQL就可以自動更新TIMESTAMP列的值:

mysql> UPDATE student SET time=NULL WHERE id=11;

mysql> select * from student where id=11;

+------+------+---------+---------+---------+----------------+
| id   | name | english | chinese | history | time           |
+------+------+---------+---------+---------+----------------+
|   11 | Tom  |      76 |      93 |      67 | 20010220130517 |
+------+------+---------+---------+---------+----------------+
通過明確地設定希望的值,你可以設定任何TIMESTAMP列為不同於當前日期和時間的值,即使對第一個TIMESTAMP列也是這樣。例如,如果,當你建立一個行時,你想要一個TIMESTAMP被設定到當前的日期和時間,但在以後無論何時行被更新時都不改變,你可以使用這樣使用:

l         讓MySQL在行被建立時設定列,這將初始化它為當前的日期和時間。

l         當你執行隨後的對該行中其他列的更改時,明確設定TIMESTAMP列為它的當前值。

例如,當你在修改列時,可以把原有的值付給TIMESTAMP列:

mysql> UPDATE student SET english=66,time=time WHERE id=11;

mysql> select * from student where id=11;

+------+------+---------+---------+---------+----------------+
| id   | name | english | chinese | history | time           |
+------+------+---------+---------+---------+----------------+
|   11 | Tom  |      66 |      93 |      67 | 20010220130517 |
+------+------+---------+---------+---------+----------------+
另一方面,你可能發現,當你想要實現上面這個效果時,很容易用一個你用NOW()初始化的DATETIME列然後不再改變它,這樣也許直接些。 但是,TIMESTAMP列的以後好處是儲存要求比較小,節省空間。TIMESTAMP的儲存需求是4位元組,而DATETIME列的儲存需求是8位元組。

在 MySQL中,SQL的模式預設是忽略大小寫的。


在MySQL中,資料庫和表對應於在那些目錄下的目錄和檔案,因而,內在的作業系統的敏感性決定資料庫和表命名的大小寫敏感性。這意味著資料庫和表名在Unix上是區分大小寫的,而在Win32上忽略大小寫。


注意:在Win32上,儘管資料庫和表名是忽略大小寫的,你不應該在同一個查詢中使用不同的大小寫來引用一個給定的資料庫和表。下列查詢將不工作,因為它作為my_table和作為MY_TABLE引用一個表:

mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

2、列名
列名在所有情況下都是忽略大小寫的。

3、表的別名
表的別名是區分大小寫的。下列查詢將不工作,: 因為它用a和A引用別名:

mysql> SELECT col_name FROM tbl_name AS a

           WHERE a.col_name = 1 OR A.col_name = 2;

4、列的別名
列的別名是忽略大小寫的。

5、字串比較和模式匹配
預設地,MySQL搜尋是大小寫不敏感的(儘管有一些字符集從來不是忽略大小寫的,例如捷克語)。這意味著,如果你用col_name LIKE 'a%'搜尋,你將得到所有以A或a開始的列值。如果你想要使這個搜尋大小寫敏感,使用象INDEX(col_name, "A")=0檢查一個字首。或如果列值必須確切是"A",使用STRCMP(col_name, "A") = 0。

簡單的比較操作(>=、>、= 、< 、<=、排序和聚合)是基於每個字元的“排序值”。有同樣排序值的字元(象E,e)被視為相同的字元!

LIKE比較在每個字元的大寫值上進行(“E”=”e”)。

如果你想要一個列總是被當作大小寫敏感的方式,宣告它為BINARY。

例如:

mysql> SELECT "E"="e","E"=BINARY "e";

+---------+----------------+
| "E"="e" | "E"=BINARY "e" |
+---------+----------------+
|       1 |              0 |
+---------+----------------+


由MySQL提供的模式匹配的其他型別是使用擴充套件正則表示式。當你對這類模式進行匹配測試時,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它們是同義詞)。

擴充套件正則表示式的一些字元是:

“.”匹配任何單個的字元。

一個字元類“[...]”匹配在方括號內的任何字元。例如,“[abc]”匹配“a”、“b”或“c”。為了命名字元的一個範圍,使用一個“-”。“[a-z]”匹配任何小寫字母,而“[0-9]”匹配任何數字。

“ * ”匹配零個或多個在它前面的東西。例如,“x*”匹配任何數量的“x”字元,“[0-9]*”匹配的任何數量的數字,而“.*”匹配任何數量的任何東西。

正則表示式是區分大小寫的,但是如果你希望,你能使用一個字元類匹配兩種寫法。例如,“[aA]”匹配小寫或大寫的“a”而“[a-zA-Z]”匹配兩種寫法的任何字母。

如果它出現在被測試值的任何地方,模式就匹配(只要他們匹配整個值,SQL模式匹配)。

為了定位一個模式以便它必須匹配被測試值的開始或結尾,在模式開始處使用“^”或在模式的結尾用“$”。

為了說明擴充套件正則表示式如何工作,上面所示的LIKE查詢在下面使用REGEXP重寫:

為了找出以“b”開頭的名字,使用“^”匹配名字的開始並且“[bB]”匹配小寫或大寫的“b”:

mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";

+--------+--------+---------+------+------------+------------+
| name   | owner  | species | sex  | birth      | death      |
+--------+--------+---------+------+------------+------------+
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL       |
| Bowser | Diane  | dog     | m    | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+
 

為了找出以“fy”結尾的名字,使用“$”匹配名字的結尾:

mysql> SELECT * FROM pet WHERE name REGEXP "fy$";

+--------+--------+---------+------+------------+-------+
| name   | owner  | species | sex  | birth      | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat     | f    | 1993-02-04 | NULL  |
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL  |
+--------+--------+---------+------+------------+-------+
 

為了找出包含一個“w”的名字,使用“[wW]”匹配小寫或大寫的“w”:

mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";

+----------+-------+---------+------+------------+------------+
| name     | owner | species | sex  | birth      | death      |
+----------+-------+---------+------+------------+------------+
| Claws    | Gwen  | cat     | m    | 1994-03-17 | NULL       |
| Bowser   | Diane | dog     | m    | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen  | bird    | NULL | 1997-12-09 | NULL       |
+----------+-------+---------+------+------------+------------+
 

既然如果一個正規表示式出現在值的任何地方,其模式匹配了,就不必再先前的查詢中在模式的兩方面放置一個萬用字元以使得它匹配整個值,就像如果你使用了一個SQL模式那樣。

為了找出包含正好5個字元的名字,使用“^”和“$”匹配名字的開始和結尾,和5個“.”例項在兩者之間:

mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";

+-------+--------+---------+------+------------+-------+
| name  | owner  | species | sex  | birth      | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
+-------+--------+---------+------+------------+-------+
 

你也可以使用“{ n }”“重複n次”操作符重寫先前的查詢:

mysql> SELECT * FROM pet WHERE name REGEXP "^.{ 5 }$";

+-------+--------+---------+------+------------+-------+
| name  | owner  | species | sex  | birth      | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
+-------+--------+---------+------+------------+-------+

語法:SELECT FROM table_reference LEFT JOIN table_reference ON conditional_expr

 MySQL常用操作命令

1、啟動MySQL伺服器

實際上上篇已講到如何啟動MySQL。兩種方法: 一是用winmysqladmin,如果機器啟動時已自動執行,則可直接進入下一步操作。 二是在DOS方式下執行 d:mysqlbinmysqld

2、進入mysql互動操作介面

在DOS方式下,執行: d:mysqlbinmysql

出現: mysql 的提示符,此時已進入mysql的互動操作方式。

如果出現 "ERROR 2003: Can′t connect to MySQL server on ′localhost′ (10061)“,

說明你的MySQL還沒有啟動。

3、退出MySQL操作介面

在mysql>提示符下輸入quit可以隨時退出互動操作介面:
mysql> quit
Bye
你也可以用control-D退出。

4、第一條命令

mysql> select version(),current_date();
+----------------+-----------------+
| version() | current_date() |
+----------------+-----------------+
| 3.23.25a-debug | 2001-05-17 |
+----------------+-----------------+
1 row in set (0.01 sec)
mysql>


此命令要求mysql伺服器告訴你它的版本號和當前日期。嘗試用不同大小寫操作上述命令,看結果如何。結果說明mysql命令的大小寫結果是一致的。

練習如下操作:

mysql>Select (20+5)*4;
mysql>Select (20+5)*4,sin(pi()/3);
mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名為Result)
    <B>5、多行語句</B>
    一條命令可以分成多行輸入,直到出現分號“;”為止:
<ccid_nobr>
<table width="400" border="1" cellspacing="0" cellpadding="2"
bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
<tr>
<td bgcolor="e6e6e6" class="code" style="font-size:9pt">
<pre><ccid_code> mysql> select
-> USER()
-> ,
-> now()
->;
+--------------------+---------------------+
| USER() | now() |
+--------------------+---------------------+
| [email protected] | 2001-05-17 22:59:15 |
+--------------------+---------------------+
1 row in set (0.06 sec)
mysql>


注意中間的逗號和最後的分號的使用方法。

6、一行多命令

輸入如下命令:

mysql> SELECT USER(); SELECT NOW();
+------------------+
| USER() |
+------------------+
| [email protected] |
+------------------+
1 row in set (0.00 sec)

+---------------------+
| NOW() |
+---------------------+
| 2001-05-17 23:06:15 |
+---------------------+
1 row in set (0.00 sec)
mysql>


注意中間的分號,命令之間用分號隔開。

7、顯示當前存在的資料庫

mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 row in set (0.06 sec)
mysql>


8、選擇資料庫並顯示當前選擇的資料庫

mysql> USE mysql
Database changed
mysql>
(USE 和 QUIT 命令不需要分號結束。)
mysql> select database();
+---------------+
| database() |
+---------------+
| mysql |
+---------------+
1 row in set (0.00 sec)

9、顯示當前資料庫中存在的表
mysql> SHOW TABLES;

10、顯示錶(db)的內容
mysql>select * from db;

11、命令的取消

當命令輸入錯誤而又無法改變(多行語句情形)時,只要在分號出現前就可以用 c來取消該條命令

mysql> select
-> user()
-> c
mysql>

這是一些最常用的最基本的操作命令,通過多次練習就可以牢牢掌捂了

相關推薦

MySql linux下常用操作命令

一、連線MySql         使用安裝好的MySQLl命令列預設使用者是root使用者,我這裡用dos的命令列登陸。         1、連線到本機的MySQL            格式:mysql  -u使用者名稱 -p使用者密碼         示

Linux簡介(使用者管理操作命令常用操作命令

使用者管理命令 1、使用者和組帳號 2、使用者帳號 1)超級使用者 2)普通使用者 3)程式使用者 在安裝Linux系統及部分應用程式時,會新增一些低許可權使用者的帳號,這些使用者一般不允許登入到系統,而僅用於維護系統或某個程式的正常執行。組帳號 基於某種特定聯絡將多個使用

MySQL數據庫(5)_MySQL數據庫常用操作命令

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

Linux系統中MySQL常用操作命令

char OS var 權限 記錄 port nis whereis null 服務: # chkconfig --list 列出所有系統服務# chkconfig --list | grep on 列出所有啟動的系統服務 # chkconfig -

MySQL 服務常用操作命令

KS man moni resp The code 用戶名 TE password 1、MySQL 服務設置 在使用 mysql.server 命令之前需要將路徑 /usr/local/mysql/support-files 添加到系統環境變量中。 export PATH

Linux系統MySQL常用操作命令

hang etc 增刪 ins nis 刪除數據庫 primary 其它 建表 安裝好MySQL服務後添加環境變量: #vi /etc/profile export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_

MySQL資料庫常用操作命令

接上一篇的操作: 1.查詢相反條件:select   查詢欄位    from   表名    where   not   (查詢條件); 2.範圍查詢: 

MySQL常用操作命令整理

一. MySQL服務操作:啟動MySQL服務:net start mysql停止MySQL服務:net stop mysql進入MySQL資料庫:mysql -h 主機地址 -u使用者名稱 -p使用者密碼退出MySQL操作:quit;重新整理資料庫:flush privile

MySql常用操作命令總結

連線資料庫 命令: mysql -h主機地址 -P埠號 -u使用者名稱 -p密碼 本地: 開啟DOS,進入MySql\bin,鍵入命令:mysql -uroot -p,回車。輸入密碼後鍵入Enter即可。推薦將Mysql\bin目錄加入到系統環境變數,這樣開

mysql 常用操作命令

1、查詢數值型資料:  SELECT * FROM tb_name WHERE sum > 100;  查詢謂詞:>,=,<,<>,!=,!>,!<,=>,=<   2、查詢字串  SELECT * FROM tb_stu  WHERE sname  = 

Mysql命令&&MySQL常用操作命令

Mysql命令 use <dbname> [LIKE wild];show tables;show databases;?/help;exit/quit;mysqladmin version;mysql mysqladmin version;net start m

Linux下 MySQL常用操作命令

1、登入mysql  mysql -uroot -p Enter password: 【輸入原來的密碼】 2、修改使用者密碼 mysql> use mysql; mysql> update user set password=passworD("test")

Linux 下 MySql 常用操作命令

1.登入mysql 資料庫 CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 1.

MySQL常用操作命令詳解

系統管理 啟動MySQL服務 通過windows服務管理器啟動MySQL服務 開始-->執行-->輸入services.msc命令-->啟動MySQL服務 通過DOS命令啟動MySQL服務 net start my

mysql簡介以及常用dos命令

style delet 多個 操作 top pre 電子 排序 dex mysql:關系型數據庫管理系統(RDBMS 即 relational database management system) 什麽是數據庫:數據庫是根據數據結構來組織、存儲和管理數據的倉庫。它是一些關

ORACLE/MYSQL資料庫的常用SQL命令

以下均是在建立一個成功的連線後的操作。 MySQL資料庫在一個連線下是通過不同的資料庫名稱來進行區分的,即一個連線下可以有很多個庫;Oracle資料庫連線時則是通過使用者名稱進行區分的,一個使用者名稱下面只有一個數據庫。 文章目錄

MySQL修改表結構操作命令總結

在我們使用mysql的時候,有時會遇到須要更改或者刪除mysql的主鍵,我們能夠簡單的使用alter table table_name drop primary key;來完成。以下我使用資料表table_test來作了樣例。1、首先建立一個數據表table_test:create table table

Mysql數據庫操作命令行小結

左連接 統計 name 優先 多個 種類型 文件 邏輯 .sql -- 創建數據庫 create database python_test_1 charset=utf8; -- 使用數據庫 use python_test_1; -- students表

redis的五大數據類型以及與 key 關鍵字相關的常用操作命令

redis數據類型 key關鍵字相關的指令 redis學習 1、redis的五大數據類型: 先來看看redis官方網上文檔 的介紹: 這裏簡單地說,就是redis不是一個普通的 key-value 存儲,而是一個數據結構服務器,支持各種不同 類型的值,這