MySQL数据库管理

一、使用MySQL数据库

1.1查看数据库结构

1.查看当前服务器中的数据库

2.查看当前数据库中有哪些表

3.查看表的结构

        数据库目前标准的指令集是 SQL。SQL 是 Structured Query Language 的缩写,即结构化查询语言。它是 1974 年由 Boyce 和 Chamberlin 提出来的,1975~1979 年 IBM 公司研制的关系数据库管理系统原型 System只实现了这种语言。经过多年的发展,SQL语言得到了广泛的应用。

        SQL语言主要由以下几部分组成。

  • DDL(Data Definition Language,数据定义语言):用来建立数据库、数据库对象和定义字段,如 CREATE、ALTER、DROP.
  • DML(Data Manipulation Language,数据操纵语言):用来插入、删除和修改数据库中的数据,如INSERT、UPDATE、DELETE。
  • DQL(Data Query Language,数据査询语言):用来査询数据库中的数据,如 SELECT。
  • DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如 COMMIT、ROLLBACK、GRANT、REVOKE.
[root@localhost ~]# mysql -u root -ppwd123
mysql> show databases;
mysql> use mysql
mysql> show tables;
mysql> describe user;
mysql> select * from user\G;

 备注:

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

  • mysql:是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表

1.2创建及删除数据库和表

1.创建新库

mysql> create database auth;

2.创建新表

mysql> use auth;
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));

备注:

DEFAULT ''  密码默认为空

注意:

5.7以前的版本的password()加密函数可以生成16位密文,5.7后的password()函数可以生成41位的密文,其算法为mysql_native_password设置密码字段的时候要考虑加密,提供的字符长度要够用。,否则在添加记录时,如果使用了password()加密函数保存密码字段,会提示字符长度错误。

8.0的mysql已经弃用password()

3.删除一个数据表

mysql> DROP TABLE auth.users;

4.删除一个数据库

mysql>DROP DATABASE auth; 

SQL语言

DDL:数据定义语言(create、drop、alter)

DML:数据操纵语言(insert、update、delete)

DQL:数据查询语言(select、show、describe)

DCL:数据控制语言(grant、revoke、commit、rollback)

1.3管理表中的数据记录

1.插入数据记录

mysql>use auth;
mysql>INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD ('123456')); 
mysql>INSERT INTO users VALUES('lisi', PASSWORD('654321'));

2.查询数据记录

mysql>select * from auth.users;
mysql>SELECT user_name,user_passwd FROM auth.users WHERE user_name='zhangsan';

3.修改数据记录

mysql>UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name= 'lisi'; 
mysql>SELECT * FROM auth.users;

mysql>UPDATE mysql.user SET authentication_string=PASSWORD('123457') WHERE user='root';
mysql>FLUSH PRIVILEGES; /

[root@www ~]# mysqladmin -u root -p'123457' password '123456'

4.删除数据记录

mysql>DELETE FROM auth.users WHERE user_name='lisi'; 
mysql>SELECT * FROM auth.users; 

1.4数据库表高级操作

1.克隆表

mysql>create table user01 like auth.users;     //通过 LIKE 方法,复制 users 表生成 tmp 表,注意,此表为空
mysql>insert into user01 select * from auth.users;     //通过 player 表生成 tmp 表内数据记录 

2.删除表

mysql> delete from user01 where user_name='zhangsan';
mysql>delete from user01; 
mysql>insert into user01 select * from auth.users;
mysql>truncate table user01; 
mysql>select count(*) from user01;

备注:

truncate和delete的区别:

truncate删除表中的内容,不删除表结构,释放空间; 不记录日志

delete删除表中的内容,不删除表结构,但不释放空间 记录日志(二进制事务日志)

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

delete删除数据后只会从删除前的最后一行续写;内存空间上,truncate省空间

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

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

truncate和drop后面只能加上表名,直接删除表,无法where

drop table 表名  删除表,内容连带结构一起删除;

3.临时表

mysql>select * from mytmp; 		//查看 mytmp 表是否存在 

mysql>CREATE TEMPORARY TABLE `mytmp` ( 
`id` int(10) NOT NULL AUTO_INCREMENT, 
`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
 `level` int(10) NOT NULL, 
PRIMARY KEY (id)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 		//创建临时表 
mysql> insert into mytmp(name,level) values('aa',10); 		//插入数据 
Query OK, 1 row affected (0.01 sec) 
mysql>select * from mytmp; 
mysql>quit //退出当前连接 
Bye 
mysql>select * from mytmp;     //重新连接 MySQL 之后查看临时表状态

二、数据库用户授权

1.授予权限

mysql>GRANT select ON auth.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';

2.查看权限

mysql> SHOW GRANTS FOR 'zhangsan'@'localhost';

3.验证权限

[root@localhost ~]# mysql -u zhangsan -p123456
mysql> select * from auth.users;
mysql> select * from mysql.user;

备注:

zhangsan用户可以查看auth数据库的表,但不能查看mysql数据库的表。

4.撤销权限

mysql> revoke all on auth.* from zhangsan@'localhost';

[root@localhost ~]# mysql -u zhangsan -p123456
mysql> select * from mysql.user;

撤销权限后,已经无法查看auth中的表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值