目录
- 第一大题
- 创建数据库
- 创建用户表及约束
- 字段修改位置
- 修改字段数据类型
- 修改字段名字
- 添加字段
- 修改表名字
- 删除字段
- 修改表的存储引擎
- 第二大题
- 创建表及外键和其他约束
- 删除外键约束和查找外键名
- 第三大题
- 创建数据库
- 创建用户同时授权一些功能
- 修改用户的密码
- 更新权限列表
- 查看用户的权限
- 收回用户权限
- 删除用户
根据图中题目:
第一大题
创建数据库
(1):create database market default charset utf8;
创建用户表及约束
(2):create table customers( c_num int (11) primary key auto_increment, c_name varchar(50), c_contact varchar(50), c_city varchar(50), c_birth datetime not null);
alter table customers modify c_birth datetime not null;
字段修改位置
(3):alter table customers modify c_contact varchar(50) after c_birth;
Query OK, 0 rows affected (0.01 sec)
修改字段数据类型
(4): alter table customers modify c_name varchar(70);
修改字段名字
(5):alter table customers change c_contact c_phone varchar(50);
添加字段
(6):alter table customers add c_gender char(1);
修改表名字
(7):alter table customers rename to customers_info;
注意:这时候表名字就变成了 customers_info。
删除字段
(8):alter table customers_info drop c_city;
修改表的存储引擎
(9):alter table customers_info engine=myisam;
第二大题
创建表及外键和其他约束
(1):
注意:需要在添加外键时将 customers_info 表的存储引擎再次改回来,不然会报错。
改回存储引擎
alter table customers_info engine=innodb;
根据要求建立数据表 orders
create table orders(
>o_num int(11) primary key not null AUTO_INCREMENT,
>o_date date,
>c_id int(11),
>foreign key(c_id) references customers_info(c_num));
删除外键约束和查找外键名
因为上面的创建外键的语句中没有指定外键的外键名,即是外键 c_id 没有设置一个名字,所以会自动生成一个外键,那么这个外键名字用以下查看。
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=utf8 |
发现外键是叫 orders_ibfk_1 ,所以删除外键命令:
alter table orders drop foreign key orders_ibfk_1;
删除表。如果不先删除外键的话就会删不掉 customers_info 表
drop table customers_info;
第三大题
创建数据库
(1): create database team;
use team
create table player(
-> playid int primary key,
-> playname varchar(30) not null,
-> teanum int not null unique,
-> info varchar(50));
创建用户同时授权一些功能
grant select,insert,update(info) on team.player to account1@'localhost' identified by 'oldpwd1';
修改用户的密码
(2):
alter user account1@'localhost' identified by 'newpwd2';
更新权限列表
(3):
改了密码权限后记得更新权限列表
flush privileges;
查看用户的权限
(4):
show grants for account1@'localhost';
收回用户权限
(5):
revoke all on team.player from account1@localhost;
flush privileges;
删除用户
(6):
drop user account1@localhost;