MySQL第二天

MySQL第二天


文章目录

  • MySQL第二天
  • 一、第一题 题目
  • 二、第二题题目


一、第一题 题目

MySQL第二天_第1张图片

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);

MySQL第二天_第2张图片

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

MySQL第二天_第3张图片

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

MySQL第二天_第4张图片

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

MySQL第二天_第5张图片

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

MySQL第二天_第6张图片

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

MySQL第二天_第7张图片

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

MySQL第二天_第8张图片

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

MySQL第二天_第9张图片

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

MySQL第二天_第10张图片
这个时候我们看到的引擎以及从InnoDB转换成MyAISM.

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

MySQL第二天_第11张图片
到这里外键约束就添加好了

二、第二题题目

MySQL第二天_第12张图片
MySQL第二天_第13张图片

问题一

1、先将orders表创建起来

MySQL第二天_第14张图片

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)

MySQL第二天_第15张图片

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)

MySQL第二天_第16张图片

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

MySQL第二天_第17张图片
MySQL第二天_第18张图片

问题二:

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)


MySQL第二天_第19张图片

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)

在这里插入图片描述

MySQL第二天_第20张图片
在这里插入图片描述

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

MySQL第二天_第21张图片

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

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

MySQL第二天_第22张图片
随后用MD5解密出来:
MySQL第二天_第23张图片
密码修改成功!!!!!

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';

MySQL第二天_第24张图片

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;

MySQL第二天_第25张图片

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

MySQL第二天_第26张图片

你可能感兴趣的:(mysql,adb,android)