Mysql入门——创建一个数据库

题目:创建一个教务管理数据库,名称为 JWGL

在 JWGL 数据库中创建学生表 Student、课程表 Course、学生选课表 SC,它们的表结构如下所示:

学生表Student
列名数据类型长度允许空值默认值说明
Snochar8×主键
Snamevarchar10×
Sexchar2×只能“男”或“女”
Agetinyint×20只能为 15-30
Phonenumberchar12取值唯一
Sdeptvarchar20×
课程表Course
列名数据类型长度允许空值默认值说明
Cnochar10×主键
Cnamevarchar20×取值唯一
Total_periortinyint64只能为32-108
Week_periortinyint4只能为2-7
Credittinyint×4只能为1-7
Pcnochar10
学生选课表SC
列名数据类型长度允许空值默认值说明
Snochar8×主键、外键
Cnochar10×主键、外键
Gradetinyint只能为0-100

首先需要启动mysql服务,这部分之前的博客中已经介绍过,这里就不做过多陈述,有需要可查看mysql服务的启动

接下来,我们需要创建一个数据库

 CREATE DATABASE JWGL;	/* 创建一个名为JWGL的数据库 */
 SHOW DATABASES;		/* 显示所有的数据库 */

结果如下:

在这里插入图片描述
此处需要注意,创建数据库时使用的是database,而显示时使用的是databases,显示时显示的是所有的,因此加了s,后面表的创建和显示也与之类似。
创建好数据库之后,我们需要创建表了,然而如上图所示,已有的数据库不止一个,怎样才能保证创建的表在数据库JWGL中呢?我们需要选择数据库。

USE JWGL; /* 选择使用JWGL这个数据库 */

选择数据库
这样,我们便可以随意切换数据库而不用担心表创建到别的数据库里了。
接下来便开始创建第一张表——学生表Student;

CREATE TABLE Student(	/* 创建一个名为Student的表*/
Sno CHAR(8) PRIMARY KEY COMMENT '主键',
 /* 
 CHAR(8):SNO为长度为8的定长字符串;
 PRIMARY KEY:设置为主键;
 COMMENT '主键':注释Sno为主键
 */
Sname VARCHAR(10) NOT NULL,
/* VARCHAR(10):Sname为最大长度为10的变长字符串,NOT NULL:不能为空值*/
Sex ENUM ('男','女') NOT NULL COMMENT '只能“男”或“女”',
/*
ENUM ('男','女'):Sex只能在“男”和“女”里面选;,
NOT NULL:不能为空值;
COMMENT '只能“男”或“女”':注释Sex;
由于此项里限定了Sex只能在枚举出的“男”和“女”里面选择,并且不能为空,因此默认为枚举出的第一个选项“男”
*/
Age TINYINT CHECK(Age BetWEEN 15 AND 30) DEFAULT 20 NOT NULL COMMENT '只能为15-30',
/*
TINYINT:Age为TINYINT类型,取值范围在(-128,127);
CHECK(Age BetWEEN 15 AND 30):限制范围在15-30之间;
DEFAULT 20:默认值为20;
COMMENT '只能为15-30':注释Age
*/
Phonenumber CHAR(12) UNIQUE COMMENT '取值唯一',
/*CHAR(12):Phonenumber为定长为12的字符串;
UNIQUE:取值唯一,不能重复;
COMMENT '取值唯一':注释Phonenumber
*/
Sdept VARCHAR(20) NOT NULL
/*
VARCHAR(20):Sdept 为最大长度为20的变长字符串;
NOT NULL:Sdept不能为控制
*/
)COMMENT='学生表';	/* Student表添加注释为“学生表”*/

学生表Student
创建基本表时,表中内容用","隔开,当一条命令输出完毕,在最后添加上“;”,若中途输错,想退出重新输入,也可使用“;”结束。
接下来创建剩下两张表:
课程表Course:

CREATE TABLE Course(	/* 定义一个名为Course的表 */
Cno CHAR(10) PRIMARY KEY COMMENT '主键',
/*
CHAR(10):Cno为定长为10的字符串;
PRIMARY KEY:设置为主键;
COMMENT '主键':注释Cno
*/
Cname VARCHAR(20) UNIQUE NOT NULL COMMENT '取值唯一',
/*
VARCHAR(20):Cname为最大长度为20的变长字符串;
UNIQUE:Cname取值唯一,不能重复;
NOT NULL:Cname不能为空;
COMMENT '取值唯一':注释Cname
*/
Total_perior TINYINT CHECK(Total_perior BETWEEN 32 AND 108) DEFAULT 64 COMMENT '只能为32-108',
/*
TINYINT:Total_perior为TINYINT类型,取值范围在(-128,127);
CHECK(Total_perior BetWEEN 32 AND 108):限制范围在32-108之间;
DEFAULT 64:默认值为64;
COMMENT '只能为32-128':注释Total_perior
*/
Week_perior TINYINT CHECK(Week_perior BETWEEN 2 AND 7) DEFAULT 4 COMMENT '只能为2-7',
/*
TINYINT:Week_perior为TINYINT类型,取值范围在(-128,127);
CHECK(Week_perior BetWEEN 2 AND 7):限制范围在2-7之间;
DEFAULT 4:默认值为4;
COMMENT '只能为2-7':注释Week_perior
*/
Credit TINYINT CHECK(Credit BETWEEN 1 AND 7)DEFAULT 4 NOT NULL COMMENT '只能为1-7',
/*
TINYINT:Credit为TINYINT类型,取值范围在(-128,127);
CHECK(Credit BetWEEN 1 AND 7):限制范围在1-7之间;
DEFAULT 4:默认值为4;
COMMENT '只能为1-7':注释Credit
*/
Pcno CHAR(10)
/*
CHAR(10):Pcno为定长为10的字符串
*/
)COMMENT='课程表';	/* Course表添加注释为“课程表”*/

学生选课表SC:

CREATE TABLE SC(
Sno CHAR(10) COMMENT '主键、外键',
/*
CHAR(10):Sno为长度为10的定长字符串;
COMMENT '组件、外键':注释Sno
*/
Cno CHAR(10) COMMENT '主键、外键',
/*
CHAR(10):Cno为长度为10的定长字符串;
COMMENT '组件、外键':注释Cno
*/
Grade TINYINT CHECK(Grade BETWEEN 0 AND 100) COMMENT '只能为0-100',
/*
TINYINT:Grade为TINYINT类型,取值范围在(-128,127);
CHECK(Grade BetWEEN 0 AND 100):限制范围在0-100之间;
COMMENT '只能为0-100':注释Grade
*/
PRIMARY KEY(SNO,CNO),
/*
设置SNO,CNO这个组合为主键
*/
FOREIGN KEY (SNO) REFERENCES Student(SNO),
/*设置SNO为外键,用于关联Student表,SNO为表Student的主键*/
FOREIGN KEY (CNO) REFERENCES Course(CNO)
/*设置CNO为外键,用于关联Student表,Cno为表Course的主键*/

)COMMENT='学生选课表';	/* SC添加注释为“学生选课表”*/

基本表创建完成了,你可以查看下数据库中的表。

SHOW TABLES;

显示数据库中的基本表
当然,你还可以进一步查看表中的具体信息,比如Course表。

DESC COURSE;

在这里插入图片描述
到现在为止,一个数据库就创建完成了,可以对其增、删、改、查了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值