03MySQL数据库表练习

第一题(1)创建数据库

mysql> create database Market;

(2)创建数据表customers,在c_num字段上添加主键约束和自增约束,在c_birth字段上添加非空约束。

mysql> use  Market;    #使用库
#创建表
mysql> create table customers (
c_num int(11) primary key auto_increment,
c_name varchar(50),
c_city varchar(50),
c_birth datetime not null
);

查看一下表结构:

(3)将c_contact字段插入到c_birth字段后面。

mysql> alter table customers add c_contact varchar(50) after c_birth;

查看一下结果:

(4)将c_name字段数据类型改为VARCHAR(70)。

mysql> alter table customers modify c_name varchar(70);

查看一下结果:

(5)将c_contact字段改名为c_phone。

mysql> alter table customers change c_contact c_phone varchar(50);

查看一下结果:

(6)增加c_gender字段,数据类型为CHAR(1)。

mysql> alter table customers add c_gender char(1);

查看一下结果:

(7)将表名修改为customers_info。

alter table customers rename customers_info;

查看一下结果:

(8)删除字段c_city。

mysql> alter table customers_info drop c_city;

查看一下结果:

(9)修改数据表的存储引擎为MyISAM。

先查看一下表的存储引擎是InnDB。

mysql> alter table customers_info ENGINE=MyISAM; #修改表存储引擎命令

 查看修改后的结果:

 第二题

(1)创建数据表orders,在o_num字段上添加主键约束和自增约束,在c_id字段上添加外键约束,关联customers表中的主键c_num。

mysql> create table orders (
o_num int(11) primary key auto_increment,
o_date date,
c_id int(11),
foreign key(c_id) references customers(c_num)
);

查看表结构:

注:因为创建外键需要字段的类型和长度都要保持一致,所以我们在创建orders表的时候把题目中c_id字段类型改成与customers表的c_num字段类型和长度一样,即 int(11)。还有一点因为我们在第一题中把customers表的存储引擎修改成了MyISAM类型,MyISAM类型存储引擎不支持创建外键,所以我们需要把customers表的存储引擎修改成InnoDB类型,修改命令为:

mysql> alter table customers_info ENGINE=InnoDB; 

(2)删除orders表的外键约束,然后删除表customers。

删除外键名 需要查看表的外键名

mysql> show create table orders;

mysql> alter table orders drop foreign key orders_ibfk_1;

删除外键之后再进行表结构查看

 再删除custumers表

mysql> drop table if exists customers;

 查看是否删除表

 第三题 

(1)创建一个新账户,用户名为accountl,该用户通过本地主机连接数据库,密码为oldpwdl。授权该用户对Team数据库中player表的SELECT和INSERT权限,并且授权该用户对player表的info字段的UPDATE权限。

创建account1账户并设置密码为oldpwd1

mysql> create user account1@'localhost' identified by 'oldpwd1';

授予权限

mysql> grant select,insert,update(info) on Team.player to account1@localhost;

登录account1账户并用show grants;命令查看当前用户权限

(2)创建SQL语句,更改accountl用户的密码为newpwd2。

mysql> alter user account1@localhost identified by 'newpwd2';

(3)创建SQL语句,使用FLUSH PRIVILEGES重新加载权限表。

mysql> FLUSH PRIVILEGES;

(4)创建SQL语句,查看授权给accountl用户的权限。

mysql> show grants for account1@localhost;

(5)创建SQL语句,回收accountl用户的权限。

再用命令 show grants for account1@localhost;查看account1用户的权限是否全部收回。

(6)创建SQL语句,将accountl用户的账号信息从系统中删除。

mysql> drop user account1@localhost;

可以在mysql库中user表中进行查看。

 select * from mysql.user;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值