初学MySQl简单sql语句(1)

目录

SQL语句介绍:

DDL创建数据库:

char和varchar比较

数值类型

数据库存储引擎

数据库存储引擎——InnoDB

数据库存储引擎——MyISAM

数据库存储引擎-MyISAM 和InnoDB区别

修改和删除数据库表

数据库设计三大范式

一、什么是范式

二、约束作用

三、三范式

约束?

作用?

约束种类?

非空约束(not null)

唯一性约束(unique)

主键约束(primary key)PK

外键约束(foreign key)FK

约束的添加:

添加非空约束

添加唯一约束

添加主键约束

添加外键约束

约束的删除:

删除not null约束

删除unique约束

删除primary key约束

删除foreign key约束


SQL语句介绍:

SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。

名词

解释

命令

DDL(数据定义语言)

定义和管理数据对象,如数据库,数据表等

CREATE、DROP、ALTER

DML(数据操作语言)

用于操作数据库对象中所包含的数据

INSERT、UPDATE、DELETE

DQL(数据查询语言)

用于查询数据库数据

SELECT

DCL(数据控制语言)

用来管理数据库的语言,包括管理权

限及数据更改

GRANT、COMMIT、ROLLBACK

DDL创建数据库:

语法:

CREATE TABLE[IF NOT EXISTS] `表名`(

`字段名1` 字段类型[属性][索引][注释],

`字段名2` 字段类型[属性][索引][注释],

......

`字段名n` 字段类型[属性][索引][注释],

)[表类型][表字符集]

其中‘[]’包含的内容可以省略 

类型

说明

取值范围

存储需求

char[(M)]

固定长字符串,检索快但费空

间, 0 <= M <= 255

M字符

char[(M)]

varchar[(M)]

可变字符串 0 <= M <= 65535

变长度

varchar[(M)]

tinytext

微型文本串

16777215长度+3个字节

tinytext

text

文本串(4个G左右大小)

4294967295长度+4个字节

text

char和varchar比较

数值类型

类型

说明

取值范围

存储需求

tinyint【taɪni】

非常小的数据

有符值:-2 ^7 ~ 2^7-1,无符号值:

0 ~ 28-1

1字节

smallint

较小的数据

有符值:-2 15 ~ 215 -1 ,无符号值: 0 ~ 216 -1

2字节

mediumint

【miːdiəm】

中等大小的数据

有符值:-2 23 ~ 223 -1 ,无符号值: 0 ~ 224 -1

 3字节

int

标准整数

有符值:-2^31 ~ 2^31-1,无符号值:0 ~ 2^32-1

4字节

bigint

较大的整数

有符值:-2^63 ~2^63-1,无符号值:0 ~2^64-1

8字节

float

单精度浮点数

±1.1754351e -38

4字节

double

双精度浮点数

+-2.2250738585072014e -308

8字节

Decimal(钱) 

【desɪml】

字符串形式的浮点数

decimal(m, d)

m个字节

数据库存储引擎

查看当前数据库支持的存储引擎:show engines;

数据库存储引擎——InnoDB

MySQL从3.23.34a开始就包含InnoDB存储引擎。大于等于5.5之后,默认采用InnoDB引擎。

InnoDB是MysQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。可以确保事务的完整提交(Commit)和回滚(Rollback)。

除了增加和查询外,还需要更新、删除操作,那么,应优先选择InnoDB存储引擎。

除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。

数据文件结构:

表名.frm存储表结构(MySQL8.0时,合并在表名.ibd中)。

表名.ibd存储数据和索引

InnoDB是为处理巨大数据量的最大性能设计。

在以前的版本中,字典数据以元数据文件、非事务表等来存储。现在这些元数据文件被删除了。比如: .frm,.par , .trn ,.isl, .db.opt等都在MySQL8.0中不存在了。

对比MylISAM的存储引擎,InnoDB写的处理效率差一些,并且会占用更多的磁盘空间以保存数据和索引。

MyISAM只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响。

数据库存储引擎——MyISAM

MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务、行级锁、外键,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。

5.5之前默认的存储引擎

优势是访问的速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用

针对数据统计有额外的常数存储。故而count(*)的查询效率很高

数据文件结构:

表名.frm存储表结构。

表名.MYD存储数据(MYData)。

表名.MYI存储索引 (MYIndex)

应用场景:只读应用或者以读为主的业务

数据库存储引擎-MyISAM 和InnoDB区别

对比项

MyISAM

InnoDB

外键

不支持

支持

事务

不支持

支持

行表锁

表锁,即使操作一条记录也会锁住整 个表,不适合高并发操作

行锁,操作时只锁某一行,不对其它行有影响,适合高并发操作

缓存

只缓存索引,不缓存真实数据

不仅缓存索引还要缓存真实数据,对内存 要求较高,而且内存大小对性能有决定性的影响

默认安装

Y

Y

默认使用

N

Y

关注点

性能:节省资源、消耗少、简单业务

事务:并发写,事务、更大资源

修改和删除数据库表

