MySQL 經常使用命令

假如新建數據庫lilyphp

建立數據庫  create database lily;
 
顯示全部數據庫  show databases;mysql

選擇數據庫  use lily;正則表達式

刪除數據庫 drop database lily;sql

刪除數據庫 delete database lily;數據庫

刪除數據表:DROP TABLE runoob_tbl;
顯示數據表 show tables;
SHOW COLUMNS FROM tbl_name [FROM db_name] 顯示全部的字段數組

建表 create table myfirst_table(字段名1 類型,字段名2 類型,字段名3 類型);在選擇數據庫以後操做app

改表的名稱  rename table myfirst_table to newname;
建立數據表
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;//字段也能夠不用``符號包裹函數

插入數據fetch

INSERT INTO table_name ( field1, field2,...fieldN ) VALUES( value1, value2,...valueN );
NSERT INTO users (name, age) VALUES(‘姚明’, 25), (‘比爾.蓋茨’, 50), (‘火星人’, 600);網站

 

查詢數據  SELECT * FRAOM table_name;
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
select runoob_title,runoob_author from myfirst_table 

MySQL 的 WHERE 子句的字符串比較是不區分大小寫的。 你可使用 BINARY 關鍵字來設定 WHERE 子句的字符串比較是區分大小寫的。
SELECT * from runoob_tbl WHERE BINARY runoob_author='RUNOOB.COM';

MySQL UPDATE 查詢  若是咱們須要修改或更新 MySQL 中的數據,咱們可使用 SQL UPDATE 命令來操做。.
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
更新數據表中 runoob_id 爲 3 的 runoob_author 字段值 update myfirst_table set runoob_author ="me" where runoob_id=3;

MySQL DELETE 語句 DELETE FROM runoob_tbl WHERE runoob_id=3;

MySQL LIKE 子句 至關於模糊匹配
SQL LIKE 子句中使用百分號(%)字符來表示任意字符,相似於UNIX或正則表達式中的星號 (*)。
若是沒有使用百分號(%), LIKE 子句與等號(=)的效果是同樣的。
select * from myfirst_table where runoob_anthor LIKE 'LY';    %就是代替的東西,能夠放前面也能夠放後面。
如下是咱們將 runoob_tbl 表中獲取 runoob_author 字段中以 COM 爲結尾的的全部記錄:
SELECT * from runoob_tbl  WHERE runoob_author LIKE '%COM'; 

MySQL UNION 操做符 

MySQL UNION 操做符用於鏈接兩個以上的 SELECT 語句的結果組合到一個結果集合中。多個 SELECT 語句會刪除重複的數據。

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
註釋:UNION 不能用於列出兩個表中全部的country。若是一些網站和APP來自同一個國家,每一個國家只會列出一次。UNION 只會選取不一樣的值。請使用 UNION ALL 來選取重複的值!
SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;

帶有 WHERE 的 SQL UNION ALL
SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country; 從2個表中選擇字段,生成以第一表的字段爲新的字段,內容是2個表符合條件的全部記錄

MySQL GROUP BY 語句
SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;//COUNT(*)是新的字段
使用WITH ROLLUP
WITH ROLLUP 能夠實如今分組統計數據基礎上再進行相同的統計(SUM,AVG,COUNT…)。
例如咱們將以上的數據表按名字進行分組,再統計每一個人登陸的次數:
SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
其中NULL表示全部人的登陸次數,咱們可使用coalesce來設置一個能夠取代NULL 的名稱,coalesce語法 select coalesce(a,b,c)
SELECT coalesce(name, '總數'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP; 

Mysql 鏈接的使用
接下來咱們就使用MySQL的INNER JOIN(也能夠省略 INNER 使用 JOIN,效果同樣)來鏈接以上兩張表來讀取runoob_tbl表中全部runoob_author字段在tcount_tbl表對應的runoob_count字段值:
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

MySQL LEFT JOIN
MySQL left join 與 join 有所不一樣。 MySQL LEFT JOIN 會讀取左邊數據表的所有數據,即使右邊表無對應數據。
嘗試如下實例,以 runoob_tbl 爲左表,tcount_tbl 爲右表,理解 MySQL LEFT JOIN 的應用:
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

MySQL RIGHT JOIN
MySQL RIGHT JOIN 會讀取右邊數據表的所有數據,即使左邊邊表無對應數據。
嘗試如下實例,以 runoob_tbl 爲左表,tcount_tbl 爲右表,理解MySQL RIGHT JOIN的應用:
mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

 

 MySQL NULL 值處理
IS NULL: 當列的值是 NULL,此運算符返回 true。
IS NOT NULL: 當列的值不爲 NULL, 運算符返回 true。
SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;

MySQL ALTER命令
以下命令使用了 ALTER 命令及 DROP 子句來刪除以上建立表的 i 字段
ALTER TABLE testalter_tbl  DROP i;
MySQL 中使用 ADD 子句來向數據表中添加列,以下實例在表 testalter_tbl 中添加 i 字段,並定義數據類型:
ALTER TABLE testalter_tbl ADD i INT;
若是你須要指定新增字段的位置,可使用MySQL提供的關鍵字 FIRST (設定位第一列), AFTER 字段名(設定位於某個字段以後)。
FIRST 和 AFTER 關鍵字只佔用於 ADD 子句,因此若是你想重置數據表字段的位置就須要先使用 DROP 刪除字段而後使用 ADD 來添加字段並設置位置。
若是須要修改字段類型及名稱, 你能夠在ALTER命令中使用 MODIFY 或 CHANGE 子句 。
例如,把字段 c 的類型從 CHAR(1) 改成 CHAR(10),能夠執行如下命令:
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
ALTER TABLE tableName engine=myisam; 

mysql_fetch_row(),mysql_fetch_array()
這兩個函數,返回的都是一個數組,區別就是第一個函數返回的數組是隻包含值,咱們只能$row[0],$row[1],這樣以數組下標來讀取數據,
而mysql_fetch_array()返回的數組既包含第一種,也包含鍵值
對的形式,咱們能夠這樣讀取數據,(假如數據庫的字段是 username,passwd):
$row['username'], $row['passwd']

1: mysqli_fetch_assoc()用關鍵字索引取值。好比: 
row=result->fetch_assoc(); 
echo $row[‘username’];

2: 而mysqli_fetch_row()用數字索引取值。好比: 
row=result->fetch_row(); 
echo $row[0];

3.最後mysql_fetch_array既能夠獲得關聯數組也能夠獲得索引數組,兩者都有。

另外還有一個函數:mysqli_fetch_object()將一行取回到一個對象中,而後經過類的方式取值,好比: 
$row = $result->fetch_object(); 
echo $row->username;

 

在控制檯的屬性中-選項-勾選快速編輯模式 能夠複製控制檯的內容

若是mysql控制檯錯誤提示是亂碼,須要在my.ini文件中最後一行添加language=E:/wamp/bin/mysql/mysql5.6.17/share/english

wamp中修改MySQL數據庫登陸密碼,
use mysql=》update user set password=PASSWORD('123') where user='root'=》從新啓動服務;

修改密碼後phpMyAdmin不能鏈接數據庫,須要修改apps\phpmyadmin4.1.14裏面的config.inc.php的密碼

select * from et_data\G;//按每條記錄展現\G前面有沒有空格都行

相關文章
相關標籤/搜索