—————————————-
※ MySQL 使用者管理 SQL 語法:
—————————————-

$ mysql -u root
//AaA:第一次還沒設密碼時登入用

$ mysql -u root -p
//AaA:用密碼登入,也可以p後面直接加密碼,不過很容易被別人發現

$ mysql –i-am-a-dummy -u root -p
//告知我是初學者,刪資料會先被提示

mysql> SELECT VERSION(); //AaA:顯示目前MySQL版本

mysql> SELECT USER(); //AaA:顯示目前使用者

mysql> CREATE USER username;
//AaA:建立使用者,會產生沒有任何權限的使用者 username@%

mysql> set password for username = password(‘123456’);
//AaA:設定使用者 username@% 的密碼

mysql> set password for username = password();
//AaA:將使用者 username@% 的密碼清空

mysql> set password for root@localhost = password(‘123456’);
//AaA:設定使用者 root@localhost 的密碼

mysql> GRANT ALL ON *.* TO username;
//AaA:給予使用者所有權限(但不包含GRANT權限)

mysql> REVOKE all ON *.* FROM username;
//AaA:取消使用者所有權限 (*.* 前面*是資料庫,後面*是表格)

mysql> GRANT ALL ON *.* TO username IDENTIFIED BY ‘password’;
//AaA:給予使用者所有權限,並設定使用者密碼

mysql> FLUSH PRIVILEGES; //AaA:即時更新權限的更改

mysql> DROP USER username; //AaA:刪除使用者,等於執行以下兩個指令
mysql> DELETE FROM user WHERE User=’username’;
mysql> DELETE FROM db WHERE User=’username’;

—————————————
※ MySQL 資料庫管理 SQL 語法:
—————————————
mysql> SHOW DATABASES; //AaA:顯示所有databases
mysql> USE db_name; //AaA:使用某個database

mysql> CREATE DATABASES db_name; //AaA:創建一個database

mysql> DROP DATABASE db_name; //AaA:砍掉一個database

————————————
※ MySQL 表格管理 SQL 語法:
————————————
mysql> SHOW tables;
//AaA:顯示該database的所有table,必須先 USE databasename;

mysql> DESC table_name;
//AaA:取得tablename的schema,同 describe tablename;

mysql> SHOW COLUMNS FROM table_name;
//AaA:顯示表格的定義

mysql> CREATE TABLE table1 (
id CHAR(200) NOT NULL,
KEY index_name (id(10)));
//AaA:建立一個以id為索引的table

mysql> DROP TABLE table1;
//AaA:刪除一個TABLE table1

mysql> CREATE TABLE table2 (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name, first_name));
//AaA:建立一個以id為主鍵,而last_name,first_name為雙索引的table

//– INSERT SQL 語法:
mysql> INSERT INTO table2(id, last_name, first_name) VALUES(22,’amzshar’,’liu’);
mysql> INSERT INTO table2(id, last_name, first_name) VALUES(33,’cathy’,’chung’);
mysql> INSERT INTO table2(id, last_name, first_name) VALUES(44,’bruce’,’lin’);
mysql> INSERT INTO table2(id, last_name, first_name) VALUES(55,’qing’,’wang’);
mysql> INSERT INTO table2(id, last_name, first_name) VALUES(66,’gino’,’fu’);
mysql> INSERT INTO table2(id, last_name, first_name) VALUES(77,’annisa’,’chen’);
//AaA插入數筆資料

//– SELECT SQL 語法:
mysql> SELECT COUNT(*) from table2;
//AaA:查出有幾筆資料在 TABLE table2

mysql> SELECT * FROM table2
WHERE last_name="amzshar" OR first_name="liu";
//AaA:搜尋方式1

mysql> SELECT * FROM table2
WHERE last_name LIKE ‘amz%’;
//AaA:搜尋方式2

mysql> select (1+2)*3; //AaA:回應 9
mysql> select 1 IS NULL, 0 IS NULL, NULL IS NULL; //AaA:回應 0 0 1
mysql> select 2 BETWEEN 2 AND ‘3’; //AaA:回應 1
mysql> select ISNULL(1+1); //AaA:回應 0
mysql> select ISNULL(1/0); //AaA:回應 1
mysql> select ABS(-23); //AaA:回應 絕對值 32
mysql> select SQRT(4); //AaA:回應 平方根 2.000000
mysql> select GREATEST(2,0); //AaA:回應 最大值 2

mysql> select SUBSTRING(‘International’,5);
//AaA:回應 子字串 ‘national’

mysql> select SUBSTRING(‘International’,5,6);
//AaA:回應 子字串 ‘nation’

mysql> select REVERSE(‘abc’);
//AaA:回應 ‘cba’

mysql> select LCASE(‘International’);
//AaA:回應Low Case ‘international’

mysql> select UCASE(‘International’);
//AaA:回應Upper case ‘INTERNATIONAL’

mysql> SELECT xx FROM tableD
WHERE TO_DAYS(NOW()) – TO_DAYS(date_col) <= 7;
//AaA:查出最後7天內的資料

//– UPDATE SQL 語法:
mysql> update table2 SET last_name=’AaA’ where id = 22;

//– ALTER SQL 語法:
mysql> ALTER TABLE table2 ADD ts TIMESTAMP;
//AaA:在 TABLE table2 增加一個新TIMESTAMP列 ts

mysql> ALTER TABLE table2 DROP COLUMN ts;
//AaA:在 TABLE table2 刪除列 ts

//– SHOW 的一些 SQL 語法:
mysql> SHOW DATABASES;
mysql> SHOW TABLES [FROM db_name];
mysql> SHOW COLUMNS FROM tbl_name [FROM db_name];
mysql> SHOW INDEX FROM table2 [FROM db_name];
mysql> SHOW GRANTS FOR user xxx;

//– LOCK 的一些 SQL 語法:
mysql> LOCK TABLES table2 READ, test3 WRITE;
mysql> SELECT SUM(value) FROM table2 WHERE id= some_id;
mysql> UPDATE id
SET total_value=sum_from_previous_statement
where id=some_id;
mysql> UNLOCK TABLES;

//– INDEX 的一些 SQL 語法:
mysql> CREATE INDEX index_name ON tbl_name (column(10));
mysql> DROP INDEX index_name ON tbl_name

via amzshar.blogspot.com

Views: 1