MySQL数据库管理

目录

一、使用ySQL数据库

1.查看数据库结构

2.查看数据库中的表

3.查看表的结构

21.SQL语言

3.创建数据库

4.查询数据记录

(1)显示表的信息内容

(2) 显示列

(3)显示指定行

5. updata 更新

 6.delete 删除

 7.临时表

二、数据库用户授权

2.查看授权

3.撤销权限


一、使用MySQL数据库

1.查看数据库结构

show databases:用于查看数据表中所包含的数据库。

mysql> show databases;      
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

备注:

  • information_schema数据库:保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等
  • performance_schema:用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况
  • mysql:是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表

2.查看数据库中的表

show tables语句中:用于查看数据库中所包含的表。在此之前应该使用use切换到所使用的数据库。

mysql> use mysql;
Database changed

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
。。。。。。
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

备注:

      MySQL数据库数据文件存放在/usr/local/mysql/data目录下,每个数据对应三个文件,拓展名为“.frm”,“.MYD”和“.MYI”。

      其中,“.frm” 文件存放了与表相关的元数据(meta);“.MYD” 是MySQL存储引擎专用,存放MYSQKL表的数据;“.MYI”主要存放存放MyISAM索引的相关信息。

3.查看表的结构

mysql> use mysql;
Database changed

 mysql> describe user;
+-----------------------------------+------+-----+--------+-------+
| Field         | Type           | Null | Key | Default   | Extra |
+-----------------------------------+------+-----+--------+-------+
| Host          | char(60)       | NO   | PRI |           |       |
| User          | char(32)       | NO   | PRI |           |       |
| Select_priv   | enum('N','Y')  | NO   |     | N                     

21.SQL语言

DDL(data  definition  language):数据定义语言(create创建、drop删除、alter修改)

DML(data manipuation  language):数据操纵语言(insert插入、update更新、delete删除)

DQL(data  query  language):数据查询语言(select选择、查询  show 查询、describe)

DCL(data control  language):数据控制语言(grant授权、revoke撤销授权、commit提交、rollback回滚)

3.创建数据库

mysql> create database auth;       (创建新库)
Query OK, 1 row affected (0.00 sec)
mysql> use auth
Database changed

mysql> create table users (user_name char(20),user_pass char(50));
Query OK, 0 rows affected (0.02 sec)

mysql> describe users;       (查看表的结构)
+-----------+----------+------+-----+---------+-------+
| Field     | Type     | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| user_name | char(20) | YES  |     | NULL    |       |
| user_pass | char(50) | YES  |     | NULL    |       |
+-----------+----------+------+-----+---------+-------+

mysql> insert into users values('zhangsan',password('123'));    (添加表的信息)
mysql> insert into users values('lisi',password('123'));

4.查询数据记录

(1)显示表的信息内容

mysql> select * from users;      (显示表的信息内容)
+-----------+-------------------------------------------+
| user_name | user_pass                                 |
+-----------+-------------------------------------------+
| zhangsan  | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| lisi      | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+-----------+-------------------------------------------+

(2) 显示列

mysql> select user_name from users;
+-----------+
| user_name |
+-----------+
| zhangsan  |
| lisi      |
+-----------+

(3)显示指定行

mysql> select * from users where user_name='zhangsan';
+-----------+-------------------------------------------+
| user_name | user_pass                                 |
+-----------+-------------------------------------------+
| zhangsan  | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+-----------+-------------------------------------------+

5. updata 更新

更新zhangsan用户的密码。

mysql> update users set user_pass=password('pwed1234') where user_name='zhangsan';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

更改密码
方式一
mysql> set password=password('pwd123');
Query OK, 0 rows affected, 1 warning (0.00 sec)

方法二
[root@localhost ~]# mysqladmin -uroot -ppwd123 password '123456'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@localhost ~]# mysql -uroot -p123456
mysql>

会存在警告信息,提醒在命令行修改密码不安全。

方法三:

mysql> select * from mysql.user\G
mysql> update mysql.user set authentication_string=password('pwd123') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1
 

mysql> flush privileges;    (数据更新)
Query OK, 0 rows affected (0.01 sec)
 

 6.delete 删除

(delete  from  +表  where 表达式)   
( truncate  +表)

mysql> delete from auth.users where user_name='lisi';
Query OK, 1 row affected (0.01 sec)

truncate和delete的区别:

(1)
truncate删除表中的内容,不删除表结构,释放空间;

delete删除表中的内容,不删除表结构,但不释放空间

(2)
truncate删除数据后重新写数据会从1开始,

delete删除数据后只会从删除前的最后一行续写(延续标识列,不会从头开始);内存空间上,truncate省空间

(3)
delete属于DML语句,而truncate和drop都属于DDL语句

delete可以在后续加上where进行针对行的删除

truncate和drop后面只能加上表名,直接删除表,无法where。
drop table 表名  删除表,内容连带结构一起删除;

 7.临时表

mysql> create temporary table user01 (id int(10),name char(20));

备注:
临时表在退出MySQL之后,自动消失。
 

二、数据库用户授权

1.给予授权

mysql> grant select on auth.* to 'zhangsan'@'localhost' identified by '123456';
Query OK, 0 rows affected, 2 warnings (0.00 sec)

备注:
auth.*   auth库的所有表

*.*    所有库的所有表

2.查看授权

mysql> show grants for 'zhangsan'@'localhost';
+----------------------------------------------------+
| Grants for zhangsan@localhost                      |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO 'zhangsan'@'localhost'       |
| GRANT SELECT ON `auth`.* TO 'zhangsan'@'localhost' |
+----------------------------------------------------+

3.撤销权限

mysql> revoke  all on auth.* from 'zhangsan'@'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)

  • 39
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值