初识MySQL(中篇)
使用语言 MySQL
使用工具 Navicat Premium 16
代码能力快速提升小方法,看完代码自己敲一遍,十分有用
目录
1.SQL语言
1.1 SQL语言组成部分
2.MySQL数据类型
2.1 数值类型
2.2 字符串类型
2.3 日期类型
3.创建数据表
3.1 创建数据表方法1
3.2 创建数据表方法2
3.2.1 语法
3.2.2 简述
3.3 字段的约束和属性
3.3.1 MySQL中常用的字段约束或属性
3.3.2 单字段主键
3.3.3 多字段联合主键
3.3.4 约束贯穿总结示例
4. 注释
1.SQL语言
SQL(结构化查询语言)用于数据库的查询和操作,在MySQL中同样使用SQL实现数据的查询与操作。SQL语言有自己的国家标准,各数据库管理系统使用的SQL都是基于这个标准开发的,但彼此之间又有一定的不同。
1.1 SQL语言组成部分
- DDL(数据定义语言):用于创建或删除数据库对象,如create、drop、alter等语句
- DML(数据操作语言):用于插入、修改和删除表中的数据,如insert、update、delete语句
- DQL(数据查询语言):用于数据查询,指select语句
- DCL(数据控制语言):用于控制数据库组件的存取许可,存取权限等,如grant、revoke等
2.MySQL数据类型
2.1 数值类型
数据类型 | 字节数 | 存储大小 |
tinyint[(M)] | 1字节 | 有符号: (-128,127) 无符号: (0,255) |
smallint[(M)] | 2字节 | 有符号: (-32 768,32 767) 无符号: (0,65 535) |
mediumint[(M)] | 3字节 | 有符号: (-8 388 608,8 388 607) 无符号: (0,16 777 215) |
int[(M)]或INTEGER[(M)] | 4字节 | 有符号: (-2 147 483 648,2 147 483 647) 无符号: (0,4 294 967 295) |
BIGINT[(M)] | 8字节 | 有符号:(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) 无符号:(0,18 446 744 073 709 551 615) |
float[(M,D)] | 4字节 | 有符号:(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) 无符号:(0,18 446 744 073 709 551 615) |
double[(M,D)] | 8字节 | 有符号:(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 无符号:0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
decimal[(M,D)] | M+2字节 | M:最大精度位数即总位数,M的取值范围是1~65,默认值为10 D:小数位精度位数,D的取值范围是0~30 该类型可能的取值范围与double相同,但有效值访问由M、D决定。例如,类型为decimal(5,2)的字段取值范围是-999.99~999.99 |
M代表需要显示的数字的位数,即数据的显示宽度。该值的大小并不会对数据类型所能承载的值范围产生影响。若数据位数大于显示宽度,只要不超过该类型取值范围,则会以实际位数表示;反之,若数据位数小于指定宽度(就是有小数位但是没有值),则用空格补充。如果不指定显示宽度,系统会为每种类型指定默认的宽度值。例如,int类型的默认宽度值为11。若需要以0填充不足的位置,则可在类型后添加zerofill属性。
- tinyint、smallint、mediumint、int、bigint、integer都是整数类型,不同的类型所占的字节数不同,因此取值范围不同。在向表中插入整数类型数据时,若超出该类型的取值范围,则插入的值被阶段并显示警告信息。
- float和double是浮点型数据,decimal被称为定数类型,它们都可以存储含小数位的数据。float和double存储的是近似值。当对数据的精度要求非常高,如用来存储货币数据时,可以选择decimal类型,它的精度比double类型高。
- 所有数值类型都包含有符号数和无符号数两类,默认为有符号数,即值可以为负数。如果要确定字段的值一定是一个非负数,可在类型后添加unsigned属性。
- 若某个字段指定了zerofill属性,则MySQL会自动为该字段添加unsigned属性。
2.2 字符串类型
CHAR[(M)] | M字节 | 固定长度字符串 M为0~255的整数 |
VARCHAR[(M)] | 可变长度 | 可变长度字符串 M为0~65535的整数 |
TINYTEXT | 0~255 | 微型文本 |
TEXT | 0~65535 | 文本 |
char类型适合存储少量字符串。varchar类型长度是可变的,当字符串的长度检查变化时,为节约空间,可设置为varchar类型,其长度范围是0~65535。tinytext和text类型通常用来存储文章内容等纯文本信息。
2.3 日期类型
data | yyyy-MM-dd | 1000-01-01~9999-12-32 |
datetime | yy-MM-dd hh:mm:ss | 1000-01-01 00:00:00~9999-12-31 23:59:59 |
time | hh:mm:ss | -838:59:59~838:59:59 |
timestamp | YYYYMMDDhhmmss 这个可以跨国际,它会自动换算 | 1970年某时刻~2038年某时刻,精度为1秒 |
year | YYYY格式的年份 | 1901~2155 |
- 根据具体的业务场景选择适当的日期类型。MySQL运行"不严格"语法:任何标点符号都可以作为日期部分的间隔符。例如,若某个字段为date类型则20-07-08 20@07-08等均可被成功插入数据表中。
- 如果要设置某字段默认值为系统当前时间,可指定字段类型为timestamp,当该字段未插入数据时,默认为当前时间。
3.创建数据表
3.1 创建数据表方法1
直接在数据库中的表直接右键新建表
3.2 创建数据表方法2
3.2.1 语法
create table [if not exists] 表名(
字段1 数据类型 [字段属性 | 约束] [索引] [字段备注],
...
字段n 数据类型 [字段属性 | 约束] [索引] [字段备注],
)[表类型] [表字符集] [表备注];
3.2.2 简述
- 表中的字段也被称为列(竖)。
- 在使用create table语句创建时,字段之间使用逗号分隔,最后一个字段不用;
- 当SQL语句中出现的数据库名、表名或字段名等与保留字冲突时,可以使用撇号(`)括起来避免冲突。MySQL自动生成的代码,所有表名或字段名都会使用撇号括起来。
if not exists是表示如果有该表就创建,没有就不创建
3.3 字段的约束和属性
数据的完整性指数据的准确性和一致性。例如,病人的编号必须是唯一的,密码不能为空,只能到本医院存在的科室看病等。数据的完整性非常重要,他决定了数据库能否真实地反映项目的实际业务。因此,数据的完整性对数据库开发非常重要。
3.3.1 MySQL中常用的字段约束或属性
主键约束 | primary key(pk) | 设置该字段为表的主键,同时保证字段的唯一性和非空。例如,病人编号能唯一确定一名病人,可设置为主键。 |
外键约束 | foreign key(fk) |
|
自动增长 | auto_increment | 1.设置该列的自增字段,默认每条自增1 2.通常用于设置主键,且为整数类型 3.可设置初始值和步长 |
非空约束 | not null | 保证字段的值不能为空,如病人的姓名字段不允许为空 |
默认约束 | default | 保证字段中总会有值,即使没有插入值,也有默认值。例如,病人表中的地址信息,若未填写,则默认"地址不详" |
唯一约束 | unique key(uk) | 设置字段的值是唯一的。允许为空,但只能有一个空值,如病人的身份证号。 |
主键约束是非常重要的约束。当需要使用数据表中的某个字段或某几个字段来标识偶有记录是,需要将该字段设置为表的主键。主键可以是单字段的,也可以是多字段的。
3.3.2 单字段主键
创建方法1
create table [if not exists] 表名(
字段1 数据类型 primary key,
...
);
创建方法2
create table [if not exists] 表名(
字段1 数据类型 ,
...
[constraint<约束名>] primary key(列名)
);
3.3.3 多字段联合主键
create table [if not exists] 表名(
...
[constraint<约束名>] primary key(字段1,字段2,...)
);
3.3.4 约束贯穿总结示例
4. 注释
MySQL支持注释,注释的方法由单行注释和多行注释两种:
- 单行注释:#.....
- 多行注释:/*.....*/
相关文章:
初识MySQL(中篇)
使用语言 MySQL 使用工具 Navicat Premium 16 代码能力快速提升小方法,看完代码自己敲一遍,十分有用 目录 1.SQL语言 1.1 SQL语言组成部分 2.MySQL数据类型 2.1 数值类型 2.2 字符串类型 2.3 日期类型 3.创建数据表 3.1 创建数据表方法1 …...
前端订阅后端推送WebSocket定时任务
0.需求 后端定时向前端看板推送数据,每10秒或者30秒推送一次。 1.前言知识 HTTP协议是一个应用层协议,它的特点是无状态、无连接和单向的。在HTTP协议中,客户端发起请求,服务器则对请求进行响应。这种请求-响应的模式意味着服务器…...
提高机器人系统稳定性:引入阻尼作为共振后的相位超前
在机器人关节中,引入阻尼作为共振后的相位超前,确实是一种提高系统稳定性的有效策略。机器人关节的振动和共振是影响其性能稳定性的关键因素,特别是在进行高速、高精度操作时。阻尼的引入能够显著减少这些不利因素,提升机器人的整…...
深度学习理论基础(三)封装数据集及手写数字识别
目录 前期准备一、制作数据集1. excel表格数据2. 代码 二、手写数字识别1. 下载数据集2. 搭建模型3. 训练网络4. 测试网络5. 保存训练模型6. 导入已经训练好的模型文件7. 完整代码 前期准备 必须使用 3 个 PyTorch 内置的实用工具(utils): ⚫…...
vue3+eachrts饼图轮流切换显示高亮数据
<template><div class"charts-box"><div class"charts-instance" ref"chartRef"></div>// 自定义legend 样式<div class"charts-note"><span v-for"(items, index) in data.dataList" cla…...
UTONMOS:AI+Web3+元宇宙数字化“三位一体”将触发经济新爆点
人工智能、元宇宙、Web3,被称为数字化的“三位一体”,如何看待这三大技术所扮演的角色? 3月24日,2024全球开发者先锋大会“数字化的三位一体——人工智能、元宇宙、Web3.0”论坛在上海漕河泾开发区举行,首次提出&…...
开始焦虑了
大家好,我是洋子,25届的暑期实习自从3月份开始招聘有一段时间了,最近接到了几个25届同学的咨询,其中一个学妹印象比较深刻,她的情况如下 个人情况 学历是双非本,计算机专业,学习方向是Java&…...
数据结构和算法:十大排序
排序算法 排序算法用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用,因为有序数据通常能够被更高效地查找、分析和处理。 排序算法中的数据类型可以是整数、浮点数、字符或字符串等。排序的判断规则可根据需求设定,如数字大小、字符 ASCII…...
LLaMA-Factory微调(sft)ChatGLM3-6B保姆教程
LLaMA-Factory微调(sft)ChatGLM3-6B保姆教程 准备 1、下载 下载LLaMA-Factory下载ChatGLM3-6B下载ChatGLM3windows下载CUDA ToolKit 12.1 (本人是在windows进行训练的,显卡GTX 1660 Ti) CUDA安装完毕后,…...
Web安全-浏览器安全策略及跨站脚本攻击与请求伪造漏洞原理
Web安全-浏览器安全策略及跨站脚本攻击与请求伪造漏洞原理 Web服务组件分层概念 静态层 :web前端框架:Bootstrap,jQuery,HTML5框架等,主要存在跨站脚本攻击脚本层:web应用,web开发框架,web服务…...
蓝桥杯B组C++省赛——飞机降落(DFS)
题目连接:https://www.lanqiao.cn/problems/3511/learning/ 思路:由于数据范围很小,所有选择用DFS枚举所有飞机的所有的降落顺序,看哪个顺序可以让所有飞机顺利降落,有的话就算成功方案,输出了“YES”。 …...
Java 中的 Map集合
文章目录 添加和修改元素获取元素检查元素删除元素获取所有键 / 值 / 键值对大小 在 Java 中,Map 接口是 Java 集合框架的一部分,它存储键值对(key-value pairs)。Map 接口有许多常用的方法,用于添加、删除、获取元素&…...
基于springboot大学生兼职平台管理系统(完整源码+数据库)
一、项目简介 本项目是一套基于springboot大学生兼职平台管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功…...
C#学生信息管理系统
一、引言 学生信息管理系统是现代学校管理的重要组成部分,它能够有效地管理学生的基本信息、课程信息、成绩信息等,提高学校管理的效率和质量。本文将介绍如何使用SQL Server数据库和C#语言在.NET平台上开发一个学生信息管理系统的课程设计项目。 二、项…...
双机 Cartogtapher 建图文件配置
双机cartogtapher建图 最近在做硕士毕设的最后一个实验,其中涉及到多机建图,经过调研最终采用cartographer建图算法,其中配置多机建图的文件有些麻烦,特此博客以记录 非常感谢我的同门 ”叶少“ 山上的稻草人-CSDN博客的帮助&am…...
VMware提示 该虚拟机似乎正在使用中,如何解决?
VMware提示 该虚拟机似乎正在使用中,如何解决? 问题描述解决方法1.找到安装VMware的文件目录2.在VMware目录下.lck后缀的文件夹删除或重命名3.运行VMware 问题描述 该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所…...
阿里云短信服务业务
一、了解阿里云用户权限操作 1.注册账号、实名认证; 2.使用AccessKey 步骤一 点击头像,权限安全的AccessKey 步骤二 设置子用户AccessKey 步骤三 添加用户组和用户 步骤四 添加用户组记得绑定短信服务权限 步骤五 添加用户记得勾选openApi访问 添加…...
ElasticSearch的DSL查询
ElasticSearch的DSL查询 准备工作 创建测试方法,初始化测试结构。 import org.apache.http.HttpHost; import org.apache.lucene.search.TotalHits; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchRespo…...
每天定时杀spark进程
##编写shell脚本 #!/bin/bash arr(“zhangsan” “lisi” “wangwu”) for i in “${arr[]}” do processps -ef|grep ${i}| grep -v "grep"| awk {print $2} kill -9 ${process} done ##每日定时杀手动启动的进程 0 19 * * * cd /kill_process && sh kil…...
win10 安装kubectl,配置config连接k8s集群
安装kubectl 按照官方文档安装:https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/ curl安装 (1)下载curl安装压缩包: curl for Windows (2)配置环境变量: 用户变量: Path变…...
Calico IPIP和BGP TOR的数据包走向
IPIP Mesh全网互联 文字描述 APOD eth0 10.7.75.132 -----> APOD 网关 -----> A宿主机 cali76174826315网卡 -----> Atunl0 10.7.75.128 封装 ----> Aeth0 10.120.181.20 -----> 通过网关 10.120.181.254 -----> 下一跳 BNODE eth0 10.120.179.8 解封装 --…...
静态成员主要用于提供与类本身相关的功能或数据,有什么应用场景
静态成员(包括静态方法和静态属性)在JavaScript中常用于多种应用场景,它们为类提供了与类本身直接相关而不是与实例相关的功能或数据。以下是一些常见的应用场景: 工厂方法 静态方法可以作为工厂方法,用于创建类的实…...
在线考试|基于Springboot的在线考试管理系统设计与实现(源码+数据库+文档)
在线考试管理系统目录 目录 基于Springboot的在线考试管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台: 2、后台 管理员功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主…...
C语言-----数据在内存中的存储(1)
1.整数在内存中的存储 我们之前就了解过整数的二进制写法分别有3种,分别为原码,反码,补码。整型在内存中存储的是补码。 原码,反码,补码都有自己的符号位和数值位,符号位为1时,则表示负数&…...
Ribbon有哪些负载均衡策略
负载均衡类都实现了IRule接口。 RandomRule:随机的选用一个实例 RoundRobinRule:轮询的使用实例 RetryRule:在轮询的基础上加了一个错误重试机制,在deadline时间内会不断的重试 WeightResponeTimeRule:根据权重去做…...
websocket多级nginx代理
在使用多层Nginx代理时,WebSocket的连接可能会遇到一些问题,因为WebSocket连接是持久化的,它需要Upgrade头部来确认升级到WebSocket协议。在多层代理的情况下,每层代理可能会修改或丢失这个Upgrade头部信息。 为了确保WebSocket能…...
【python从入门到精通】-- 第四战:语句汇总
🌈 个人主页:白子寰 🔥 分类专栏:python从入门到精通,魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文…...
【NC50937】货仓选址
题目 货仓选址 二分,前缀和,数学推导 思路 由题意可知货仓的位置是可以和商店的位置重合的。首先应该将商店的坐标从小到大排序,然后假设商店的坐标为 a i a_i ai,货仓的坐标为 x x x,货仓左侧第一家商店&#x…...
Nginx配置使用笔记
Nginx配置使用笔记 前言 官网下载压缩包https://nginx.org/ 解压完成后当前目录cmd输入nginx指令启动 访问http://localhost:80确认启动成功 1.部署前端项目 部署前端项目到路径E:\Workspaces\Vscode\app-web 2.0配置nginx.conf文件 在nginx安装的conf目录下新建一个文件夹l…...
GridLayoutManager 中的一些坑
前言 如果GridLayoutManager使用item的布局都是wrap_cotent 那么会在布局更改时会出现一些出人意料的情况。(本文完全不具备可读性和说教性,仅为博主方便查找问题) 布局item: <!--layout_item.xml--> <?xml version"1.0&qu…...
室内装修设计上海/深圳知名seo公司
二值化核心思想 设阈值,大于阈值的为0(黑)或255(白),使图像成为黑白图。 阈值可固定,也可自适应阈值。 自适应阈值一般为一点像素与这点为中心的区域像素平均值或者高斯分布加权和的比较&#x…...
内容电商的网站如何做/桔子seo查询
mysql查询今天,昨天,近7天,近30天,本月,上一月数据最近项目中用到了查询当月数据记录的功能,最初的想法是在逻辑业务里构造好时间段进行查询,当写sql语句时感觉挺麻烦。所以就到网上搜索了一下,看看是不是能有简单的方法。果然,网…...
网站建设注意细节/91
1 前言 在面向对象软件设计中,有时候我们想把有用而经过精心测试的类,用于应用程序的其他新领域。但是,新功能需要新接口,而新接口与要复用的现有类不一致的情况非常普遍。我们不想为新的接口而重写可靠的类。 已有的类与新的接口…...
长春鸿祥建设有限公司网站/广州seo招聘信息
您可能还喜欢 寻找网页设计灵感的27个最佳网站推荐最新30个漂亮的个人作品集网页设计案例分享35个非常漂亮的单页网站设计案例60佳灵感来自大自然的网页设计作品欣赏分享100佳精美的作品集网站设计案例这个系列将向大家分享汇集漂亮网站设计欣赏的200佳网站。网页设计师们可通过…...
二手电商怎么做/网站seo如何优化
最近,对于西安鱼化寨拆迁,对于我们也有影响,这些房东,趁着这时候,把房租涨了。。。 让我感到他们眼里只有钱,贪婪,无法形容, 一句“你要是觉得不适,可以搬呀”ÿ…...
汝州市城乡建设局网站/百度seo排名优化助手
原文出自:http://cmsblogs.com/?p1013。尊重作者的成果。转载请注明出处!个人网站:http://cmsblogs.com------------------------------------------------------------------------------------------------------------------------------…...