mysql基本操作
常用的数据类型
| int 整型 | 用于定义整数类型的数据 |
| float 单精度浮点4字节32位 | 准确表示到小数点后六位 |
| double 双精度浮点8字节64位 | 双精度浮点8字节64位 |
| char 固定长度的字符类型 | 用于定义字符类型数据 |
| varchar | 可变长度的字符类型 |
| text | 文本 |
| image | 图片 |
| decimal(5,2) 指定长度数组 | 5个有效长度数字,小数点后面有2位 |
| Char | 如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错 |
| 主键 | 是唯一的,可以由多个字段构成 |
数据库管理
SQL语言分类:
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
1、DDL创建删除
create
drop
创建新的数据库
CREATE DATABASE 数据库名;创建新的表
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
CREATE DATABASE chx;
USE chx;
CREATE TABLE chx (id int NOT NULL,name char(10) NOT NULL,age int NOT NULL,address char(48) ,PRIMARY KEY (id));
DESC zzz;#NOT NULL 不允许为空值PRIMARY KEY :主键一般选择没有重复并且不为空值的字段

删除指定的数据表
use 数据库名
DROP TABLE 表名DROP TABLE [数据库名.] 表名;
#如不用USE进入库中,则需加上数据库名删除指定的数据库
DROP DATABASE 数据库名;

