mysql database manual(mysql資料庫手冊)

gamebus發表於2021-09-09

           2.1登入到mysql控制檯[使用者名稱為root,密碼預設為空]
切換到mysql的bin目錄cd d:/wamp/mysql/bin
登入到mysql控制檯
語法:mysql -h hostname -u username -p
連線到另一臺主機
程式碼:mysql -h 192.168.1.1 -u root -p
password:直接按回車
連線到本機
程式碼:mysql -h 127.0.0.1 -u root -p
password:直接按回車
出現mysql>表示登陸到mysql控制檯成功
2.2退出mysql控制檯
mysql>exit;

3.1檢查所有mysql資料庫清單;
語法:mysql> show databases;
程式碼:mysql> show databases;

3.2顯示資料庫中所有表的清單
檢視當前資料庫中的表
語法1:mysql> show tables;
程式碼1:mysql> show tables;

3.3檢視其它資料庫jxc中的表
語法1:mysql> show tables from databasename;
程式碼1:mysql> show tables from jxc;

4.建立/刪除/選擇資料庫
建立jxc資料庫:
語法:mysql> create database databasename;
程式碼:mysql> create database jxc;
刪除jxc資料庫:
語法:mysql> drop database databasename;
程式碼:mysql> create database abc;
程式碼:mysql> drop database abc;
選擇jxc資料庫:
語法:mysql> use database;
程式碼:mysql> use jxc;


5檢視一個表的資料結構
5.1 describte檢視錶customers結構
語法1:mysql> describe tablename;
程式碼1:mysql> describe customers;
5.2.show columns檢視錶customers;結構
語法1:mysql> show columns from tablename;
程式碼1:mysql> show columns from customers;

5.3.檢視一個表的指定列名的資料結構
語法1:mysql> show index from tablename column;
程式碼1:mysql> show index from customers name;

5.4.檢視一個表customers的索引
語法1:mysql> show index from tablename;
程式碼1:mysql> show index from customers;

6.資料常用操作(select,insert,update,delete)
6.1 select選擇:
語法:select * from [表名1,表名1,,,] where [條件範圍]
程式碼:select * from orders where orderid>100;

6.2 insert插入
語法:insert into table1(column1,column,,,) values(value1,value2,,,);
程式碼:insert into books(isbn,author,title,price) values('iso-902126','jahn.D','mysql6.0',99.0);

6.3 update 更新:
語法:update table1 set [列名]=[新資料] where [條件範圍]
程式碼:update books set title="Thinking in Java" where isbn='iso-902126';

6.4刪除:
語法:delete from [表名] where [條件範圍]
程式碼:delete from books where isbn='iso-902126';

6.5其它方法
查詢:select * from table1 where field1 like '%value1%' ---like的語法很精妙
排序:select * from table1 order by field1,field2 [desc]
總數:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1



7.用grant建立資料庫的使用者和許可權
GRANT命令語法:
GRANT [許可權列表1],[許可權列表2]
ON [資料庫.表名]
TO [使用者名稱@主機名]
IDENTIFIED BY '密碼';

程式碼實現1:
grant select,insert,delete,update
on discuz.* to jake@localhost
identified by '201314';
功能說明
把在資料庫discuz所有表的select,insert,delete,update這4個許可權
新增到新使用者jake,密碼為'201314';

程式碼實現2:
grant all
on discuz.* to tom@localhost
identified by '123456';
把在資料庫discuz全部許可權所有表新增到新使用者tom,密碼為'123456';

[許可權列表1]選項如下
select 表,列
insert 表,列
udpate 表,列
delete 表
index 表
alter 表
create 資料庫,表
drop 資料庫,表


[許可權列表2]選項如下
create temporary tables 允許使用temporary關鍵字
file 允許資料庫匯入和匯出到檔案
lock tables 允許使用lock talbes命令
reload 允許重新載入授權表
show databases 允許檢視所有的資料庫清單
shutdown 允許使用關閉MYSQL

all 上面所以許可權
usage 允許只登入,但不允許任何操作

[資料庫.表名]選項如下
資料庫.表名 選擇資料庫中一個表給XX使用者
資料庫.* 選擇資料庫中所有表給XX使用者


8.revoke取消使用者和使用者許可權
revoke格式:
revoke [許可權列表1],[許可權列表2] privileges,[columns]
ON [資料庫.表名]
FROM [使用者名稱@主機名]

程式碼:
先授權給laoliu(老劉)
grant all
on books.*
to laoliu
identified by 'laoliu11';

撒去一部分許可權
revoke alter,create,drop
on books.*
from laoliu;
撒去laoliu的所有許可權
revoke all
on books.*
from laoliu;


9.新增MYSQL使用者其它方法
shell> mysql -u root -p1234 mysql
mysql> insert into user(Host,User,Password) values ('localhost','backup','databse');
新增一個來自本機的mysql 使用者backup,口令為:1234

shell>mysql –u root –p
mysql>GRANT FILE ON *.* TO backup@192.168.1.200 IDENTIFIED BY '1234';
mysql>/exit
開放一個賬號backup密碼1234給來自IP:192.168.1.200有檔案處理的許可權



10.建立表/修改表/刪除表//最佳化表

10.1建立表
語法:create table tablename(columns,...)
程式碼:
create table order_items
(orderid int unsigned not null,
isbn char(13) not null,
quantity tinyint unsigned,
primary key (orderid,isbn)
);

10.2修改表
10.2.1新增/刪除一列
語法:alter table [表名] add column [列名] [型別];
在表中新增一列remark
程式碼:alter table order_items add column remark char(50);
刪除一列
語法:alter table [表名] drop column [列名];
從表中刪除一列remark
alter table order_items drop column remark;

10.2.2新增/刪除主鍵
新增orderid,isbn為主鍵
語法:alter table [表名] add primary key [列名1,列名1];
程式碼:alter table order_items add primary key (orderid,isbn);
刪除主鍵
語法:alter table [表名] drop primary key
程式碼:Alter table tabname drop primary key

10.2.3建立/刪除索引
建立索引
語法:create index [索引名] on [表名] (列名);
程式碼:create index orderid_ix on orders (orderid);
刪除索引
語法:drop index [索引名] on [表名] (列名);
程式碼:drop index orderid_ix on orders;

10.3刪除表:
刪除表
語法:drop table [表名]
程式碼:drop table orders;

10.4最佳化表:
當一個表的資料有上萬行,訪問速度變慢,就必須為它們進行最佳化
通常的方式是做出一個optmize.sql檔案,
直接匯入這個最佳化指令碼檔案進行批次最佳化一些關鍵的表,以提高訪問速度

最佳化表customers資料(customers)
語法:mysql>optmize table tablename;
程式碼:mysql>optmize table customers;

10.5 用命令列載入一個new_tb.sql檔案
從而讓MYSQL一次批次執行上*SQL檔案中的在量的sql語句
1.文字檔案做好sql命令集合,然後複製到命令列一個個的執行
2.如果表太多的話,直接存為*.sql檔案,然後用命令裝入檔案

格式: mysql -h [主機IP] -u [使用者名稱] -D [資料庫名] -p 執行cmd
cd d:/wamp/mysql/bin
mysql -h 127.0.0.1 -u root -D pubs -p 上面就是用mysql把d:/wamp/mysql/bin/new_tb.sql檔案載入到books資料庫,
注意:資料庫pubs必須存在和-D要大寫

new_tb.sql檔案內容(此檔案的SQL命令是可以存1000條以上的)
create table customers
(customerid int unsigned not null auto_increment primary key,
name char(50) not null,
address char(100) not null,
city char(30) not null
);

create table orders
(orderid int unsigned not null auto_increment primary key,
customerid int unsigned not null,
amount float(6,2),
date date not null
);

create table books
(isbn char(13) not null primary key,
author char(50),
title char(100),
price float(6,2)
);

create table order_items
(orderid int unsigned not null,
isbn char(13) not null,
quantity tinyint unsigned,
primary key (orderid,isbn)
);

create table book_reviews
(isbn char(13) not null primary key,
review text
);

執行OK後,再進行檢查表是否自動建立OK?
c:>mysql -h 127.0.0.1 -u root -p
mysql>show tables from pubs;
結果顯示以上5個表都已經建立OK;


11.表的檢視建立與刪除
建立檢視
語法:create iview [檢視名] as [select 語句);
程式碼:create view v_orders as select * from orders;
刪除檢視
語法:drop iview [檢視名]
程式碼:create view v_orders
             

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4687/viewspace-2803842/,如需轉載,請註明出處,否則將追究法律責任。

相關文章