MySQL数据库管理语句用法(增、删、改、查、授权……)

   日期:2020-09-11     浏览:94    评论:0    
核心提示:创建数据库、表语法格式示例查看数据表结构信息删除数据表示例删除数据库语法格式示例插入数据到表中语法格式示例查看表数据语法格式示例更新,改动表中数据语法格式示例删除表中数据语法格式示例克隆表克隆表描述示例创建临时表临时表概述示例用户授权管理用户授权语法格式示例删除授权语法格式示例创建数据库、表语法格式创建数据库:create database 数据库名创建数据表:create table 表名 (字段含义......示例mysql> use bbs;Database changed.

  • 创建数据库、表
    • 语法格式
    • 示例
  • 查看数据表结构信息
  • 删除数据表
    • 示例
  • 删除数据库
    • 语法格式
    • 示例
  • 插入数据到表中
    • 语法格式
    • 示例
  • 查看表数据
    • 语法格式
    • 示例
  • 更新,改动表中数据
    • 语法格式
    • 示例
  • 删除表中数据
    • 语法格式
    • 示例
  • 克隆表
    • 克隆表描述
    • 示例
  • 创建临时表
    • 临时表概述
    • 示例
  • 用户授权管理
    • 用户授权
      • 语法格式
      • 示例
    • 删除授权
      • 语法格式
      • 示例

创建数据库、表

语法格式

创建数据库: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’

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服