1. 程式人生 > >資料操作之資料的增刪改

資料操作之資料的增刪改

插入資料INSERT

1. 插入完整資料(順序插入)
    語法一:
    INSERT INTO 表名(欄位1,欄位2,欄位3…欄位n) VALUES(值1,值2,值3…值n);

    語法二:
    INSERT INTO 表名 VALUES (值1,值2,值3…值n);

2. 指定欄位插入資料
    語法:
    INSERT INTO 表名(欄位1,欄位2,欄位3…) VALUES (值1,值2,值3…);

3. 插入多條記錄
    語法:
    INSERT INTO 表名 VALUES
        (值1,值2,值3…值n),
        (值1,值2,值3…值n),
        (值1,值2,值3…值n);
        
4. 插入查詢結果
    語法:
    INSERT INTO 表名(欄位1,欄位2,欄位3…欄位n) 
                    SELECT (欄位1,欄位2,欄位3…欄位n) FROM 表2
                    WHERE …;


更新資料UPDATE

語法:
    UPDATE 表名 SET
        欄位1=值1,
        欄位2=值2,
        WHERE CONDITION;

示例:
    UPDATE mysql.user SET password=password(‘123’) 
        where user=’root’ and host=’localhost’;

刪除資料DELETE

語法:
    DELETE FROM 表名 
        WHERE CONITION;

示例:
    DELETE FROM mysql.user 
        WHERE password=’’;

練習:
    更新MySQL root使用者密碼為mysql123
    刪除除從本地登入的root使用者以外的所有使用者



許可權管理

#授權表
user #該表放行的許可權,針對:所有資料,所有庫下所有表,以及表下的所有欄位
db #該表放行的許可權,針對:某一資料庫,該資料庫下的所有表,以及表下的所有欄位
tables_priv #該表放行的許可權。針對:某一張表,以及該表下的所有欄位
columns_priv #該表放行的許可權,針對:某一個欄位

#按圖解釋:
user:放行db1,db2及其包含的所有
db:放行db1,及其db1包含的所有
tables_priv:放行db1.table1,及其該表包含的所有
columns_prive:放行db1.table1.column1,只放行該欄位
#建立使用者
create user 'egon'@'1.1.1.1' identified by '123';
create user 'egon'@'192.168.1.%' identified by '123';
create user 'egon'@'%' identified by '123';


#授權:對資料夾,對檔案,對檔案某一欄位的許可權
檢視幫助:help grant
常用許可權有:select,update,alter,delete
all可以代表除了grant之外的所有許可權

#針對所有庫的授權:*.*
grant select on *.* to 'egon1'@'localhost' identified by '123'; #只在user表中可以查到egon1使用者的select許可權被設定為Y

#針對某一資料庫:db1.*
grant select on db1.* to 'egon2'@'%' identified by '123'; #只在db表中可以查到egon2使用者的select許可權被設定為Y

#針對某一個表:db1.t1
grant select on db1.t1 to 'egon3'@'%' identified by '123';  #只在tables_priv表中可以查到egon3使用者的select許可權

#針對某一個欄位:
mysql> select * from t3;
+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | egon1 |   18 |
|    2 | egon2 |   19 |
|    3 | egon3 |   29 |
+------+-------+------+

grant select (id,name),update (age) on db1.t3 to 'egon4'@'localhost' identified by '123'; 
#可以在tables_priv和columns_priv中看到相應的許可權
mysql> select * from tables_priv where user='egon4'\G
*************************** 1. row ***************************
       Host: localhost
         Db: db1
       User: egon4
 Table_name: t3
    Grantor: 
[email protected]
Timestamp: 0000-00-00 00:00:00 Table_priv: Column_priv: Select,Update row in set (0.00 sec) mysql> select * from columns_priv where user='egon4'\G *************************** 1. row *************************** Host: localhost Db: db1 User: egon4 Table_name: t3 Column_name: id Timestamp: 0000-00-00 00:00:00 Column_priv: Select *************************** 2. row *************************** Host: localhost Db: db1 User: egon4 Table_name: t3 Column_name: name Timestamp: 0000-00-00 00:00:00 Column_priv: Select *************************** 3. row *************************** Host: localhost Db: db1 User: egon4 Table_name: t3 Column_name: age Timestamp: 0000-00-00 00:00:00 Column_priv: Update rows in set (0.00 sec) #刪除許可權 revoke select on db1.* to 'alex'@'%'; 許可權相關操作