一
設定 root 和其他 user 的密碼
mysqladmin
mysqladmin
Enter password: 此時再輸入密碼(建議采用)
use mysql;
mysql> UPDATE user SET password=password(
只改 root 的密碼
mysql> FLUSH PRIVILEGES; 在 mysql 資料庫內
刪除空帳號
mysql> DELETE FROM user WHERE User =
mysql> FLUSH PRIVILEGES;
建立新帳號
mysql> GRANT 權限 ON 資料庫或資料表 TO 使用者 IDENTIFIED BY
權限
資料庫或資料表
*
* 預設資料庫裡的所有資料表
資料庫
資料庫
資料表 預設資料庫裡的某一資料表
設定/修改權限
用 root 登入 MySQL
mysqladmin
Enter password:
mysql> GRANT all ON db
把 db
mysql> GRANT all ON *
mysql> GRANT all??? ON www
把 www 這個資料庫(含其下的所有資料表)
mysql> FLUSH PRIVILEGES; (最後一定要強迫更新權限)
二
建立資料庫 CREATE DATABASE 資料庫名
語法
使用資料庫 USE 資料庫名
語法
刪除資料庫 DROP DATABASE 資料庫名
語法
建立資料表
CREATE TABLE 資料表名 (欄位
語法
CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition
例
craete database basic;
use basic;
create table basic(
no char(
name char(
id char(
create_definition:
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[PRIMARY KEY] [reference_definition]
or PRIMARY KEY (index_col_name
or KEY [index_name] KEY(index_col_name
or INDEX [index_name] (index_col_name
or UNIQUE [INDEX] [index_name] (index_col_name
or [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name
[reference_definition]
or CHECK (expr)
資料結構(type)
資料型態 說明
TINYINT 有符號的范圍是
SMALLINT 有符號的范圍是
MEDIUMINT 有符號的范圍是
INT 有符號的范圍是
INTEGER INT的同義詞
BIGINT 有符號的范圍是
FLOAT 單精密浮點數字
DOUBLE 雙精密)浮點數字
DOUBLE PRECISION DOUBLE的同義詞
REAL DOUBLE的同義詞
DECIMAL DECIMAL值的最大范圍與DOUBLE相 同
NUMERIC DECIMAL的同義詞
DATE 日期
DATETIME 日期和時間組合
TIMESTAMP 時間戳記
TIME 一個時間
YEAR
CHAR 固定長度
VARCHAR 可變長度
TINYBLOB
TINYTEXT 最大長度為
MEDIUMBLOB
MEDIUMTEXT 最大長度為
LONGBLOB
LONGTEXT 最大長度為
ENUM 一個ENUM最多能有
SET 一個SET最多能有
index_col_name:
col_name [(length)]
reference_definition:
REFERENCES tbl_name [(index_col_name
[MATCH FULL | MATCH PARTIAL]
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
table_options:
type = [ISAM | MYISAM | HEAP]
or max_rows = #
or min_rows = #
or avg_row_length = #
or comment =
or auto_increment = #
select_statement:
[ | IGNORE | REPLACE] SELECT … (Some legal select statement)
刪除資料表 DROP TABLE 資料表名
語法
改變資料表結構(新增/刪除欄位
語法
ALTER [IGNORE] TABLE tbl_name alter_spec [
alter_specification:
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
or ADD INDEX [index_name] (index_col_name
or ADD PRIMARY KEY (index_col_name
or ADD UNIQUE [index_name] (index_col_name
or ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
or CHANGE [COLUMN] old_col_name create_definition
or MODIFY [COLUMN] create_definition
or DROP [COLUMN] col_name
or DROP PRIMARY KEY
or DROP INDEX key_name
or RENAME [AS] new_tbl_name
or table_option
范例
欄位重新命名
mysql> ALTER TABLE t
將資料表 t
改變欄位資料型態
mysql> ALTER TABLE t
mysql> ALTER TABLE t
將資料表 t
mysql> CREATE TABLE t
mysql> ALTER TABLE t
將資料表 t
mysql> ALTER TABLE t
將資料表 t
mysql> ALTER TABLE t
在資料表 t
mysql> ALTER TABLE t
在資料表 t
mysql> ALTER TABLE t
刪除欄位 c
mysql> ALTER TABLE t
新增欄位 c
資料表最佳化 OPTIMIZE TABLE 資料表名
語法
欄位長度有變動
三
插入一筆或多筆紀錄 INSERT INTO 資料表(欄位
(MySQL
語法
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name
VALUES (expression
or INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name
SELECT …
or INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name
SET col_name=expression
范例
mysql> INSERT INTO tbl_name (col
不可寫成
mysql> INSERT INTO tbl_name (col
因為
從檔案讀入資料
語法
LOAD DATA [LOCAL] INFILE
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY
[OPTIONALLY] ENCLOSED BY
[ESCAPED BY
[LINES TERMINATED BY
[IGNORE number LINES] 忽略最前面幾行(最前面幾筆記錄不抄進來)
[(col_name
范例
mysql> USE db
mysql> LOAD DATA INFILE
從目前 MySQL 目錄讀入 data
mysql> LOAD DATA INFILE
從目前 MySQL 目錄(我的在 /var/lib/mysql )讀入 data
mysql> LOAD DATA INFILE
只將 persondata
刪除紀錄 DELETE [LOW
語法
DELETE [LOW_PRIORITY] FROM tbl_name
[WHERE where_definition] [LIMIT rows]
LOW
LIMIT rows 限制刪除紀錄的筆數
范例
mysql> DELETE FROM 資料表名
刪除所有紀錄
mysql> DELETE FROM 資料表名 WHERE
刪除所有紀錄
更新一筆紀錄 (語法與 INSERT 相同)
REPLACE INTO 資料表(欄位
語法
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name
VALUES (expression
or REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name
SELECT …
or REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name
SET col_name=expression
更新多筆紀錄
語法
UPDATE [LOW_PRIORITY] tbl_name SET col_name
如果沒有設定 WHERE 條件
范例
mysql> UPDATE persondata SET age=age+
將資料表 persondata 中
mysql> UPDATE persondata SET age=age*
將資料表 persondata 中
四
SELECT
語法
SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [DISTINCT | ALL]
select_expression
[INTO OUTFILE
[FROM table_references
[WHERE where_definition]
[GROUP BY col_name
[HAVING where_definition]
[ORDER BY {unsigned_integer | col_name} [ASC | DESC]
[LIMIT [offset
[PROCEDURE procedure_name] ]
范例
排序輸出
select * from 資料表名 order by 欄位名
反向排序輸出
select * from 資料表名 order by 欄位名
mysql> select concat(last_name
from mytable ORDER BY full_name;
mysql> select t
where t
顯示資料庫 employee(別名 t
mysql> select t
mysql> select college
ORDER BY region
mysql> select college
ORDER BY r
mysql> select college
ORDER BY
mysql> select col_name from tbl_name HAVING col_name >
mysql> select col_name from tbl_name WHERE col_name >
mysql> select user
group by user HAVING max(salary)>
mysql> select user
group by user HAVING sum>
mysql> select * from table LIMIT
mysql> select * from table LIMIT
在命令列下進行批次處理
shell> mysql
Enter password: ********
Type Bytes From To
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
Column type ``Zero
DATETIME
DATE
TIMESTAMP
TIME
YEAR
Column type Display format
TIMESTAMP(
TIMESTAMP(
TIMESTAMP(
TIMESTAMP(
TIMESTAMP(
TIMESTAMP(
TIMESTAMP(
Type Max
TINYTEXT or TINYBLOB
TEXT or BLOB
MEDIUMTEXT or MEDIUMBLOB
LONGBLOB
Value CHAR(
Value Index
NULL NULL
Other vendor type MySQL type
BINARY(NUM) CHAR(NUM) BINARY
CHAR VARYING(NUM) VARCHAR(NUM)
FLOAT
FLOAT
INT
INT
INT
INT
INT
LONG VARBINARY MEDIUMBLOB
LONG VARCHAR MEDIUMTEXT
MIDDLEINT MEDIUMINT
VARBINARY(NUM) VARCHAR(NUM) BINARY
Column type Storage required
TINYINT
SMALLINT
MEDIUMINT
INT
INTEGER
BIGINT
FLOAT(X)
FLOAT
DOUBLE
DOUBLE PRECISION
REAL
DECIMAL(M
NUMERIC(M
Column type Storage required
DATE
DATETIME
TIMESTAMP
TIME
YEAR
Column type Storage required
CHAR(M) M bytes
VARCHAR(M) L+
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
ENUM(
SET(
From:http://tw.wingwit.com/Article/program/MySQL/201311/29393.html