- 创建数据库、表
- 语法格式
- 示例
- 查看数据表结构信息
- 删除数据表
- 示例
- 删除数据库
- 语法格式
- 示例
- 插入数据到表中
- 语法格式
- 示例
- 查看表数据
- 语法格式
- 示例
- 更新,改动表中数据
- 语法格式
- 示例
- 删除表中数据
- 语法格式
- 示例
- 克隆表
- 克隆表描述
- 示例
- 创建临时表
- 临时表概述
- 示例
- 用户授权管理
- 用户授权
- 语法格式
- 示例
- 删除授权
- 语法格式
- 示例
创建数据库、表
语法格式
创建数据库: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’