2013年6月24日 星期一

MySQL Note 資料庫操作筆記本



MySQL中文參考手冊
http://twpug.net/docs/mysql323/manual_Tutorial.html

php利用物件導向存取mysql的方法
http://austintodo.pixnet.net/blog/post/23821431-php---mysql-%E6%95%99%E5%AD%B8


key: SQL描述不分大小寫,但是資料庫名稱與資料表名稱則區分大小寫。

@進入mysql:

in Fedora System:
service mysqld start
mysql -u root -p

完整  mysql -h hostname -u username -p (密碼)
mysql -d databasename ......  (直接開啟某資料庫登入)

@ 查詢版本等資訊
> status

@刪除Anonymous匿名者登入權限
# mysql -r root -p   (用root登入)
> use mysql
> delete from user where User='';
> quit

最後
# mysqladmin -u root -p reload 重新讀取使其生效

@建立資料庫:
mysql>  create database DbName;
key: 要有分號(;) 不然命令不會結束

@權限設定
GRANT(授與)
REVOKE(撤回)

1. Global
2. database
3. table
4. column

格式:

mysql>   GRANT privileges [colums]
              On item    (說明: dbname.tablename 可用*.*表示全部)
              TO user_name [IDENTIFIED BY 'password']
              [REQUIRE ssl_option]
              [WITH [GRANT OPTION | limit_options ] ]

範例:

設定一個管理員擁有全部權限

mysql>   grant all
             on *
             to bigbigmaster identified by 'abcd1234'
             with grant option

把他的權限全部移除

mysql>   revoke all privileges, grant
         ->  from bigbigmaster;

@ 顯示目前資料庫
> show databases;

@使用
> USE dbname;

@建立資料表
> CREATE TABLE tablename [columns];

Database 資料庫
Table 資料表
Column 欄位



@ Load一個已經輸入好的SQL檔案
> mysql -h host -u username -D dbname -p <  abcdefg.sql

@ 資料表中的指令
primary key 在此欄位的資料必須是唯一的
auto_increment  加入新資料時自動增值, 必須作為索引index ?
char (50) 指定字元型態50的字元
int  指定整數
float(6,2)  指定浮點數, 六位數, 且有兩位小數表示
date 顯示日期
not null  欄位一定要有資料, 如果欄位無資料會顯示null
unsigned
text

@ 建立table之後, 查詢table
> describe tablename;

@ 查詢有哪些table
> show tables;

@ 新增資料到資料庫
> insert into table (column 1, column 2, column 3) values
('values 1', 'values 2', 'values 3')
key: 值要加上 ' '

@ 選取資料(會顯示出所選的資料)
> select [options] items
[into fiel_details]
from table
[where conditions]
;

範例:
select  name,city,clientID  from client;
會顯示出client table中的 name, city, clientID的資料

client table
+---------+----------------+-----------------------+
|  name      |  city                |  clientID                 |
+---------+----------------+-----------------------+
|  Mary     | Taipei            |  0010052563            |
|  Joe        | Taipei            |  0010052599            |
+---------+----------------+-----------------------+

select  *  from table_name;  (選出所有的column)

select *  from table_name  where column_name =  xxx ;
(選出所有在某column 值為xxx的項目, 此處的等號是等於的意思)

select *  from table_name  where column_name =  xxx  or  yyy ;
可以加入其他比較運算 or, and, >, = < 等等

從多個資料表(table)或資料庫(database)中取出資料
select table_name.column, table_name.column from table_name;

database_name.table_name.column

找尋兩個資料表的相同欄位
在 where 中加入  table1.column  = table2.column;


left join  左側結合  on.....



##############################
End of File @


沒有留言:

張貼留言