MySQL表操作练习题:
第一题:
具体要求如下所示:
1. 创建数据库Market:
CREATE DATABASE Market;
2. 创建customers表:
表结构如图所示:
CREATE TABLE customers( c_num INT(11) PRIMARY KEY, c_name VARCHAR(50), c_contact VARCHAR(50), c_city VARCHAR(50), c_birth DATETIME NOT NULL );
3. 移动字段:
ALTER TABLE customers MODIFY COLUMN c_contact VARCHAR(50) AFTER c_birth;
4. 修改字段数据类型:
ALTER TABLE customers MODIFY c_name VARCHAR(70);
5. 增加字段:
ALTER TABLE customers ADD c_gender CHAR(1);
6. 修改表名:
ALTER TABLE customers RENAME customers_info;
7. 删除字段:
ALTER TABLE customers_info DROP c_city ;
8. 修改存储引擎:
ALTER TABLE customers_info ENGINE=MyISAM;
检查:
mysql> SHOW CREATE TABLE customers_info\G;
*************************** 1. row ***************************
Table: customers_info
Create Table: CREATE TABLE `customers_info` (
`c_num` int(11) NOT NULL,
`c_name` varchar(70) DEFAULT NULL,
`c_birth` datetime NOT NULL,
`c_contact` varchar(50) DEFAULT NULL,
`c_gender` char(1) DEFAULT NULL,
PRIMARY KEY (`c_num`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4
第二题:
要求如下:
这里第一小题存在问题,第二张表的c_id数据类型应该和依赖表的字段数据类型一致。
表结构:
1. 建表:
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) );
2. 删除外键:
#查询外键名:
mysql> SHOW CREATE TABLE orders\G;
*************************** 1. row ***************************
Table: orders
Create Table: 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=utf8mb4
# orders_ibfk_1 外键名
#删除外键
ALTER TABLE orders DROP FOREIGN KEY orders_ibfk_1;
第三题:
实验要求及准备:
题目要求:
1. 用户创建&权限授予
#用户创建
create user account1@localhost identified by 'oldpwd1';
#授权
grant select,insert,update(info) on team.player to account1@localhost;
2. 修改密码刷新权限表:
set password for account1@localhost=password('oldpwd2');
flush privileges;
3. 查看权限:
mysql> show grants for account1@localhost\G;
*************************** 1. row ***************************
Grants for account1@localhost: GRANT USAGE ON *.* TO 'account1'@'localhost'
*************************** 2. row ***************************
Grants for account1@localhost: GRANT SELECT, INSERT, UPDATE (info) ON `team`.`player` TO 'account1'@'localhost'
4. 收回权限:
revoke all on team.player from account1@localhost;
5. 删除用户:
drop user account1@localhost;
以上就是实验中所有的内容,该实验中包含了基本的表的操作。
MyISAM存储引擎与InnoDB存储引擎的区别:
在mysql5.5.5以前使用,MyISAM存储引擎。之后的版本使用InnoDB,那么InnoDB对比MyISAM最主要的区别就是支持事务与外部键。
那么事务的特性在于ACID,即原子性,一致性,隔离性,持久性。
而外键的特点在于,子表外键的值依赖于主表被依赖字段的范围或NULL,也可以对字段加非空约束。以及主表字段若被子表外键依赖,则该字段值不能被删除。
觉得有帮助烦请点个赞支持一下。
文章有问题请联系更正:wgq3135@163.com