2、DML管理表中的数据记录
insert
update
delete
INSERT格式:
INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...);示例:
INSERT INTO chx (id,name,age,address) values(06,'',21,'');关于PASSWORD的使用
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示
若不使用PASSWORD(),查询时以明文显示。INSERT INTO chx VALUES(09,'lisi',90,'中国');
SELECT * FROM chx ; #查询表的数据记录
![]()
#修改、更新数据表中的数据记录
UPDATE格式:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];示例:
UPDATE chx SET id=7 WHERE name='lisi';
UPDATE chx SET name='jcc',address='中国北京' WHERE id=7;
在数据表中删除指定的数据记录
DELETE格式:
DELETE FROM 表名 [WHERE 条件表达式];示例:
DELETE FROM chx WHERE id=7;
3、DQL查询数据记录
select
格式:
SELECT 字段名1,字段名2[,...] FROM 表名[WHERE 条件表达式];示例:
SELECT * FROM chx;
SELECT id,name,score FROM chx WHERE id=2;
select name from chx\G #以列表方式竖向显示
select * from chx limit 2; #只显示头2行
select * from chx limit 2,3; #显示第2行后的前3行
4.修改表和结构
修改表名和表结构
ALTER TABLE 旧表名 RENAME 新表名;例:
ALTER TABLE fimily RENAME home;
----------------------------------------------------------------------------------扩展表结构(增加字段)
ALTER TABLE 表名 ADD passwd varchar(50) ;
ALTER TABLE home ADD passwd varchar(50) ;
----------------------------------------------------------------------------------修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];ALTER TABLE home CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。desc
----------------------------------------------------------------------------------删除字段
格式:
ALTER TABLE 表名 DROP 字段名;示例:
ALTER TABLE fimily DROP address;
扩展(关键词含义)
create table if not exists info (
id int(4) zerofill primary key auto_increment, #指定主键的第二种方式
name varchar(10) not null,
cardid int(18) not null unique key
#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;
自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且
添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键
#not null:表示此字段不允许为NULL
高级操作
克隆表
克隆1
create table test like home; #复制格式,通过LIKE方法,复制yyy表结构生成yyy2表
insert into test select * from home; #备份内容克隆2,将数据表的数据记录生成到新的表中
CREATE TABLE test02 (SELECT * from test); #复制test 表数据到test02中 直接复制到新表中show create table test02\G #获取数据表的表结构、索引等信息
SELECT * from test02;

清空表
清空表,删除表内的所有数据
方法一:
delete from test2;
#DELETE清空表后,返回的结果内有删除的记录条目;
DELETE 工作时是一行一行的删除记录数据的;
如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。方法二:
truncate table home2;
#TRUNCATE清空表后,没有返回被删除的条目TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;
使用TRUNCATE TABLE 清空表内数据后,ID会从1开始重新记录


删除命令的比较
速度:drop> truncate > delete
安全性:delete 最好
创建临时表
临时表创建成功之后,使用SHOWTABLES命令是看不到创建的临时表的,临时表会在连接退出
后被销毁。
如果在退出连接之前,也可以可执行增删改查等操作,比如使用DROP TABLE语句手动直接删除
临时表。
PS:无法创建外键临时表创建命令格式:
CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[, ...]
[, PRIMARY KEY (主键名)]);
示例:
CREATE TEMPORARY TABLE `mytmp` (`id` int(10) NOT NULL AUTO_INCREMENT,`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,`level` int(10) NOT NULL,PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into mytmp(name,level) values('aa',10);select * from mytmp;


MySQL中常见的约束
主键约束(primary key)
外键约束(foreign key)
非空约束(not null)
唯一性约束(unique [key|index])
默认值约束(default)
自增约束(auto_increment)
什么是外键?
定义:如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。
创建外键:约束作用(误删,修改),保证数据的完整性和一致性。
主键表和外键表的理解
(1)以公共关键字作主键的表为主键表(父表、主表)
(2)以公共关键字作外键的表为外键表(从表、外表)
注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,
主表外键字段和从表的字段具备相同的数据类型、字符长度和约束
#创建主表test04
create table test04 (hobid int(4),hobname varchar(50));#创建从表test05
create table test05 (id int(4) primary key auto_increment,
name varchar(10),age int(3),hobid int(4)) ;#为主表test04添加一个主键约束。主键名建议以"PK_”开头。
alter table test04 add constraint PK_hobid primary key (hobid);#为从表test05表添加外键,并将test05表的hobid字段和test04表的hobid字段建立外键关联。
外键名建议以"FK_”开头。
alter table test05 add constraint FK_hob foreign key (hobid) references
test04 (hobid);#可以使用查询表语句结构命令查看外键关联
show create table test05;desc test04;
desc test05;#插入新的数据记录时,要先主表再从表
insert into test04 values(1,'runing');
insert into test05 values(1,'zhangsan',18,1);#删数数据记录时,要先从表再主表,也就是说删除主键表时必须先删除其他与之关联的表。
drop tables test05;
drop tables test04;#查看和删除外键约束
#如果要删除外键约束字段先删除外键约束,再删除外键名
show create table test05;
alter table test05 drop foreign key FK_hob;
alter table test05 drop key FK_hob;
desc test05;
相关文章:
mysql基本操作
常用的数据类型 int 整型用于定义整数类型的数据float 单精度浮点4字节32位 准确表示到小数点后六位 double 双精度浮点8字节64位双精度浮点8字节64位char 固定长度的字符类型用于定义字符类型数据varchar可变长度的字符类型 text文本image图片de…...
vue组件的使用
一、首先要穿件组件构造器对象,或者导入组件 1..在本部分注册组件其中组件为子组件 2.在本部分注册组件 二、而后注册组件 1.在本部分注册组件其中组件为子组件 2.在本部分注册组件 三、 接着,使用组件。 1.在本部分注册组件其中组件为子组件 其中v-i…...
Axure设计之日期选择器(年月选择)
在系统中,日期选择器经常会用到,包括日历日期的选择、日期时间的选择和日期范围的选择,一般是下拉列表的形式进行选择。Axure没有自带的日期选择器,下面教大家如何在Axure中制作真实日期选择(年月选择)效果…...
CAD泰森多边形框架3D插件
插件介绍 CAD泰森多边形框架3D插件可用于在AutoCAD软件内生成三维Voronoi框架结构实体模型,适用于多孔Voronoi科研论文渲染绘图、Voronoi框架有限元建模、Voronoi空间结构优化等方面的应用。 使用说明 插件可设置生成的几何尺寸、晶格尺寸及边框直径等信息。 插…...
Django的render()函数的三个主要参数详解,特别是第三个字典类型的参数context
当在Django中使用 render() 函数时,它有三个主要参数:request,template_name,和 context。第三个参数,即 context,是一个字典,用于将数据传递给模板以进行渲染。 在下面的代码中: …...
统计不同字段的值域
目录 背景数据库表 需求目标SQL知识点注意点 背景 数据库 PostgreSQL 表 tbl_mr hosxblyfsylfkfs广东医院1301广东医院1404浙江医院0307浙江医院0209………… tbl_emr hosxblyfsylfkfs广东医院9999903广东医院1408浙江医院9507浙江医院0214………… 其中 xb 字段为 num…...
js this 指的是什么
1 对象中方法 函数中的this 指的是包含它的对象, 子对象中的this指的是全局在浏览器中是 window 对象 var obj1 {this1funcA: function() {var obj2 {innerFunc: function() {this2}};obj3{ this3 }}obj4{ this4 } }; 在这个对象中,this 的指向会随着调用上…...
用pytorch实现Resnet
ResNet(Residual Network)是一种深度卷积神经网络架构,由Kaiming He等人于2015年提出。它在计算机视觉领域引起了革命性的变革,使得训练更深的神经网络成为可能,超越了传统网络架构的限制。 ResNet的主要创新在于…...
C++类成员的访问权限以及类的封装
C通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。所谓访问权限,就是你能不能使用该类中的成员。 Java、C# 程序员注意,C 中的 publ…...
Linux 多线程解决客户端与服务器端通信
一、一个服务器端只能和一个客户端进行通信(单线程模式) 客户端代码ser.c如下: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<sys/socket.h> #include<netinet…...
FMX的TListBox单选列表框
TListBox功能比较全,对于选择项,有“两种”模式,一种就是ListItem选中(界面上就是焦点和颜色变化),可以无,单选和多选。另一种是通过CheckBox来选择ListItem的选中。默认下,ShowChec…...
prompt工程(持续更新ing...)
诸神缄默不语-个人CSDN博文目录 我准备想办法把这些东西整合到我的ScholarEase项目里。到时候按照分类、按照prompt生成方法列一堆选项,用户自己生成prompt后可以选择在ScholarEase里面聊天,也可以复制到别的地方(比如ChatGPT网页版之类的&a…...
win11 docker-desktop安装记录
win11安装Docker踩坑实录 马上开始正式工作了,需要用到docker,以前在win10上安装过,新电脑是win11,心想肯定会遇到坑,就浅浅记录一下 首先看一下安装要求 需要wsl2 那么就先进行 wsl的更新 wsl --update注意这里网络…...
opencv特征提取、梯度计算
...
AI绘画工具MJ新功能有点东西,小白也能轻松一键换装
先看最终做出来的效果 直接来干货吧。Midjourney,下面简称MJ 1.局部重绘功能来袭 就在前两天,MJ悄咪咪上线了这个被众人期待的新功能:局部重绘。 对于那些追求创新和个性化的设计师来说,局部绘制不仅是一个实用的功能ÿ…...
java springboot sql防注入的6种方式
在Spring Boot中,可以通过使用参数绑定、预处理语句和使用ORM框架等方式来防止SQL注入。以下是几种常见的方式: 1. 参数绑定:通过使用参数绑定,将用户输入的数据作为参数传递给SQL语句,而不是将其直接拼接到SQL语句中…...
深度学习实战49-基于卷积神经网络和注意力机制的汽车品牌与型号分类识别的应用
大家好,我是微学AI,今天给大家介绍一下深度学习实战49-基于卷积神经网络和注意力机制的汽车品牌与型号分类识别的应用,该项目就像是一只智慧而敏锐的眼睛,专注地凝视着汽车世界。这个项目使用PyTorch作为强有力的工具,提供了一个深度学习的舞台,让我们能够设计和训练一个…...
Open3D(C++) 可视化(3)——批量动态可视化点云
目录 一、概述二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 拿到一个新的点云数据集,想要快速查看数据集内点云的形状特征。然而,对于动辄几千个点云的数据集而言,逐个将点云拖入…...
opencv 文档识别+UI界面识别系统
目录 一、实现和完整UI视频效果展示 主界面: 识别结果界面: 查看处理图片过程: 查看历史记录界面: 二、原理介绍: 将图像变换大小->灰度化->高斯滤波->边缘检测 轮廓提取 筛选第三步中的轮廓…...
下|税收大数据应用研究
上文呢,对于税收大数据我们已经对它有了一定程度的认知。下篇呢,就研究一下应用方面有哪些优势和存在的不足之处。 一、税收大数据应用的优势 1.提升征管效率和预测准确率 税收部门通过收集、分析海量数据。并建立数据分析模型来提升效率和准确率。税…...
智慧交通落地难题:为什么80%的智能信号灯项目效果不达预期?
智慧交通落地困境:从技术神话到现实瓶颈的深度解构 清晨7点30分,北京东三环的某个十字路口,20名交警正在手动调节信号灯——这个造价480万元的智能信号系统在早高峰时段被完全弃用。类似的场景正在全国至少17个城市重复上演,某头部…...
Repomix用户体验:CLI界面设计与交互的终极指南
Repomix用户体验:CLI界面设计与交互的终极指南 【免费下载链接】repomix 📦 Repomix (formerly Repopack) is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase t…...
OpenClaw技能开发:为Qwen3-32B定制PDF摘要插件
OpenClaw技能开发:为Qwen3-32B定制PDF摘要插件 1. 为什么需要PDF摘要技能 去年我接手了一个研究项目,需要快速消化上百份行业白皮书和学术论文。每天手动翻阅PDF的日子让我意识到:必须开发一个能自动提取核心观点的工具。这就是我决定为Ope…...
基于springboot大学生兼职管理系统设计与开发(源码+精品论文+答辩PPT等资料)
博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...
手把手教你用modf()和fmod()解决C语言浮点数计算中的常见坑
深入解析C语言浮点数计算:modf()与fmod()的实战应用 浮点数计算在C语言开发中无处不在,从游戏物理引擎到嵌入式传感器数据处理,精确的浮点运算直接关系到程序行为的正确性。然而,许多开发者第一次遭遇浮点数计算误差时,…...
Eye-in-Hand还是Eye-to-Hand?深入解读OpenCV手眼标定背后的四种经典算法(Tsai, Park, Horaud)
Eye-in-Hand还是Eye-to-Hand?深入解读OpenCV手眼标定背后的四种经典算法 在工业机器人视觉引导系统中,相机与机械臂的精确标定直接决定了整个系统的定位精度。当工程师第一次调用OpenCV的calibrateHandEye()函数时,面对CALIB_HAND_EYE_TSAI、…...
【Mojo跨语言互操作权威配置白皮书】:实测TensorFlow/NumPy/Pandas三方库零报错接入方案
第一章:Mojo跨语言互操作的核心原理与架构定位Mojo并非传统意义上的独立运行时语言,而是以“Python超集”为设计原点、深度嵌入LLVM生态的系统级编程语言。其跨语言互操作能力不依赖FFI桥接层或胶水代码,而是通过统一的中间表示(M…...
MacBook Pro本地部署OpenClaw:百川2-13B量化模型7×24小时运行方案
MacBook Pro本地部署OpenClaw:百川2-13B量化模型724小时运行方案 1. 为什么选择MacBook Pro部署OpenClaw? 去年冬天,当我第一次尝试在MacBook Pro上部署量化版百川2-13B模型时,身边的朋友都觉得我疯了。"M1芯片能跑得动13B…...
收藏!AI技能进化全解析:从聊天搭子到行业专家的成长之路
本文回顾了AI技能的演进过程,从最初只能进行简单对话的聊天机器人,到如今能够理解行业规范、执行复杂任务的智能体。文章详细介绍了AI技能发展的五个阶段:初级聊天机器人、通过函数调用实现工具交互、通用接口MCP规范、智能体引擎赋予环境感知…...
【八股必备】多线程面试题2
第一部分:线程基础与概念篇1. 线程模型面试官:先来个基础题,Java程序里的线程和操作系统线程是什么关系?是一回事吗?候选人:好的。在绝大多数情况下,比如我们常用的Windows、Linux系统ÿ…...
