「这是我参与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
。
创建数据库
在学习数据库之前,首先我们要创建一个自己的数据库,创建数据库使用下面的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;
可以看到我们刚刚创建好的数据库my_learn
。
使用数据库
由于数据库有很多个,我们需要选择一个进行使用,使用下面的语句:
USE `my_learn`;
执行完成后,可以发现左上角的数据库已经变成了my_learn
。
创建表
使用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语句之后,我们会看到新创建的表:
删除表
当我们不再需要某个表时,可以将其删除,删除表时会将数据表中的数据一起删掉,DROP TABLE 表名
。
DROP TABLE SC;
结尾
在下一节中,我们来学习数据操作的SQL语句。
欢迎我的公众号【小帅的编程笔记】,让自己和他人都能有所收获!