使用SQL语言创建数据库、表——MySQL数据库学习笔记(二)

321 阅读3分钟

「这是我参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战

SQL语言

SQL 是用于访问和处理数据库的标准的计算机语言。

使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。

如何运行SQL语句

在我们昨天安装好的数据库管理软件中,点击Query按钮,然后将SQL语句输入在编辑框内,然后点击右下角的Run Previous

运行成功后,可以看到最下面的状态栏,No errors; 1 row affected, taking 1.3ms

image.png

创建数据库

在学习数据库之前,首先我们要创建一个自己的数据库,创建数据库使用下面的CREATE DATABASE 数据库名字语句。

语法格式:

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[[DEFAULT] COLLATE <校对规则名>];

最简单的方式:

CREATE DATABASE `my_learn`;

我们这里选择utf8mb4字符集。

CREATE DATABASE `my_learn` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

展示所有数据库

创建数据库完成后,我们可以查询我们所有的数据库,使用下面的语句

SHOW DATABASES;

image.png

可以看到我们刚刚创建好的数据库my_learn

使用数据库

由于数据库有很多个,我们需要选择一个进行使用,使用下面的语句:

USE `my_learn`;

执行完成后,可以发现左上角的数据库已经变成了my_learn

image.png

创建表

使用SQL语句创建下面三个表:学生表(Student)、课程表(Course)、学生选修课表(SC),这三张表的结构如下面表格所示:

Student表结构

列名含义数据类型约束
Sno学号char固定长度的字符串,长度为7主键
Sname姓名char固定长度的字符串,长度为10非空
Ssex性别char固定长度的字符串,长度为2
Sage年度tinyint
Sdept所在系char固定长度的字符串,长度为20

Course表结构

列名含义数据类型约束
Cno课程号char固定长度的字符串,长度为6主键
Cname课程名char固定长度的字符串,长度为20非空
Credit学分tinyint
Semester学期tinyint

SC表结构

列名含义数据类型约束
Sno学号char固定长度的字符串,长度为7主键,引用Student的外键
Cno课程名char固定长度的字符串,长度为6主键,引用Course的外键
Crade成绩smallint

我们根据上面的每个表的结构来编写相应的SQL语句来创建对应的表:

CREATE TABLE Student (
  Sno  char(7)  PRIMARY KEY, /* 在列级定义主键约束 */
  Sname char(10) NOT NULL,
  Ssex  char(2),
  Sage  tinyint,
  Sdept  char(20)
)

CREATE TABLE Course (
  Cno  char(6)  NOT NULL,
  Cname  char(20)  NOT NULL,
  Credit  tinyint,
  Semester  tinyint,
  PRIMARY  KEY(Cno) /* 在表级定义主键约束 */
)

CREATE TABLE SC (
  Sno char(7) NOT NULL,
  Cno char(6) NOT NULL,
  Grade smallint,
  PRIMARY KEY(Sno, Cno),
  FOREIGN KEY(Sno) REFERENCES Student(Sno),
  FOREIGN KEY(Cno) REFERENCES Course(Cno)
)

执行完成上面的SQL语句之后,我们会看到新创建的表:

image.png

删除表

当我们不再需要某个表时,可以将其删除,删除表时会将数据表中的数据一起删掉,DROP TABLE 表名

DROP TABLE SC;

结尾

在下一节中,我们来学习数据操作的SQL语句。

欢迎我的公众号【小帅的编程笔记】,让自己和他人都能有所收获!