修改表名:AITER TABLE 旧表名 RENAME AS 新表名

修改字段:ALTER TABLE 表名 MODIFY 字段名 列类型[属性] ALTER TABLE 表名 CHANGE 旧段名 列类型[属性]

删除字段:ALTER TABLE 表名 DROP 字段名

添加字段:ALTER TABLE 表名 ADD 字段名 列类型[属性]

删除表:DROP TABLE [IF EXISTS] 表名

数据库设计三大范式
一、什么是范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就叫做范式。

二、约束作用

数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。

三、三范式

第一范式:确保每列保持原子性

第二范式:确保表中的每列都和主键相关

第三范式:确保每列都和主键列直接相关,而不是间接相关

第一范式(1NF)确保每列保持原子性

第二范式(2NF)属性完全依赖于主键

第三范式(3NF)属性不依赖于其他非主属性 属性直接依赖于主键

注:数据不能存在传递关系,即每个属性都跟主键右直接关系而不是间接关系

约束?

实际上就是表中数据的限制条件

作用?

表在设计时加入约束就是为了保证表中的记录完整和有效

约束种类?
非空约束(not null)

用not null约束的字段不能为null值,必须给定具体的数据

create table test1(

name varchar(20) not null,  

age int

);

Insert into test1(age) values(16) //这里只给age字段名存值,并没有给不

//为空的name存值,mysql会报错

唯一性约束(unique)

unique约束的字段,具有唯一性,不可重复,但可以为null

     表级约束:

  1. 在建表时,单独用unique(字段)来设置字段的约束
  2. 使用表级约束,给多个字段联合约束
  3. 表级约束可以给约束起名字

create table test1(

id int(10),

name varchar(20) not null,  

email varchar(128),

unique(name,email)

);

主键约束(primary key)PK

主键(primary key)是表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录

表中的某个字段添加主键约束后,该字段为主键字段,主键字段中出现的每一个数据都称为主键值

复合主键(表级定义)

create table test1(

id int(10),

name varchar(20) not null,  

email varchar(128),

primary key(id,name)

);

外键约束(foreign key)FK

外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。

若有两个表A、B,id是A的主键,而B中也有id字段,则id就是表B的外键

A为基本表或父标,主表,B为信息表,子表,副表

创建外键:

foreign key(表的字段名) references 父表表名(父表的字段名)

按外键约束的字段数量分类

单一外键:给一个字段添加外键约束

复合外键:给多个字段联合添加一个外键约束

注意:

一张表可以有多个外键字段(与主键不同)

外键值可以为null

外键字段去引用一张表的某个字段的时候,被引用的字段必须具有unique约束

有了外键引用之后,表分为父表和子表

班级表:父表

学生表:子表

创建先创建父表

删除先删除子表数据

插入先插入父表数据

检查约束(目前MySQL不支持,Oracle支持)

约束的添加:

添加非空约束

alter table 表名 modify test_student char(10) not null;

添加唯一约束

alter table 表名 add unique(表字段名,字段,字段,字段);

添加主键约束

alter table 表名 add primary key(表的字段名,字段,字段);

添加外键约束

alter table 表名 add constraint N1 foreign key (表字段名) references 父表(父表字段名);

约束的删除:

删除not null约束

alter table 表名 modify 列名 类型;

删除unique约束

alter table 表名 drop index 唯一约束名;

删除primary key约束

alter table 表名 drop primary key;

删除foreign key约束

alter table 表名 drop foreign key 外键名;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css实战案例1:顶部搜索

代码样式&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title></head><body><div class"search_box"><!-- 搜索框--><div class"search">搜索…

【Linux】网络基础_2

文章目录 十、网络基础2. IP地址和MAC地址3. 端口号端口号和进程ID 4. 网络字节序 未完待续 十、网络基础 2. IP地址和MAC地址 IP协议有两个版本&#xff0c;IPv4和IPv6&#xff0c; 用的比较多的都是IPv4。IP地址是在IP协议中&#xff0c;用来标识网络中不同主机的地址&…

如何发现快速发现分析生产问题SQL

Performance Schema介绍 Performance Schema提供了有关MySQL服务器内部运行的操作上的底层指标。为了解释清楚Performance Schema的工作机制&#xff0c;先介绍两个概念。 第一个概念是程序插桩&#xff08;instrument&#xff09;。程序插桩在MySQL代码中插入探测代码&#xf…

基本聚集函数和case的应用

文章目录 1.基本聚集函数(1)基本聚集函数的介绍(2)使用基本聚集函数的简单例子&#xff08;1&#xff09;查询最大年龄&#xff0c;最小年龄年龄和平均年龄<1>最大年龄<2>最小年龄<3>平均年龄 (2&#xff09;配合上where语句&#xff0c;查询女士的平均年龄(…

JAVA笔记十四

十四、集合 1.集合概述 (1)集合是存储其它对象的特殊对象&#xff0c;可以将集合当作一个容器 (2)集合的相关接口和类位于java.util包中 (3)集合中的接口和类是一个整体、一个体系 2.集合接口 接口定义了一组抽象方法&#xff0c;实现该接口的类需要实现这些抽象方法&…

