数据库MySQL练习(2)

文章详细描述了在MySQL中创建和管理数据库及数据表的过程,包括创建Market数据库,建立customers和orders表,设置主键、外键约束,调整存储引擎以支持外键,以及用户账户管理,如创建account1用户,赋予特定数据表的权限,修改密码,以及撤销权限和删除用户。
摘要由CSDN通过智能技术生成

1.创建数据库Market,在Market中创建数据表customers,customers表结构如表4.6所示,按要求进行操作。

(1)创建数据库Market。

create database Market;

use Market;        //切换到market数据库

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

mysql> create table customers(
    -> c_num int(11) primary key auto_increment comment "编号",
    -> c_name varchar(50) comment "姓名",
    -> c_city varchar(50) comment "城市",
    -> c_birth datetime not null comment "出生日期");
Query OK, 0 rows affected (0.01 sec)

 

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

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

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

alter table customers modify c_name varchar(70);

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

alter table customers change c_contact c_phone varchar(50);

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

alter table customers add c_gender char(1);

 

(7)将表名修改为customers_info。

alter table customers rename to customers_info;

(8)删除字段c_city。

alter table customers_info drop c_city;

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

alter table customers_info engine = MyISAM;

2.在Market中创建数据表orders,orders表结构如表4.7所示,按要求进行操作。

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

因为之前存储引擎改过了而且MyISAM,并不支持外键约束,所以我们要把customers_info的存储引擎改为支持外键约束的存储引擎,例如InnoDB。

alter table customers_info engine = InnoDB;

 然后进行创建数据表

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_info(c_num) );
Query OK, 0 rows affected (0.01 sec)

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

要删除外键约束,需要先知道它的外键约束的名称

show create table orders;


| orders | CREATE TABLE `orders` (
  `o_num` int(11) NOT NULL AUTO_INCREMENT,
  `o_date` date DEFAULT NULL,
  `c_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`o_num`),
  KEY `c_id` (`c_id`),
  CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`c_id`) REFERENCES `customers_info` (`c_num`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

可以看到 外键约束的名字是 orders_ibfk_1 ,接下来只需执行删除外键约束的命令就好了

ALTER TABLE orders DROP FOREIGN KEY orders_ibfk_1;

然后删除表customers

mysql> drop table customers_info;

 3.创建数据库Team,定义数据表player,语句如下:

执行以下操作: 

由于密码为oldwd1,这不符合mysql密码策略的要求,我们可以选择临时修改或者直接关闭,这里最简单的一种方法应该是直接在/etc/my.cnf 中直接修改my.cnf文件,添加上

validate_password=off

关闭密码策略 

然后重启Mysqld

(1)

create user 'account1'@'localhost' identified by 'oldpwd1';  
//创建新用户account1     本地登录,密码为oldpwd1

然后进入用root进入Mysql给予权限

grant select,insert on Team.player to account1@localhost;
//给account1 给予select insert权限

 授予该用户对player表中的info字段update的权限

grant update(info) on Team.player to account1@localhost;

(2)

mysql> alter user account1@localhost identified by 'newpwd2';
Query OK, 0 rows affected (0.00 sec)

(3)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

(4)

(5)

mysql> revoke all on Team.player from account1@localhost;
Query OK, 0 rows affected (0.00 sec)

 

(6) 

mysql> drop user account1@localhost;
Query OK, 0 rows affected (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值