【2023年10月12日】stf61-MySQL数据库

发布时间 2023-10-12 14:30:15作者: 一只像鲨鱼的蜜蜂
 

stf61-MySQL数据库

前言

1)为什么学?

● 常见的笔试题

● 有利于更好的开展测试工作

2)学什么?

理论:基本的术语和概念

实操:数据库操作、表操作、数据操作、其他常见数据库功能

3)怎么学?

多在实训环境里练习,在练习中掌握

 

理论

 

数据库系统:

 

表:8条记录/行,6个字段/列

 

关系型数据库使用SQL语言来管理数据。

SQL:Structured Query Langage 结构化的查询语言。一门专门用来与数据库通信的语言。

主要包含了:DDL、DML、DQL、DCL

 

环境

MySQL+操作MySQL的工具DBeaver、navicat、sqlyog等

 

字号的缩放:ctrl +/-

数据库指令的执行:

操作

1 数据库常见操作

-- 1 查看当前连接下有哪些数据库

show databases;

-- 2 建数据库

格式:create database 数据库名 default character set utf8;

举例:

create database test1 default character set utf8;

注意事项:

(1)SQL里的所有标点符号(分号、括号、逗号、引号等)都必须是英文输入法下的输入;

(2)语句里的单词一定要拼写得完全正确;

(3)运行指令之前,一定要先选中你要执行得指令,明确你的执行目标;

(4)在Linux里数据库名区分大小写,关键字不区分大小写;

(5)SQL里的命名规则:由字母、数字、下划线所组成,且第一个字符不能是数字,不能是MySQL的关键字,不要取中文名。

-- 3 选择/切换数据库

格式:use 数据库名;

举例:

use test1;

-- 4 查看当前连接的是哪个数据库

select database();

-- 5 删除数据库

格式:drop database 数据库名;

举例:

drop database Test1;

 

2 表的常见操作

(1)简单的建表语法

格式:

create table 表名(

字段名1 数据类型1,

字段名2 数据类型2,

……

字段名n 数据类型n

);

 

举例:

 

注意事项:

1)简单的建表语法需要明确3个信息:表名、字段名、字段的数据类型

2)表名和字段名的命令要符合规则;

3)MySQL常见的数据类型:

整型 int

浮点型 float double decimal

字符型 char varchar text

——》char和varchar在定义的时候要指定最大的字符数,text不需要指定最大字符数

char和varchar区别:char是定长字符型,varchar是变长字符型

日期时间型 date time datetime

枚举型 enum

 

(2)约束

约束指的是限制规则。

建表通常伴随着约束,从而保障数据的完整性。

常见的约束有:

● 主键约束 primary key 可以唯一的区分记录的字段可以设置为主键约束。设置了主键约束的字段不可以不给值(null),也不可以给重复的值。

● 非空约束:not null 设置了该约束的字段不能为空(不能不给值)

● 唯一约束:unique 设置了该约束的字段不能给重复的值

● 默认值约束:default 默认值 设置了该约束的字段不给值时使用默认值

● 外键约束:foreign key 通常用在两表之间,反映的是字段之间的参照关系,稍后讲。

如果一个字段(sid)在一张表(student2)里做主键,然后这个字段它又出现在另外一张表里(ques),那么我们可以在另外一张表里(ques)将其设置为外键。一旦设置了外键,那么它的取值就会受到限制,它必须参照前面那张表(student2)的取值范围,否则报错。

举例1:针对前面4种约束

创建一张带约束的学生表:student2

create table student2(

sid int primary key,

sname varchar(10) not null,

sheight float(3,2) default 1.68,

semail varchar(50) unique,

sbirth date

);

举例:

insert into student2 values(1,'zs',1.72,'zs@mail.com','1992-1-1');

insert into student2 values(1,'ls',1.71,'ls@mail.com','1993-1-1');

insert into student2 values(null,'zs',1.72,'zs@mail.com','1992-1-1');

insert into student2(sid,sname) values(2,'ls');

 

举例2:外键约束

假如说,我想针对student2表里的学员,创建一张问题表ques来收集学员学习过程中的问题,

假如你希望当你往问题表ques插入或者更新数据的时候,系统不允许你插入或更新超出student2表范围的数据——》通过外键约束来实现。

create table ques(

qid int primary key,

sid int,

content varchar(100),

foreign key(sid) references student2(sid)

);

 

insert into ques values(1,1,'xxxx'); -- 可以录入

由于student2表里只有编号为1和2的学员,所以编号为11的学员超出了范围,不允许录入:

insert into ques values(2,11,'yyyy'); -- 不允许录入,违背了外键约束

 

(3)其他的常见表操作

 

常见报错