Docker核心技术:Docker原理之Cgroups

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Docker核心技术 系列文章&#xff1a;Docker原理之Cgroups&#xff0c;其他文章快捷链接如下&#xff1a; 应用架构演进容器技术要解决哪些问题Docker的基本使用Docker是如何实现的 Docker核心技术&#xff1a;…

C++初学者指南-5.标准库(第一部分)--标准库最小/最大算法

C初学者指南-5.标准库(第一部分)–标准库min/max算法 文章目录 C初学者指南-5.标准库(第一部分)--标准库min/max算法minmaxminmaxclamp (C17)min_elementmax_elementminmax_element相关内容 C标准库算法是一块新领域&#xff1f;⇒简短介绍 min min(a, b) → a 如果 a < b则…

Linux_实现UDP网络通信

目录 1、实现服务器的逻辑 1.1 socket 1.2 bind 1.3 recvfrom 1.4 sendto 1.5 服务器代码 2、实现客户端的逻辑 2.1 客户端代码 3、实现通信 结语 前言&#xff1a; 在Linux下&#xff0c;实现传输层协议为UDP的套接字进行网络通信&#xff0c;网络层协议为IPv4&am…

k8s+containerd(kvm版)

k8s&#xff08;Kubernetes&#xff09;是由Gogle开源的容器编排引擎&#xff0c;可以用来管理容器化的应用程序和服务&#xff0c;k 高可用&#xff1a;系统在长时间内持续正常地运行&#xff0c;并不会因为某一个组件或者服务的故障而导致整个系统不可用可扩展性&#xff1a…

【SpringBoot】 jasypt配置文件密码加解密

目前我们对yml配置文件中的密码都是明文显示&#xff0c;显然这不安全&#xff0c;有的程序员离职了以后可能会做一些非法骚操作&#xff0c;所以我们最好要做一个加密&#xff0c;只能让领导架构师或者技术经理知道这个密码。所以这节课就需要来实现一下。 我们可以使用jasypt…

爬虫学习3:爬虫的深度爬取

爬虫的深度爬取和爬取视频的方式 深度爬取豆瓣读书 import time import fake_useragent import requests from lxml import etree head {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 …

陶德:边种田边写代码,3年300万行,一个人写出了“国产大满贯QT”

这是《开发者说》的第12期&#xff0c;本期我们邀请的开发者是陶德&#xff0c;从小在国企矿山里长大&#xff0c;计算机成绩是文科班里最差的一个&#xff0c;毕业两年找不到工作&#xff0c;睡过公园&#xff0c;讨过剩饭&#xff0c;用打魔兽世界的方式磨炼技术&#xff0c;…

.NET 8+Vue2 部署到Window Server

.NET 8Vue2 部署到Window Server 1 配置环境 1.1 下载安装.NET 8 SDK&#xff0c;下载时需注意目标服务器的系统类型&#xff08;64位 or 32位&#xff09; https://dotnet.microsoft.com/zh-cn/download 1.2 下载安装SQL Server数据库&#xff08;服务和管理工具&#xff…

海外短剧系统搭建开发定制,H5/APP源码搭建部署,支持二开

目录 前言&#xff1a; 一、系统功能 二、部署流程 前言&#xff1a; 海外短剧系统搭建部署&#xff0c;前端uniapp&#xff0c;PHP语言。支持二开功能。 一、系统功能 以下是改写后的内容&#xff1a; 1. 多语言环境集成 —— 提供一键式翻译功能&#xff0c;轻松切换多…

【Vue3】计算属性

【Vue3】计算属性 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文内…

IT common sense常识

how to input formative json data in console console.log({"message": [{"cat_id": 1,"cat_name": "大家电","cat_pid": 0,"cat_level": 0,"cat_deleted": false,,,,})2) how to clear unecessary c…

基于生物地理算法的MLP多层感知机优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 生物地理算法&#xff08;BBO&#xff09;原理 4.2 多层感知机&#xff08;MLP&#xff09; 4.3 BBO优化MLP参数 5.完整程序 1.程序功能描述 基于生物地理算法的MLP多层感知机优化mat…

【数学建模】——前沿图与网络模型:新时代算法解析与应用

目录 1.图与网络的基本概念 1. 无向图和有向图 2. 简单图、完全图、赋权图 3. 顶点的度 4. 子图与图的连通性 2.图的矩阵表示 1. 关联矩阵 2. 邻接矩阵 3.最短路问题 1.Dijkstra 算法 2.Floyd 算法 4.最小生成树问题 1.Kruskal 算法 2.Prim 算法 5.着色问题 6.…

[Linux]Mysql之主从同步

AB复制 一、主从复制概述 主从复制&#xff0c;是用来建立一个和主数据库完全一样的数据库环境&#xff0c;称为从数据库&#xff1b;主数据库一般是准实时的业务数据库。 主从复制的作用 1.做数据的热备&#xff0c;作为后备数据库&#xff0c;主数据库服务器故障后&#xf…