初识MySQL(中篇)

2024-04-04 23:52
文章标签 mysql 初识 database 中篇

本文主要是介绍初识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的整数
TINYTEXT0~255微型文本
TEXT0~65535文本

char类型适合存储少量字符串。varchar类型长度是可变的,当字符串的长度检查变化时,为节约空间,可设置为varchar类型,其长度范围是0~65535。tinytext和text类型通常用来存储文章内容等纯文本信息。 

 2.3 日期类型 

datayyyy-MM-dd1000-01-01~9999-12-32
datetimeyy-MM-dd hh:mm:ss1000-01-01 00:00:00~9999-12-31 23:59:59
timehh:mm:ss-838:59:59~838:59:59
timestampYYYYMMDDhhmmss
这个可以跨国际,它会自动换算
1970年某时刻~2038年某时刻,精度为1秒
yearYYYY格式的年份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)
  • 用于在两表之间建立关系,需要指定引用主表的哪一字段。在插入或更新表中的数据时,数据库将自动检查更新的字段值是否符合约束的限制。若不符合约束要求,则更新操作失败。使用时注意:
  • InnoDB支持外键,MyISAM不支持,外键关联的表要求都是InnoDB类型的表
  • 表中作为外键的字段要求在主表中时主键(单字段主键)
自动增长auto_increment1.设置该列的自增字段,默认每条自增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(中篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877138

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu