- 創建資料庫、表
- 語法格式
- 示例
- 查看資料表結構資訊
- 洗掉資料表
- 示例
- 洗掉資料庫
- 語法格式
- 示例
- 插入資料到表中
- 語法格式
- 示例
- 查看表資料
- 語法格式
- 示例
- 更新,改動表中資料
- 語法格式
- 示例
- 洗掉表中資料
- 語法格式
- 示例
- 克隆表
- 克隆表描述
- 示例
- 創建臨時表
- 臨時表概述
- 示例
- 用戶授權管理
- 用戶授權
- 語法格式
- 示例
- 洗掉授權
- 語法格式
- 示例
創建資料庫、表
語法格式
創建資料庫:create database 資料庫名
創建資料表:create table 表名 (欄位含義......
示例
mysql> use bbs;
Database changed
mysql> create table users (user_name char(16) not null,user_password char(48) default ‘’,primary key (user_name));
Query OK, 0 rows affected (0.01 sec)
mysql> create table ltp (user_name char(16) not null,user_password char(48) default ‘’,primary key (user_name));
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
±--------------+
| Tables_in_bbs |
±--------------+
| ltp |
| users |
±--------------+
2 rows in set (0.00 sec)
查看資料表結構資訊
mysql> describe users;
±--------------±---------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±--------------±---------±-----±----±--------±------+
| user_name | char(16) | NO | PRI | NULL | |
| user_password | char(48) | YES | | | |
±--------------±---------±-----±----±--------±------+
2 rows in set (0.02 sec)
mysql> desc ltp;
±--------------±---------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±--------------±---------±-----±----±--------±------+
| user_name | char(16) | NO | PRI | NULL | |
| user_password | char(48) | YES | | | |
±--------------±---------±-----±----±--------±------+
2 rows in set (0.00 sec)
洗掉資料表
drop database 資料庫名;
示例
mysql> drop table bbs.users; ##洗掉bbs庫中的users表
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
±--------------+
| Tables_in_bbs |
±--------------+
| ltp |
±--------------+
1 row in set (0.00 sec)
洗掉資料庫
語法格式
drop table [資料庫名.]表名;
示例
mysql> show databases;//查看資料庫串列
±-------------------+
| Database |
±-------------------+
| information_schema |
| bbs |
| myadm |
| mysql |
| performance_schema |
| sys |
±-------------------+
6 rows in set (0.00 sec)
mysql> drop database myadm; //洗掉myadm資料庫
Query OK, 297 rows affected (0.04 sec)
mysql> show databases; //再次查看串列,確認洗掉
±-------------------+
| Database |
±-------------------+
| information_schema |
| bbs |
| mysql |
| performance_schema |
| sys |
±-------------------+
5 rows in set (0.00 sec)
插入資料到表中
語法格式
insert into 表名(欄位1,欄位2,.....) values(欄位1的值,欄位2的值,.....)
示例
mysql> insert into ltp(user_name,user_password) values(‘lisi’,password(‘123456’));
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> insert into ltp values(‘zhangshan’,password(‘123456’));
Query OK, 1 row affected, 1 warning (0.01 sec)
查看表資料
語法格式
select 欄位名1,欄位名2......from 表名 where 條件運算式
示例
mysql> select * from ltp; //可以查看到上例中插入的資料
±----------±------------------------------------------+
| user_name | user_password |
±----------±------------------------------------------+
| lisi | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhangshan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
±----------±------------------------------------------+
2 rows in set (0.00 sec)
更新,改動表中資料
語法格式
update [庫名.]表名 set 欄位名1=值1[,欄位名2=值2] where 條件運算式
示例
mysql> insert into ltp value(‘lisi’,‘123456’);
Query OK, 1 row affected (0.00 sec)
mysql> select * from ltp;
±----------±------------------------------------------+
| user_name | user_password |
±----------±------------------------------------------+
| lisi | 123456 |
| zhangshan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
±----------±------------------------------------------+
2 rows in set (0.00 sec)
mysql> update ltp set user_password=246800 where user_name=‘lisi’; ##將lisi密碼改為2468800
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from ltp; ##查看,更改成功
±----------±------------------------------------------+
| user_name | user_password |
±----------±------------------------------------------+
| lisi | 246800 |
| zhangshan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
±----------±------------------------------------------+
2 rows in set (0.00 sec)
洗掉表中資料
語法格式
delete from 表名 where 條件運算式
示例
mysql> select * from ltp; //查看ltp表資料
±----------±------------------------------------------+
| user_name | user_password |
±----------±------------------------------------------+
| lisi | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhangshan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
±----------±------------------------------------------+
mysql> delete from ltp where user_name=‘lisi’; //洗掉用戶lisi的資料
Query OK, 1 row affected (0.00 sec)
mysql> select * from ltp; //查看洗掉成功
±----------±------------------------------------------+
| user_name | user_password |
±----------±------------------------------------------+
| zhangshan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
±----------±------------------------------------------+
1 row in set (0.00 sec)
克隆表
克隆表描述
在MySQL的開發和維護程序中,會有原樣拷貝某個資料表的需求,怎么樣才能夠快速、
完整的拷貝資料表呢?先來看一下CREATE TABLE new_tablename AS SELECT這個陳述句
示例
mysql> show create table bbs.ltp; //查看資料表結構資訊,與describe相似,標記部分內容可以直接復制,更改表名,達到可以表的作用
……省略部分
| ltp | CREATE TABLE “ltp” (
“user_name” char(16) NOT NULL,
“user_password” char(48) DEFAULT ‘’,
PRIMARY KEY (“user_name”)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
……省略部分
1 row in set (0.00 sec)
mysql> CREATE TABLE “ltpbak” ( //創建克隆表,只有源表屬性,沒有資料
-> “user_name” char(16) NOT NULL,
-> “user_password” char(48) DEFAULT ‘’,
-> PRIMARY KEY (“user_name”)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into ltpbak select * from ltp; //匯入資料,完成克隆
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from ltpbak;
±----------±------------------------------------------+
| user_name | user_password |
±----------±------------------------------------------+
| lisi | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhangshan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
±----------±------------------------------------------+
2 rows in set (0.00 sec)
創建臨時表
臨時表概述
MySQL的臨時表,顧名思義,就是臨時建立的表,并不會長期存在,主要用于保存一
些臨時資料,臨時表有個特性,就是只在當前連接可見,當前連接下可執行增刪改查等操作,
當連接被關閉后,臨時表就會被MySQL洗掉,相關的資源也會被釋放,
示例
mysql> CREATE temporary TABLE “ltp123” ( ##同樣可以克隆一個臨時表,使用temporary,方法與克隆表相似,create語法中加上temporary,
-> “user_name” char(16) NOT NULL,
-> “user_password” char(48) DEFAULT ‘’,
-> PRIMARY KEY (“user_name”)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into ltp123 values(1,2) ;
Query OK, 1 row affected (0.01 sec)
mysql> select * from ltp123;
±----------±--------------+
| user_name | user_password |
±----------±--------------+
| 1 | 2 |
±----------±--------------+
1 row in set (0.00 sec)
mysql> \q
Bye
[root@localhost ~]# mysql -u root -p //重新登錄
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql> select * from ltp123; ##重新登入后之前創建的臨時表消失
ERROR 1046 (3D000): No database selected
創建自定義臨時表
mysql> create temporary table ltptem(students char(16) not null,class char(16) not null,primary key (students)); ##創建自定義的臨時表
mysql> insert into ltptem values(‘li’,‘2’);
Query OK, 1 row affected (0.00 sec)
mysql> select * from ltptem;
±---------±------+
| students | class |
±---------±------+
| li | 2 |
±---------±------+
1 row in set (0.00 sec)
用戶授權管理
用戶授權
語法格式
grant 權限串列 on 資料庫名.表名 to 用戶名@來源地址 [identified by '密碼']
示例
mysql> grant select on bbs.* to ‘ltp_admin’@‘localhost’ identified by ‘123456’;
Query OK, 0 rows affected, 1 warning (0.00 sec) ##授予本地登入的ltp_admin管理賬號查詢bbs資料庫的權限,身份驗證碼為“123456”
mysql> \q 退出
Bye
[root@localhost ~]# mysql -u ltp_admin -p ##用ltp_admin管理賬號登入
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql> show grants; ##查看授權,可以看到有select查看權限
±---------------------------------------------------+
| Grants for ltp_admin@localhost |
±---------------------------------------------------+
| GRANT USAGE ON . TO ‘ltp_admin’@‘localhost’ |
| GRANT SELECT ON “bbs”.* TO ‘ltp_admin’@‘localhost’ |
±---------------------------------------------------+
2 rows in set (0.00 sec)
洗掉授權
語法格式
revoke 權限串列 on 資料庫名.表名 from 用戶名@來源地址
示例
mysql> revoke all on bbs.* from ‘ltp_admin’@‘localhost’; ##洗掉本地訪問的ltp_admin用戶所有關于bbs資料庫的授權
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for ‘ltp_admin’@‘localhost’; ## 查看ltp_admin的授權情況,發現已無授權
±----------------------------------------------+
| Grants for ltp_admin@localhost |
±----------------------------------------------+
| GRANT USAGE ON . TO ‘ltp_admin’@‘localhost’ |
±----------------------------------------------+
1 row in set (0.01 sec)
mysql> \q
Bye
[root@localhost ~]# mysql -u ltp_admin -p ## 進入ltp_admin賬戶測驗
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql> use bbs ## 發現使用bbs資料庫的權限也沒有了
ERROR 1044 (42000): Access denied for user ‘ltp_admin’@‘localhost’ to database ‘bbs’
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/13342.html
標籤:其他
