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

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

时间:2023-10-12 14:33:34浏览次数:40  
标签:10 12 varchar student2 数据库 stf61 约束 ques MySQL

 

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,'[email protected]','1992-1-1');

insert into student2 values(1,'ls',1.71,'[email protected]','1993-1-1');

insert into student2 values(null,'zs',1.72,'[email protected]','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)其他的常见表操作

 

常见报错

标签:10,12,varchar,student2,数据库,stf61,约束,ques,MySQL
From: https://www.cnblogs.com/sq62391/p/17759388.html

相关文章

  • getMonth():获取当前月(注意:返回数值为0~11,需要自己+1来显示),0代表一月份,如果要显示2位
    getMonth():获取当前月(注意:返回数值为0~11,需要自己+1来显示),0代表一月份,JavaScriptDate对象 日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并并允许用户对其修改。如果要捕获用户修改日期选择控件的数据事件响应,需要为DataPicker添加一个OnDateChangedListene......
  • 2023/10/12
    2023/10/12今日词汇intensity强度render(vt.)使变得;(v.)提供;翻译;表达熟词僻意volume(n.)音量今日词组graspmusicitself领会音乐本身byallaccounts总而言之letalone更不用说......
  • KBL410-ASEMI智能LED照明灯具KBL410
    编辑:llKBL410-ASEMI智能LED照明灯具KBL410型号:KBL410品牌:ASEMI芯片个数:4封装:KBL-4恢复时间:>50ns工作温度:-55°C~150°C浪涌电流:200A正向电流:4A反向耐压:1000V正向压降:1.10V引脚数量:4KBL410特性:ASEMI品牌KBL410是采用工艺芯片,该芯片具有良好的稳定性及抗冲击能力,能够持......
  • 模拟输入密码只有三次机会密码为123
    #include <stdio.h>{inti=0;ints=0;for(i=0;i<3;i++) {  printf("请输入密码:\n"); scanf("%d",&s);if(s==123){printf("登录成功\n");break;}else{if(i==2){printf("已错三次登录失败\n");beeak;}printf(&q......
  • 杭州亚运会实现核心系统100%上云、云上转播7200+小时
    杭州亚运会实现核心系统100%上云。10月8日晚,杭州亚运会圆满闭幕。作为史上首届“云上亚运”,杭州亚运会创造了历史。杭州亚运会实现了核心系统100%上云,并借助后台云算力、云存储等云技术保障,建设一系列各层级、各场馆数字指挥平台,实现全面感知、高效指挥。同时,首次实现云上转播,......
  • 为什么 Java 中“1000==1000”为false,而”100==100“为true?
    这是一个挺有意思的讨论话题。如果你运行下面的代码:Integera=1000,b=1000;System.out.println(a==b);//1Integerc=100,d=100;System.out.println(c==d);//2你会得到:falsetrue基本知识:我们知道,如果两个引用指向同一个对象,用表示它们......
  • 2023_10_12_MYSQL_DAY_04_笔记
    2023_10_12_MYSQL_DAY_04_笔记14章课后作业CREATETABLExi(xidINTPRIMARYKEYAUTO_INCREMENT,xnameVARCHAR(10)UNIQUE,xheadVARCHAR(10)NOTNULL,xlocVARCHAR(30)DEFAULT'浑南区');CREATETABLEclass02(cnoINTPRIMARYKEY......
  • [CF1098E] Fedya the Potter 题解
    [CF1098E]FedyathePotter题解前言一道类欧好题。题解这道题让求\(c\)数组的中位数,那么有一个比较套路的方法就是二分答案\(mid\)然后计算\(b\)数组中区间和小于\(mid\)的区间个数进行\(check\)。但是\(b\)数组总共有\(\mathcal{O}(n^2)\)项,考虑如何优化。因......
  • 10.11
    又是运气爆表的一天!8.10切A,线段树板子看了一眼发现B有点像贪心,但是不太会,开C9.40切C换根板子,并且考过回去看B,想了想会了10.50切B打了个T4的暴力+剪枝检查跑路应得分数400=100+100+100+80实得分数372=100+92+100+80最高分400=100+100+100+100......
  • 只有三行代码的神奇云函数的功能之三:100%成功获取unionid [纯转]
    微信小程序这是一个神奇的网站,哦不,神奇的云函数,它只有三行代码:(真的只有三行哦)云函数:loginindex.js:constcloud=require('wx-server-sdk')cloud.init()exports.main=async(event)=>{return{...event,...cloud.getWXContext()}} 神奇功能之三:100%成功获取unio......