程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL安裝使用手冊(下)

MySQL安裝使用手冊(下)

編輯:關於MYSQL數據庫
<6>修改表:(alter table 表名稱,更改動作1[,更改動作2,...];
(1).增加字段:
MySQL> alter table student add saddress varchar(25);(增加字段)
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0 (2).更改字段名和字段類型(即使不改變字段類型也必須在change後給出字段的類型):
MySQL> alter table student change saddress sremark text;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0 (3).僅改變字段類型:
MySQL> alter table student modify sremark varchar(25);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0 (4).刪除字段:
MySQL> alter table student drop sremark;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0 (5).更改表名稱:
MySQL> alter table student rename to employee;
Query OK, 0 rows affected (0.00 sec)
5.表中數據的插入、刪除和修改
<1>.插入記錄
INSERT INTO 表名稱 (字段名1,字段名2,…) VALUES (字段1的值,字段2的值,…);
MySQL> insert into student(sno,sname,ssex,sbirthday,sdepa)
   -> values('0321001','Delux',default,19831211,'math');
Query OK, 1 row affected (0.03 sec) 在一個單獨的insert語句中使用多個values子句,可插入多條記錄。
<2>.刪除記錄
DELETE FROM 表名稱 WHERE 條件表達式;
MySQL> delete from student where sno='0321001';
Query OK, 1 row affected (0.02 sec)
MySQL> delete from student where left(sno,4)='0321';(刪除sno字段前四位為’0321’的所有記錄)
Query OK, 1 row affected (0.00 sec)                       
MySQL> delete from student;(一條一條的刪除全部記錄)
Query OK, 1 row affected (0.01 sec)
MySQL> truncate table student;(刪除所有記錄,先刪除表再重建表)
Query OK, 0 rows affected (0.00 sec) <3>.修改記錄
UPDATE 表名稱 SET 字段名1=字段值1[,字段名2=字段值2…] WHERE 條件表達式;
MySQL> update student set sbirthday=19841010 where sno='9810141';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
MySQL> select * from student; | sno     | sname | ssex | sbirthday  | sdepa | | 9810141 | delux | t    | 1984-10-10 | math  | 1 row in set (0.00 sec)
6.索引的創建與刪除
<1>.在創建表的同時創建索引
MySQL> create table course(
   -> cno varchar(5) not null,
   -> cname varchar(30) not null,
   -> teacher varchar(20),
   -> primary key(cno),
   -> index cna(cname)
   -> );
Query OK, 0 rows affected (0.01 sec) 如果將“index cna(cname)”改為“unique (cname)”,則創建的是UNIQUE(唯一性)索引,將不允許些字段有相同的值。 <2>向已存在的表添加索引
CREATE [UNIQUE] INDEX 索引名 ON 表名稱 (字段名1 [(長度)],…);
MySQL> create index sna on student(sname);
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0 對於類型為char和varchar的字段,建立索引時還可以指定索引長度值;對於類型為blob和text的字段,索引長度值是必須指定的。沒指定索引名時,MySQL會自動使用指定字段的字段名作為索引名。 <3>刪除索引
DROP INDEX 索引名 ON 表名稱;
MySQL> drop index sna on student;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0
7.用戶的創建和刪除
   <1>.在MySQL安裝之後會只有MySQL和test兩個數據庫,在MySQL庫中有5個授權表決定哪個用戶可以連接服務器、從哪裡連接以及連接後可以執行哪些操作。
授權表    描述 user    定義哪些用戶從哪些主機可以連接到數據庫服務器,這些用戶的密碼以及它們對系統中所有數據庫的訪問權限(全局權限) db      定義連接到數據庫服務器的那些用戶可以使用哪些數據庫,在這些數據庫中可執行哪些操作(數據庫級權限),db通常與host配合使用 host    當表db中的Host字段值為空時,由表host定義用戶可以從哪些主機連接到數據庫服務器,且不同的主機對指定的數據庫可有不同的權限 Tables_priv    定義連接到數據庫服務器的那些用戶可以訪問哪些表,以及在這些表中可以執行哪些操作(表級權限) Columnts_priv    定義連接到數據庫服務器的那些用戶可以訪問哪些字段,以及在這些字段中可以執行哪些操作(字段級權限)
<2>.創建用戶
創建新用戶“guest”,並為它設置密碼,同時允許它從任何主機連接到數據庫服務器。passWord()函數為密碼加密後保存到數據庫中。增加用戶之後必須重載MySQL授權表:
MySQL> insert into user(host,user,passWord)
    -> values('%','guest',passWord('guest'));
Query OK, 1 row affected, 3 warnings (0.05 sec)
MySQL> flush privileges;
Query OK, 0 rows affected (0.10 sec)
<3>.刪除用戶
MySQL> delete from user where user=’guest’;
Query OK, 1 row affected, 3 warnings (0.05 sec)
MySQL> flush privileges;
Query OK, 0 rows affected (0.10 sec)
<4>.更改用戶密碼
mysql> update MySQL.user set password=passWord(’123456’)
   -> where user=’guest’;用此命令修改密碼後要flush privileges
MySQL> set password for guest@’%’=passWord(’guest’);此命令不需要重載授權表
8.用戶權限的設置
   <1>.授權表user、db、host中可設置的權限。    注:表中帶“*”號的字段是授權表user、db和host共有的字段,而不帶“*”號的字段是授權表user中的字段。
字段        權限名擁有該權限的用戶可執行的操作 Select_priv *        select 數據查詢 Insert_priv *        insert 數據插入 Update_priv *        update 數據修改 Delete_priv *       delete 數據刪除 Create_priv *        create 創建數據庫和表 Drop_priv *          drop 刪除數據庫和表 Reload_priv        reload 重載/刷新MySQL服務器 Shutdown_priv         shutdown 關閉正在運行的MySQL服務器 Process_priv       process 在MySQL服務器上跟蹤一項活動 File_priv         file 在服務器上讀寫文件 Grant_priv *        grant 授予其他用戶擁有該用戶擁有的權限 References_priv *        references 創建、編輯和刪除外鍵引用 Index_priv *        Index 創建、編輯和刪除表索引 Alter_priv *         alter 修改表 Show_db_priv         Show databases 顯示可用的數據庫 Super_priv          super 執行管理命令 Create_tmp_table_priv *        Create temporary tables 創建臨時表 Lock_tables_priv *       Lock tables 創建和刪除表鎖定 Execute_priv       execute 執行被保存的程序 Repl_slave_priv       Replication slave 在復制內容中讀主二進制日志 Repl_client_priv        Replication clIEnt 在復制內容中申請主、副信息 <2>.授權表table_priv和columns_priv中權限字段和可設置的權限
表名        字段名權限集合中的成員 Tables_priv  Table_priv  Select,insert,update,delete,create,drop,grant,references,index,alter    Column_priv  Select,insert,update,references  Columns_priv  Column_priv  Select,insert,update,references 
<3>.使用授權語句grant
   GRANT 權限列表 [(字段列表)] ON 數據庫名稱.表名稱 TO 用戶名@域名或IP地址
   [IDENTIFIED BY ‘密碼值’] [WITH GRANT OPTION];
<4>.使用revoke語句撤權
   Revoke 權限列表 [(字段列表)] ON 數據庫名稱.表名稱 from 用戶名@域名或IP地址9.數據庫的備份與恢復
   備份:
   MySQLdump -u root -p --opt aaa > back_aaa
   恢復:
   MySQL -u root -p ccc < back_aaa
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved