MySQL数据库 【表的创建和管理】

本文详细介绍了如何在MySQL环境下创建、修改和管理数据库表,包括创建数据库、表结构设计、数据插入、修改表结构(如添加、修改字段和设置非空约束)、删除记录和列,以及数据库和表的删除。
摘要由CSDN通过智能技术生成

在这里插入图片描述

实 验 目 的:

  1. 了解MySQL数据库的逻辑结构和物理结构的特点。
  2. 学会使用SQL语句创建、选择、删除数据库。
  3. 学会使用SQL语句创建、修改、删除表。
  4. 学会使用SQL语句对表进行插入、修改和删除数据操作。
  5. 了解MySQL的常用数据类型。

实 验 环 境

MySQL、Navicat

实 验 内 容

数据库表的创建、修改、删除、查看

1.使用SQL语句创建名为studentsdb的数据库,在studentsdb数据库创建数据表student_info、curriculum、grade,并用SQL语句查看表的数据结构,三个表的数据结构如表1-表3所示。
(注意:一个表不能有两个主键,其中grade表前两个字段是作为联合主键,设置联合主键的方法:可以在建表时,在表中各列创建好后,在最后加上:Primary key(字段1,字段2) )
在这里插入图片描述#pic_center

create database studentsdb;
use studentsdb;
create table student_info
(
	学号  char(4) primary key,
	姓名  char(8) not null,
	性别  char(2),
	出生日期	date,
	家族住址	varchar(50)
);
desc student_info;    ##查看表student_info的字段结构

在这里插入图片描述

在这里插入图片描述

create table curriculum
(
	课程编号 char(4) primary key,
	课程名称 varchar(50),
	学分 int 
);
desc curriculum;      ##查看表curriculum的字段结构

在这里插入图片描述

在这里插入图片描述

create table grade(
	学号	char(4),
	课程编号	char(4),
	分数	int,
	primary key (学号,课程编号)
);
desc grade;      ##查看表grade的字段结构

在这里插入图片描述

2.使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade表插入数据,各表数据如表4-表6所示。
在这里插入图片描述

INSERT INTO student_info(学号,姓名,性别,出生日期,家族住址) VALUES  
('0001', '张青平', '男', '2000-10-01', '衡阳市东风路77号'),  
('0002', '刘东阳', '男', '1998-12-09', '东阳市八一北路33号'),  
('0003', '马晓夏', '女', '1995-05-12', '长岭市五一路763号'),  
('0004', '钱忠理', '男', '1994-09-23', '长岭市五一路763号'),  
('0005', '孙海洋', '男', '1995-04-03', '长岭市五一路763号'),  
('0006', '郭小斌', '男', '1997-11-10', '长岭市五一路763号'),  
('0007', '肖月玲', '女', '1996-12-07', '长岭市五一路763号'),  
('0008', '张玲珑', '女', '1997-12-24', '长岭市五一路763号');

在这里插入图片描述

在这里插入图片描述

insert into curriculum (课程编号,课程名称,学分) values
('0001','计算机应用基础','2'),
('0002','C语言程序设计','2'),
('0003','数据库原理及应用','2'),
('0004','英语','4'),
('0005','高等数学','4');

在这里插入图片描述

在这里插入图片描述

insert into grade(学号,课程编号,分数) values 
('0001','0001',80),
('0001','0002',91),
('0001','0003',88),
('0001','0004',85),
('0001','0005',77),
('0002','0001',73),
('0002','0002',68),
('0002','0003',80),
('0002','0004',79),
('0002','0005',73),
('0003','0001',84),
('0003','0002',92),
('0003','0003',81),
('0003','0004',82),
('0003','0005',75);

在这里插入图片描述

3.使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为非空。

alter table curriculum 
modify 课程名称   varchar(50) not null;

在这里插入图片描述

4.使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2),默认值为0.00。

alter table grade 
modify 分数 decimal(5,2) default 0.00 ;

在这里插入图片描述

5.使用SQL语句ALTER TABLE为student_info表添加一个名为“备注”的数据列,其数据类型为varchar(50)。

alter table student_info 
add 备注 varchar(50);

在这里插入图片描述

6.使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。

create database studb;    ##先创建数据库studb

use studb;              ## 再使用该数据库

