MySQL第二天

奋斗吧
奋斗吧
擅长邻域:未填写

标签: MySQL第二天

2023-07-11 18:23:31 92浏览

这个时候我们看到的引擎以及从InnoDB转换成MyAISM.到这里外键约束就添加好了。

MySQL第二天



一、第一题 题目

在这里插入图片描述

1、先创建该customers表
create table customers ( c_num int primary key auto_increment, 
                         c_name varchar(50), 
                         c_contact varchar(50), 
                         c_city varchar(50),
                         c_birth datetime not null);

在这里插入图片描述

2、修改c_name的数据类型
    alter table customers modify c_name varchar(70);

在这里插入图片描述

3、将c_contract的名称改为c_phone
    mysql> alter table customers
        -> change c_contact c_phone varchar(50);

在这里插入图片描述

4、增加c_gender字段,数据类型为char(1)
    mysql> alter table customers
        -> add c_gender char(1);

在这里插入图片描述

5、将表名称修改为customers_info
mysql> rename table customers to customers_info;

在这里插入图片描述

6、删除c_city字段
mysql> alter table customers_info drop c_city;

在这里插入图片描述

7、修改数据库的存储引擎为MyISAM
      查看当前的存储引擎
       show engines;

在这里插入图片描述

8、查看当前的引擎状态 发现是inodb引擎 现在转换引擎

在这里插入图片描述

8、输入命令
 mysql> alter table customers_info engine=MyISAM;

在这里插入图片描述
这个时候我们看到的引擎以及从InnoDB转换成MyAISM.

9、这个时候再次去输入外键约束命令 就可以成功了
mysql->ALTER TABLE orders
       add CONSTRAINT aabbccdd 
       FOREIGN KEY c_id) REFERENCES customers(o_num);

在这里插入图片描述
到这里外键约束就添加好了

二、第二题题目

在这里插入图片描述
在这里插入图片描述

问题一

1、先将orders表创建起来

在这里插入图片描述

2、然后增加c_id的外键约束问题,在这里我遇到了一个问题,就是无法将customers表作为父表进行绑定,一直不行,后来发现了,要绑定的表和表中的列的数据类型一模一样,而且两者的储存引擎也必须一样,这样问题也可以。
mysql> ALTER TABLE orders add CONSTRAINT
       aabbccdd FOREIGN KEY (c_id) REFERENCES customers(c_num);
       Query OK, 0 rows affected (0.01 sec)

在这里插入图片描述

3、删除外键约束并且删除customers表
mysql> alter table orders drop foreign key aabbccdd;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> drop table customers;
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述

4、这个时候当orders的表和customers的存储引擎是一样的,所以就可以输入命令让二者的外键删除;这里注意外键名称未设置的话可以输入 show create tables orders;来查看它系统给你的取的名字是什么,而后就可以用下面命令删除,要是会出现第二个问题的话,应该就是无法找到系统给你设置的外键名称,这个时候就要以 表的类型名称来作为外键名称来进行下一步的删除,
mysql->alter tables orders drop forieign key aabbccdd; 这里是删除外键的第一步;
mysql> alter table orders drop index aabbccdd;这一步是删除键入外键约束的自动生成的索引,这里索引要是取了名字的就是该外键的名字,我的是aabbccdd,而如果没有取名字就跟column name一样的名字
Query OK, 0 rows affected (0.12 sec)
Records: 0  Duplicates: 0  Warnings: 0

在这里插入图片描述
在这里插入图片描述

问题二:

1、先创建Team数据库以及play数据表
mysql> use Team;
Database changed

mysql> create table player(
    -> playid int primary key,
    -> playname varchar(30) not null,
    -> teamnum int not null unique,
    -> info varchar(50));
Query OK, 0 rows affected (0.01 sec)


在这里插入图片描述

2、创建一个新用户,用户名称为account1,通过用户连接本地数据库,密码为oldpwd1.授权其用户对Team数据库中player表的select和insert权限,并授权该用户对play表中的info字段的update权限

创建用户:
mysql> create user account1@localhost identified by 'oldpwd1';
       Query OK, 0 rows affected (0.00 sec)
赋予该表的select权限和insert权限:
mysql> grant select on Team.player to account1@'localhost';
            Query OK, 0 rows affected (0.00 sec)

mysql> grant insert on Team.player to account1@'localhost';
       Query OK, 0 rows affected (0.00 sec)

赋予player表的info字段的update权限:
mysql> grant insert(info) on Team.player to account1@'localhost';
       Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、随后我们输入mysql> show grants for 'account1'@'localhost';
查看player表的权限具体是怎么样子的

在这里插入图片描述

4、修改密码,输入命令为:
mysql> alter user 'account1'@'localhost' identified by 'newpwd2';
Query OK, 0 rows affected (0.00 sec)

随后输入 select * from account1;
查看他的md5加密的密码:

在这里插入图片描述
随后用MD5解密出来:
在这里插入图片描述
密码修改成功!!!!!

5、赋予其刷新权限,先给account1一个reload权限,代码如下:
mysql> grant reload on *.* to account1@'localhost';
       Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述

6、mysql> show grants for 'account1'@'localhost';

在这里插入图片描述

7、回收信息只能一次一次回收:
mysql> revoke select on Team.player from account1@localhost;
mysql> revoke insert on Team.player from account1@localhost;
mysql> revoke update(info) on Team.player from account1@localhost;

在这里插入图片描述

8、删除用户
mysql> drop user account1@localhost;
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695