数据库扩展语句和约束方式以及用户管理
数据库扩展语句和约束方式以及用户管理
create TABLE if not exists ky32 (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cradid int(18) not null unique key,
hobby varchar (50)
);
auto_increment:表示该字段可以自增长,默认从1开始,每条记录会自动递增1
if not exists ky32:ky32这个表不存在,才会创建
zerofill:自动填充位置1 0001
primary key:当前表的主键,主键只有一个,而且唯一,而且不能为空
unique key:唯一性约束。跟主键不同,可以为空的
create table test like ky32:复制,通过like这个语句直接复制ky32的表结构。只是复制表结构,不能复制表里面的数据
insert into test select * from ky32:把ky32表里面的数据复制到test,两个表数据结构要一致
create table test1 (select * from ky32):创建一张表,test1,数据从ky32来,表结构也是ky32
drop table ky32:整个删除表
delete from ky32:清空表内容。delete删除是一行一行删除,如果表中有自增长列,清空所有记录之后,再次添加内容,会从原来的记录之后继续自增写入
truncate table ky32:清空表里的内容,而且会把表结构重新建立。速度上比delete快(在工作中一般用truncate)
modify column:是一种用于修改表中列定义的操作。它可以用来更改列的数据类型、长度、默认值等属性。通过使用modify column,可以在不删除表或数据的情况下更改表的结构。
创建临时表:临时表一般用于调试,而且临时表创建之后在表目录当中是不显示的,连接退出之后,临时表会被销毁,而且临时表无法创建外键
mysql的约束方式:
6种常用的约束:
1、主键约束,用于唯一标识表中的每一行,主键列的值必须是唯一而且不能为空,一个表只能有一个主键
2、外键约束,用于建立表与表之间的关系,一般是和另一张的表的主键关联,保证数据引用的完整性。一个表可以有多个外键
3、非空约束,not null必须要有一个值
4、唯一性约束:unique,确保列中的所有值都是唯一的,类似于主键,但是可以为空,而且一个表可以有多个唯一约束
5、默认值约束:default,在插入表数据时,如果没有定义值,会提供一个默认值
6、自增约束:每行自动生成一个唯一标识,通常和主键在一起使用
主表和从表:
插入数据:先插入主表,再插入从表
删除数据:先删除主表,再删除从表
实验:
定义一个需求:
两张表
主表company
从表depart
company:
1、work_id 非空,主键int(4)不满四位要补齐
2、name 非空 char(5)
3、sex 非空 char(2)
depart
1、de_id非空 主键int(6),不满六位要补齐
2、work_id要和主表的work_id关联为外键
3、addrss 为空,但是有一个默认值
4、phone 不能为空而且不能相同
create table company (
work_id int(4) ZEROFILL primary key,
name varchar(5) not null,
sex varchar(2) not null
);
create table depart (
de_id int(6) ZEROFILL primary key,
work_id int(4) ZEROFILL not null,
FOREIGN key (work_id) REFERENCES company (work_id),
address varchar(50) default '地址不详',
phone varchar(255) not null unique
);
ZEROFILL:自动补齐
primary key:主键
auto_increment PRIMARY KEY:自增长
alter table depart add FOREIGH key (work_id) REFERENCES company (work_id):把主表和从表的work_id外键绑定
alter table depart drop PRIMARY key:在外面删除
FOREIGN key (work_id) REFERENCES company (work_id):把主表和从表的work_id外键绑定
实验:
1、两张表:school
de_id int(4) 不满四位要补齐,而且自增长 主键
name varchar(15) not null
email varchar(45)可以为空,而且有默认值bdqnkgc@123.com
2、cloud ky32
id自增长 主键int
class-name 不能为空
de_id 主表关联
adress 可以为空,默认是‘地址不详’
phone int 不能为空,而且不能重复
3、要求删除外键关联,删除从表的主键,重新定义主键为phone
create table school (
de_id int(4) ZEROFILL auto_increment PRIMARY KEY,
name varchar(10) not NULL,
email varchar(25) DEFAULT ‘bdqnkgc@126.com’
);
create table cloudky32 (
id int(4) zerofill auto_increment primary key,
class_name varchar(50) not null,
de_id int(4) zerofill,
address varchar(255) default ‘地址不详’,
phone int(11) not null unique,
FOREIGN key(de_id) REFERENCES school(de_id)
);
更改表名:alter table 原表名 rename 新表名;
实验:
1、两张表:school de_id int(4) 不满四位要补齐,而且自增长 主键 name VARCHAR(15) not NULL email varchar(45) 不可以为空,而且不能重复
money int 不可为空,不能重复
2、cloud_ky32 id 自增长 主键 int class_name 不能为空。 de_id 外键,外键和主表的主键关联。 adress 可以为空,默认是'地址不详' phone int 不能为空,而且不能重复。
3、分别在两张表中插入10条数据
4、 在第二张表中增加一列,hobby。
5、修改主表的name类型为char(15)
6、更改cloud_ky32的表名,为ky2
7、修改 hobby的列明,改为hob
8、通过命令行,把主表的第一行的money的初始值1000,变成900.
1、create table school (
de_id int(4) ZEROFILL auto_increment PRIMARY KEY,
name VARCHAR(15) not NULL,
email varchar(45) not null unique
ALTER TABLE school ADD money int(4) not null;
);
2、create table cloud_ky32 (
id int(4) ZEROFILL auto_increment primary key,
class_name varchar(50) not null,
de_id int(4) zerofill,
address varchar(255) default'地址不详',
phone int(11) not null unique,
foreign key(de_id) REFERENCES school(de_id)
);
- insert into school (de_id,name,email,money)
values
(1,’aa’,’aa’,10),
(2,’bb’,’bb’,20),
(3,’cc’,’cc’,30),
(4,’dd’,’dd’,40),
(5,’ee’,’ee’,50),
(6,’ff’,’ff’,60),
(7,’gg’,’gg’,70),
(8,’hh’,’hh’,80),
(9,’ii’,’ii’,90),
(10,’jj’,’jj’,100);
inster into cloud_ky32 (id,class_name,de_id,adress,phone)
values
(1,’aa’,1,’aa’,10),
(2,’bb’,2,’bb’,20),
(3,’cc’,3,’cc’,30),
(4,’dd’,4,’dd’,40),
(5,’ee’,5,’ee’,50),
(6,’ff’,6,’ff’,60),
(7,’gg’,7,’gg’,70),
(8,’hh’,8,’hh’,80),
(9,’ii’,9,’ii’,90),
(10,’jj’,10,’jj’,100);
4、alter tables cloud_ky32 add hobby varchar(50) not null;
5、ALTER table school MODIFY COLUMN name char(15);
6、ALTER table cloud_ky32 RENAME ky2;
7、ALTER table ky2 CHANGE hobby hob varchar(50);
8、UPDATE school set money=('900') where de_id = 1;
相关文章:
数据库扩展语句和约束方式以及用户管理
数据库扩展语句和约束方式以及用户管理 create TABLE if not exists ky32 ( id int(4) zerofill primary key auto_increment, name varchar(10) not null, cradid int(18) not null unique key, hobby varchar (50) ); auto_increment:表示该字段可以自增长&…...
JMM 简单理解
JMM 简单理解 1 Java 内存模型 Java 内存模型(Java Memory Model,JMM),主要为了屏蔽各种硬件和操作系统的内存差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果,而设计的 2 工作内存与主内…...
微软Azure文本转音频,保存成MP3文件【代码python3】
标签: 文本转音频并保存mp3文件; 微软Azure; 微软Azure可以将文本转音频,并保存mp3文件,直接上代码 代码格式:python 3 import os import azure.cognitiveservices.speech as speechsdk# This example re…...
基于单片机的超声波探伤仪设计
摘要 超声波探伤仪是目前工业制造和现代化检测的重要途径之一,广泛的应用在质量检测和产品检测中,通过使用其产品能够有效地降低产品次品的风险。尽管随着电子技术的发展, 国内出现了一些数字化的超声检测仪器,但其数据处理及扩展…...
idea的设置
1.设置搜索encoding,所有编码都给换为utf-8 安装插件 eval-reset插件 https://www.yuque.com/huanlema-pjnah/okuh3c/lvaoxt#m1pdA 设置活动模板,idea有两种方式集成tomcat,一种是右上角config配置本地tomcat,一种是插件,如果使用插件集成,则在maven,pom.xml里面加上tomcat…...
高等数学啃书汇总重难点(八)向量代数与空间解析几何
持续更新,高数下第一章,整体来说比较简单,但是需要牢记公式,切莫掉以轻心~ 一.向量平行的充要条件 二.向量坐标的线性运算 三.向量的几何性质 四.数量积 五.向量积 六.混合积 七.曲面方程 八.空间曲线方程 九.平面的点法式方程 十…...
C#开发DLL,CAPL调用(CAPL>> .NET DLL)
文章目录 展示说明新建类库工程C# 代码生成dllCAPL脚本调用dll,输出结果展示 ret为dll里函数返回的值。 说明 新建类库工程 在visual studio中建立。 C# 代码 using...
0-1背包问题【穷举法+二维dp数组】
问题描述: 使用穷举法解决0/1背包问题。问题描述:给定n个重量为{w1, w2, … ,wn}、价值为{v1, v2, … ,vn} 的物品和一个容量为C的背包,求这些物品中的一个最有价值的子集,且要能够装到背包中。 穷举法:每件物品装还是…...
nodejs+vue+python+php基于微信小程序的在线学习平台设计与实现-计算机毕业设计
困扰管理层的许多问题当中,在线学习也是不敢忽视的一块。但是管理好在线学习又面临很多麻烦需要解决,例如:如何在工作琐碎,记录繁多的情况下将在线学习的当前情况反应给课程问题管理员决策,等等。 流,开发一个在线学习平台小程序一方面的可能会更合乎时宜,另一方面来…...
Spring学习笔记2 Spring的入门程序
Spring学习笔记1 启示录_biubiubiu0706的博客-CSDN博客 Spring官网地址:https://spring.io 进入github往下拉 用maven引入spring-context依赖 写spring的第一个程序 引入下面依赖,好比引入Spring的基本依赖 <dependency><groupId>org.springframework</groupId&…...
【Linux】虚拟机安装Linux、客户端工具及Linux常用命令(详细教程)
一、导言 1、引言 Linux是一个开源的操作系统内核,它最初由芬兰计算机科学家Linus Torvalds于1991年开发。Linux不同于传统的商业操作系统,它常用于服务器、嵌入式系统和个人电脑等各种平台。 Linux具有很多优点,包括稳定性、安全性和可定制…...
Day 47 动态规划 part13
Day 47 动态规划 part13 解题理解300674718 3道题目 300. 最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组 解题理解 300 dp[i]被设置为以nums[i]为结尾的最长递增子序列长度。 class Solution:def lengthOfLIS(self, nums: List[int]) -> int:if len(nums) …...
【广州华锐互动】飞机诊断AR远程指导系统为工程师提供更多支持
随着科技的发展,飞机的维护工作也在不断进步。其中,AR(增强现实)技术的应用使得远程运维成为可能。本文将探讨AR在飞机诊断远程指导系统中的应用,以及它对未来航空维护模式的影响。 AR远程指导系统是一种使用增强现实技…...
【贝叶斯回归】【第 2 部分】--推理算法
一、说明 在第一部分中,我们研究了如何使用 SVI 对简单的贝叶斯线性回归模型进行推理。在本教程中,我们将探索更具表现力的指南以及精确的推理技术。我们将使用与之前相同的数据集。 二、模块导入 [1]:%reset -sf[2]:import logging import osimport tor…...
【深入浅出汇编语言】寄存器精讲第二期
🌈个人主页:聆风吟 🔥系列专栏:数据结构、算法模板、汇编语言 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️物理地址二. ⛳️16位结构的CPU三. ⛳️8086CPU给出物理地址的方…...
如何保证分布式情况下的幂等性
关于这个分布式服务的幂等性,这是在使用分布式服务的时候会经常遇到的问题,比如,重复提交的问题。而幂等性,就是为了解决问题存在的一个概念了。 什么是幂等 幂等(idempotent、idempotence)是⼀个数学与计算机学概念,常⻅于抽象代数中。 在编程中⼀个幂等操作的特点是…...
Mybatis特殊SQL的执行
文章目录 模糊查询批量删除动态设置表名添加功能获取自增的主键自定义映射resultMapresultMap处理字段和属性的映射关系 多对一映射处理级联方式处理映射关系使用association处理映射关系 分步查询1. 查询员工信息 2. 查询部门信息 一对多映射处理collection 模糊查询 /*** 根…...
MyBatis-Flex(一):快速开始
框架介绍 MyBatis-Flex 是一个优雅的 MyBatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。 MyBatis-Flex 官方文档 说明 本文参照官方文档的【快速开始】 章节,编写 Spring Boot 项目的代码示例。 快速开始 创建数据库表 直接参照官网示…...
Vue组件化
组件 组件是实现应用中局部功能的代码(HTML,CSS,JS)和资源(图片,声音,视频)的集合,凡是采用组件方式开发的应用都可以称为组件化应用 模块是指将一个大的js文件按照模块化拆分规则进行拆分成的每个js文件, 凡是采用模块方式开发的应用都可以称为模块化应用(组件包括模块) 传…...
nodejs+python+php+微信小程序-基于安卓android的健身服务应用APP-计算机毕业设计
考虑到实际生活中在健身服务应用方面的需要以及对该系统认真的分析,将系统权限按管理员和用户这两类涉及用户划分。 则对于进一步提高健身服务应用发展,丰富健身服务应用经验能起到不少的促进作用。 健身服务应用APP能够通过互联网得到广泛的、全面的宣…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...