SHOW CREATE TABLE studentsdb.student_info;  
##展示studentsdb.student_info的创建表结构,后面显示出来后将student_info改为stu,这样子表结构就可以相同

CREATE TABLE `stu` (
  `学号` char(4) NOT NULL,
  `姓名` char(8) NOT NULL,
  `性别` char(2) DEFAULT NULL,
  `出生日期` date DEFAULT NULL,
  `家族住址` varchar(50) DEFAULT NULL,
  `备注` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`学号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

insert into stu select * from studentsdb.student_info;
这个就是将studentsdb.student_info所有数据都插入到stu里面,就实现了题目要求的啦~

在这里插入图片描述

7.用两种方式修改表stu的名称为table_stu,最终改为原名stu.

rename table stu to table_stu;

在这里插入图片描述

alter table table_stu rename to stu;

在这里插入图片描述

8.修改表stu中的字段名出生日期为Birthday

alter table stu 
change 出生日期 Birthday date;

在这里插入图片描述

9.使用SQL语句删除表stu中学号为0004的记录

delete from stu where 学号 = '0004';

在这里插入图片描述

10.使用SQL语句更新表stu中学号为0002的家族住址为“滨江市新建路96号”。

update studb.stu set 家族住址 ='滨江路新建路96号' where 学号 = '0002';

在这里插入图片描述

11.删除表stu的“备注”列。

alter table stu  /*先选择该数据表*/
drop column 备注; /*再执行动作*/

在这里插入图片描述

12.删除表stu。

drop table stu;

在这里插入图片描述

13.删除数据库studb。

drop database studb;

在这里插入图片描述

SQL的配置文档

create database studentsdb;

use studentsdb;

create table student_info
(
	学号  char(4) primary key,
	姓名  char(8) not null,
	性别  char(2),
	出生日期	date,
	家族住址	varchar(50)
);
desc student_info;


create table curriculum
(
	课程编号 char(4) primary key,
	课程名称 varchar(50),
	学分 int 
);



create table grade(
	学号	char(4),
	课程编号	char(4),
	分数	INT,
	primary key (学号,课程编号)
);

desc student_info;
desc curriculum;
desc grade;


INSERT INTO student_info(学号,姓名,性别,出生日期,家族住址) VALUES  
('0001', '张青平', '男', '2000-10-01', '衡阳市东风路77号'),  
('0002', '刘东阳', '男', '1998-12-09', '东阳市八一北路33号'),  
('0003', '马晓夏', '女', '1995-05-12', '长岭市五一路763号'),  
('0004', '钱忠理', '男', '1994-09-23', '长岭市五一路763号'),  
('0005', '孙海洋', '男', '1995-04-03', '长岭市五一路763号'),  
('0006', '郭小斌', '男', '1997-11-10', '长岭市五一路763号'),  
('0007', '肖月玲', '女', '1996-12-07', '长岭市五一路763号'),  
('0008', '张玲珑', '女', '1997-12-24', '长岭市五一路763号');

desc student_info;

insert into curriculum (课程编号,课程名称,学分) values
('0001','计算机应用基础','2'),
('0002','C语言程序设计','2'),
('0003','数据库原理及应用','2'),
('0004','英语','4'),
('0005','高等数学','4');



insert into grade(学号,课程编号,分数) values 
('0001','0001',80),
('0001','0002',91),
('0001','0003',88),
('0001','0004',85),
('0001','0005',77),
('0002','0001',73),
('0002','0002',68),
('0002','0003',80),
('0002','0004',79),
('0002','0005',73),
('0003','0001',84),
('0003','0002',92),
('0003','0003',81),
('0003','0004',82),
('0003','0005',75);


alter table curriculum modify 课程名称   varchar(50) not null;
desc curriculum;

alter table grade modify 分数 decimal(5,2) default 0.00 ;
desc grade;

alter table student_info add 备注 varchar(50);
desc  student_info;


create database studb;
use studb;

SHOW CREATE TABLE studentsdb.student_info;


CREATE TABLE `stu` (
  `学号` char(4) NOT NULL,
  `姓名` char(8) NOT NULL,
  `性别` char(2) DEFAULT NULL,
  `出生日期` date DEFAULT NULL,
  `家族住址` varchar(50) DEFAULT NULL,
  `备注` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`学号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

insert into stu select * from studentsdb.student_info;



rename table stu to table_stu;

alter table table_stu rename to stu;


alter table stu change 出生日期 Birthday date;
desc stu;

delete from stu where 学号 = '0004';


update studb.stu set 家族住址 ='滨江路新建路96号' where 学号 = '0002';

alter table stu
drop column 备注;
desc stu;


drop table stu;

drop database studb;
  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要创建管理MySQL数据库,需要掌握MySQL语言以及相关的数据库管理工具。具体步骤包括创建数据库创建数据、添加数据、删除、修改、查询等操作。同时,还需要进行数据库备份、恢复、优化等管理工作,以确保数据的安全性和数据处理的效率。 ### 回答2: MySQL数据库触发器是一种用于监视特定数据变化的特殊类型程序,一旦所监视的数据被操作,则触发器就会自动地被执行。这些操作可包括插入、更新或删除数据。通过创建管理MySQL数据库触发器,您可以实现更加高效和自动化的数据库管理。 如何创建MySQL数据库触发器: 1. 首先,您需要打开MySQL数据库,并选择相应的数据库。 2. 接下来,您需要创建一个触发器,使用CREATE TRIGGER语句,并指定触发器的名称、触发时间(BEFORE或AFTER)、触发事件(INSERT、UPDATE或DELETE)、和需要执行的操作。 3. 在触发器的BEGIN和END块编写所需的操作代码,以确保在触发器被激活时执行正确的操作。 4. 最后,您需要使用DROP TRIGGER语句删除不需要的触发器。 如何管理MySQL数据库触发器: 1. 您可以使用SHOW TRIGGERS语句来列出特定数据库的所有触发器。 2. 如果需要禁用某个触发器,则可以使用ALTER TRIGGER语句,并将其状态设置为DISABLE。 3. 您可以使用ALTER TRIGGER语句来修改某个触发器的属性,例如更改触发器名称或调整其代码以满足新的要求。 4. 如果您不再需要某个触发器,则可以使用DROP TRIGGER语句将其从MySQL数据库删除。 总之,MySQL数据库触发器是一项极其有用的技术,可以帮助对数据库进行更加智能和自动化的管理。无论您是一位数据库开发人员还是管理员,掌握创建管理MySQL触发器的技能都是一项重要的技术,可以极大地提高数据库的安全性和效率。 ### 回答3: 在进行mysql数据库触发器创建管理实验之前,需要先了解什么是触发器。触发器是一种特殊的存储过程,当数据库的数据发生变化时,触发器就会自动执行指定的操作。因此,触发器可以用于实现数据库的自动化管理和维护,提高数据库的运行效率和安全性。 首先,在mysql数据库创建触发器需要满足以下条件: 1. 要有足够的权限,可以使用root用户或具有适当权限的其他用户来创建触发器。 2. 触发器可以在级别和行级别创建,需要指定触发器的类型和事件,如在INSERT、UPDATE、DELETE等操作时触发。 3. 触发器可以使用PL/SQL、T-SQL等编程语言编写,需要注意语法规范和安全性。 下面我们来看一下创建触发器的具体步骤: 1. 首先创建一个,用于测试触发器的功能,例如:CREATE TABLE `order`(`id` int(11) NOT NULL AUTO_INCREMENT, `price` decimal(10,2) NOT NULL DEFAULT '0.00', PRIMARY KEY (`id`)); 2. 然后创建一个触发器,用于测试数据的插入操作:CREATE TRIGGER `insert_order` BEFORE INSERT ON `order` FOR EACH ROW BEGIN SET NEW.price=NEW.price*0.9; END; 3. 在测试插入一条数据,例如:INSERT INTO `order` (`price`) VALUES (100.00); 4. 查看测试的数据,发现插入后的price为90.00,触发器已经生效。 接下来,我们来看一下如何管理触发器: 1. 查看数据库所有的触发器:SHOW TRIGGERS; 2. 查看指定的触发器:SHOW TRIGGERS WHERE `Table`=‘table_name’; 3. 查看指定触发器的定义:SHOW CREATE TRIGGER `trigger_name`; 4. 删除指定的触发器:DROP TRIGGER `trigger_name`; 总之,mysql数据库触发器是一种非常重要的功能,可以用于实现数据库的自动化管理和维护,提高数据库的运行效率和安全性。掌握创建管理mysql数据库触发器的方法,对于数据库管理员和开发人员来说都是非常必要的技能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张白夕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值