mariadb基本操作之表的操作

在example中创建两个表student和grade表,内容如下:
student表

字段名字符描述数据类型主键外键非空唯一自增
num学号INT(10)
name姓名VARCHAR(20)
sex性别VARCHAR(4)
birthday出生日期DATETIME
address家庭住址VARCHAR(50)

grade表

字段名字符描述数据类型主键外键非空唯一自增
id编号INT(10)
course课程名VARCHAR(10)
s_num学号INT(10)
grade成绩VARCHAR(4)

需求:
1、将grade表的course字段的数据类型改为VARCHAR(20)
2、将s_num字段的位置更改到course字段前面
3、将grade字段名改为score
4、删除grade表的外键约束
5、将grade表的存储类型改为MyISAM类型
6、将student表中的address字段删除
7、在student表中增加名为phone的字段,数据类型为INT(10)
8、将grade表改名为gradeInfo
9、删除student表

前提:
先建立example数据库,

create database example;

进入example数据库中

use example;

根据表格建立student表和grade表
建立student表:

create table student(num INT(10) PRIMARY KEY NOT NULL UNIQUE,name VARCHAR(20) NOT NULL,sex VARCHAR(4) NOT NULL,birthday DATETIME,address VARCHAR(50));

创建grade表

create table grade(id INT(10) PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,course VARCHAR(10) NOT NULL,s_num INT(10) NOT NULL,grade VARCHAR(4),CONSTRAINT grade_fk FOREIGN KEY (s_num) REFERENCES student(num));

查看表

MariaDB [example]> show tables;
+-------------------+
| Tables_in_example |
+-------------------+
| grade             |
| student           |
+-------------------+

MariaDB [example]> show create table student \G;
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `num` int(10) NOT NULL,
  `name` varchar(20) COLLATE utf8_bin NOT NULL,
  `sex` varchar(4) COLLATE utf8_bin NOT NULL,
  `birthday` datetime DEFAULT NULL,
  `address` varchar(50) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`num`),
  UNIQUE KEY `num` (`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
1 row in set (0.00 sec)

ERROR: No query specified

MariaDB [example]> show create table grade \G;
*************************** 1. row ***************************
       Table: grade
Create Table: CREATE TABLE `grade` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `course` varchar(10) COLLATE utf8_bin NOT NULL,
  `s_num` int(10) NOT NULL,
  `grade` varchar(4) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `grade_fk` (`s_num`),
  CONSTRAINT `grade_fk` FOREIGN KEY (`s_num`) REFERENCES `student` (`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

1、将grade表的course字段的数据类型改为VARCHAR(20)


MariaDB [example]> alter table grade modify course VARCHAR(20);
Query OK, 0 rows affected (0.04 sec)               
Records: 0  Duplicates: 0  Warnings: 0
MariaDB [example]> desc grade;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(10)     | NO   | PRI | NULL    | auto_increment |
| course | varchar(20) | YES  |     | NULL    |                |
| s_num  | int(10)     | NO   | MUL | NULL    |                |
| grade  | varchar(4)  | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

2、将s_num字段的位置更改到course字段前面

alter table grade modify course varchar(20) NOT NULL AFTER s_num;
MariaDB [example]> desc grade;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(10)     | NO   | PRI | NULL    | auto_increment |
| s_num  | int(10)     | NO   | MUL | NULL    |                |
| course | varchar(20) | YES   |     | NULL    |                |
| grade  | varchar(4)  | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

3、将grade字段名改为score

alter table grade change grade score varchar(4) ;
MariaDB [example]> desc grade;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(10)     | NO   | PRI | NULL    | auto_increment |
| s_num  | int(10)     | NO   | MUL | NULL    |                |
| course | varchar(20) |  YES   |     | NULL    |                |
| score  | varchar(4)  |  YES   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

4、删除grade表的外键约束

alter table grade drop  FOREIGN KEY `grade_fk`;
MariaDB [example]> show create table grade \G;
*************************** 1. row ***************************
       Table: grade
Create Table: CREATE TABLE `grade` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `s_num` int(10) NOT NULL,
  `course` varchar(20) COLLATE utf8_bin NOT NULL,
  `score` varchar(4) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `grade_fk` (`s_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

5、将grade表的存储类型改为MyISAM类型

MariaDB [example]> alter table grade engine=MyISAM;
MariaDB [example]> show create table grade \G;
*************************** 1. row ***************************
       Table: grade
Create Table: CREATE TABLE `grade` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `s_num` int(10) NOT NULL,
  `course` varchar(20) COLLATE utf8_bin NOT NULL,
  `score` varchar(4) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `grade_fk` (`s_num`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin

6、将student表中的address字段删除

MariaDB [example]> alter table student drop address;
Query OK, 0 rows affected (0.06 sec)               
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [example]> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| num      | int(10)     | NO   | PRI | NULL    |       |
| name     | varchar(20) | NO   |     | NULL    |       |
| sex      | varchar(4)  | NO   |     | NULL    |       |
| birthday | datetime    | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

7、在student表中增加名为phone的字段,数据类型为INT(10)

MariaDB [example]> alter table student add phone INT(10);
Query OK, 0 rows affected (0.05 sec)               
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [example]> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| num      | int(10)     | NO   | PRI | NULL    |       |
| name     | varchar(20) | NO   |     | NULL    |       |
| sex      | varchar(4)  | NO   |     | NULL    |       |
| birthday | datetime    | YES  |     | NULL    |       |
| phone    | int(10)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

8、将grade表改名为gradeInfo

alter table grade rename gradeInfo;
MariaDB [example]> show tables;
+-------------------+
| Tables_in_example |
+-------------------+
| gradeInfo         |
| student           |
+-------------------+

9、删除student表

drop table student;
Query OK, 0 rows affected (0.02 sec)
MariaDB [example]> show tables;
+-------------------+
| Tables_in_example |
+-------------------+
| gradeInfo         |
+-------------------+
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值