知识笔记博客

创建数据库和表、修改表结构

数据表中数据的增删改操作

数据表中数据的查询操作

事务提交/回滚等

​​create database db character set utf8​​; # 创建一个db数据库指定字符集

​​use db;​​ 切换数据库

​​select database();​​ 查看正在使用的数据库

​​show database;​​ 查看有哪些数据库

​​show create database db;​​ 查看一个数据库的定义信息

​​drop database db; ​​ 删除某个数据库

​​CREATE TABLE 表名( 字段名称1 字段类型(长度), 字段名称2 字段类型);​​

​​create table A like B;​​创建一个表结构与B相同的A表

​​show tables;​​ 查看当前数据库中所有的表

​​desc A;​​ 查看表A结构

​​show create table A;​​查看创建表的SQL语句

​​drop table if exists A;​​ 表A存在才删除

​​rename table A to B;​​ 将表A名字改为B

​​alter table A add a1 varchar(20);​​ 为表A添加一个新字段a1

​​alter table A modify a1 varchar(50);​​ 修改表A字段a1类型

​​alter table A change a1 a2 varchar(100); ​​ 更改命名表A字段a1为a2

​​alter table A drop a2;​​ 删除表A的a2字段

对表中的数据进行进一步的限制,从而保证数据的正确性、有效性、完整性. 违反约束的不正确数据,将无法插入到表中

常见约束

约束名

约束名关键字

特点

作用

主键

primary key

不可重复 唯一 非空

用来表示数据库中的每一条记录(用来唯一标识数据表中的一条记录)

唯一

unique

某一列不予许为空

非空

not null

表中的某一列的值不能重复(对null不做唯一的判断

外键

foreign key

用来指定某列的默认值

​​create table A(a4 varchar(20) default 'nn') ​​为表A添加一个默认值为'nn'的字段a4

​​create table A(a1 int primary key)​​ 创建一个带主键的表(写法1)

​​create table A(a1 int,primary key(a1))​​创建一个带主键的表(写法2)

​​alter table A add primary key(a1);​​创建表后再指定主键(写法3)

​​alter table A drop primary key;​​ 删除表A的主键

​​create table A(a1 int primary key auto_increment)​​ 为表A创建一个主键自增字段a1

​​create table A(a1 int primary key auto_increment)auto_increment=100;​​默认auto_increment的开始值为1,修改编号从100开始

删除表中所有数据有两种方式

清空表数据的方式

特点

delete

只是删除表中所有数据,对自增没有影响

truncate

整个表删除掉,然后再创建一个新表,自增主键重新计算

​​create table A(a2 varchar(20) not null) ​​为表A添加一个值不能唯一的字段a2

​​create table A(a3 varchar(20) not null) ​​为表A添加一个值不能为空的字段a3

主键:数据表A有一列可以作为唯一标识一条记录(主表)

外键:数据表A有一列指向另外一张数据表B的主键(从表)

语法:

​​[constraint] [外键约束名称] foreign key (外键字段名)references 主表(主键字段名)​​

​​alter table 从表 add [constraint] [外键约束名称] foreign key (外键字段名) references 主表(主键字段名)​​

​​alter table 从表 drop foreign key 外键约束名称​​

如果想实现删除主表数据的同时,也删除掉从表数据,可以使用级联删除操作

​​on delete cascade​​

​​insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);​​

​​update 表名 set 列名=值 [where 条件表达式:字段名 = 值]​​

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

出现上述报错,可能是没带条件修改导致,可以解除安全模式

输入:SET SQL_SAFE_UPDATES = 0

​​delete from 表名 [where 字段名=值]​​ 【不推荐】一条条记录删除,效率低

​​truncate table A;​​ 【推荐】先删除表A,再创建一张表A

from + join --> where --> group by --> having --> select (窗口函数) --> order by --> limit

​​select a1 from A​​ 查询表A中a1字段的所有数据

​​select 列名 from 表名 where 条件表达式​​

运算符

运算符

说明

>,<,<=,>=,=,<>,!=

大于,小于,小于(大于)等于,等于,不等于,不等于

between..and...(not between...and...)

显示在某一区间的值 (>=min && <= max)

in(集合),not in (不在集合)

集合表达多个值,使用逗号分隔

like '%aa%'

模糊查询(包括aa)

is null,is not null

查询某一列为null的值,不能写=null

<=>

比较两个值是否为null,是则其值为1,否则为0

RLIKE, REGEXP

正则式匹配

逻辑运算符

运算符

说明

and &&

多个条件同时成立

Or ||

多个条件任一成立

Not

不成立,取反

本节涉及的内容主要有:排序、聚合、分组、多表、合并、子查询

​​select 字段名 from 表名 [where 字段=值] order by 字段名 [asc/desc]​​ 其中asc默认值表示升序排序,desc表示降序

​​select * from A order by a1 desc, a2 desc;​​ 组合排序,对字段a1降序再对字段a2降序

目的:把多个值(某一列的值,纵向查询)进行计算,返回一个单一的值。(聚合函数会把null忽略),比如求个数、求和、求平均值等

​​select 聚合函数(字段名) from 表名;​​

聚合函数

作用

count(字段)

统计指定列不为null的记录行数

sum(字段)

计算指定列的数值和

max(字段)

计算指定列的最大值

min(字段)

计算指定列的最小值

avg(字段)

计算指定列的平均值

分组往往和聚合结合着一起使用,分组后对各自组内进行聚合统计。

​​select 分组字段/聚合函数 from 表名 group by 分组字段 [having条件];​​

where 与 having的区别

过滤方式

特点

where

where 进行分组前过滤,后面不能写 聚合函数

having

haing 进行分组后过滤,后面可以写 聚合函数

查询2张表及以上

​​select 字段名 from 表1,表2;​​ 交叉连接查询

好习惯:小表在前,大表在后

union all简单的将结果合并后返回,在效率上要比union快很多

一条select查询语句的结果,作为另一条selet语句的一部分

​​SELECT 查询字段 FROM 表 WHERE 字段=(子查询)​​ 子查询的结果作为查询条件

​​SELECT 查询字段 FROM (子查询)表别名 WHERE 条件;​​子查询的结果作为一张表

​​SELECT 查询字段 FROM 表 WHERE 字段 IN (子查询);​​ 子查询结果是单列多行

​​SELECT 查询字段 FROM 表 WHERE (字段1,字段2) IN (子查询);​​子查询结果是多列多行

好习惯:子查询起别名

​​select 字段1,字段2... from 表名 limit offset, length;​​offset 起始行数,从0开始记数,如果省略,则默认为0, length 返回的行数

窗口函数对一组查询执行类型聚合的操作。但是不同的是,聚合函数操作将查询的行分组,从而得到单个结果行,窗口函数为每个查询行生成一条记录。

窗口的概念非常重要,它可以理解为记录集合,窗口函数也就是在满足某种条件的记录集合上执行的特殊函数。对于每条记录都要在此窗口内执行函数,窗口大小都是固定的,这种属于静态窗口;不同的记录对应着不同的窗口,这种动态变化的窗口叫滑动窗口

语法:

​​函数名([expr]) over(partition by <要分列的组> order by <要排序的列> rows between <数据范围>)​​

语法分解:

函数(如:sum(), max(), row_number()...) + 窗口子句(over函数)

over() 内部参数:

窗口子句

备注

PRECEDING

往前 n preceding 从当前行向前n行

FOLLOWING

往后 n following 从当前行向后n行

CURRENT ROW

当前行

UNBOUNDED

起点

UNBOUNDED PRECEDING

表示该窗口最前面的行(起点)

UNBOUNDED FOLLOWING

表示该窗口最后面的行(终点)

排序函数

备注

ROW_NUMBER()

从1开始,按照顺序,生成分组内记录的序列

RANK()

生成数据项在分组中的排名,排名相等会在名次中留下空位 1 2 2 4

DENSE_RANK()

生成数据项在分组中的排名,排名相等在名次中不会留下空位。1223

NTILE(n)

用于将分组数据按照顺序切分成n片,返回当前切片值, 等频切片

统计函数

备注

COUNT(col)

统计各分组内个数

SUM(col)

统计各分组内合计

MIN(col)

统计各分组内最小值

MAX(col)

统计各分组内最大值

AVG(col)

统计各分组内平均值

偏移函数

备注

LEAD(col,n,DEFAULT)

用于统计窗口内往下第n行值 从当前行下移几行的值

LAG(col,n,DEFAULT)

用于统计窗口内往上第n行值 从当前行上移几行的值

first_value(col, DEFAULT)

取分组内排序后,截止到当前行,第一个值

last_value(col, DEFAULT)

取分组内排序后,截止到当前行,最后一个值

但是索引也不是建立越多越好,如果把索引比作是目里,有一本书有100页,50页是目录,试问这本书还有人愿意看吗?

索引名称

说明

主键索引 (primary key)

主键是一种唯一性索引,每个表只能有一个主键, 用于标识数据表中的每一条记录

唯一索引 (unique)

唯一索引指的是 索引列的所有值都只能出现一次, 必须唯一.

普通索引 (index)

最常见的索引,作用就是 加快对数据的访问速度

​​create view 视图名 [column_list] as select语句;​​

​​create view Aasname as select * from A;​​创建一个名为Aasname的视图,视图指向表A

​​ifnull​​为空值设置一个默认值

​​if​​条件语句

​​case when...then.. end​​条件语句

​​round​​保留小数位

​​concact​​合并函数

DATE_FORMAT()

DATEDIFF()日期相減

MONTH() 获取月份(如果以年/月/日作为分组,分组后select日期字段可以完整保留,这也是日期与其它非日期字段分组的特别之处。)

​​select .. from .. group by ... having count(*) > n即可​​过滤组内统计>n时

结合一些文档,把SQL/MySQL常用知识点汇总总结起来,或多或少还有遗漏,但不要紧,日后遇到再补充,以便本文日后当笔记查阅。

Ensp 简单的VXLAN 实验

联合主键采用联合主键可以解决表中没有唯一主键字段的问题,不过联合主键有如下的缺点: 效率低。在进行数据的添加、删除、查找以及更新的时候数据库系统必须处理两个字段,这样大大降低了数据处理的速度。 使得数据库结构设计变得糟糕。组成联合主键的字段通常都是有业务含义的字段,这与&ldquo;使用逻辑主键而不是业务主键&rdquo;的最佳实践相冲突,容易造成系统开发以及维护上的麻

DISTINCT对整个结果集进行数据重复抑制DISTINCT是对整个结果集进行数据重复抑制的,而不是针对每一个列,执行下面的SQL语句:SELECT DISTINCT FDepartment,FSubCompany FROM T_Employee执行完毕我们就能在输出结果中看到下面的执行结果: FDepartmen

1、概念SQL提供了将SQL语句嵌入到某种高级语言中的使用方式,通常采用预编译的方法将SQL语句嵌入高级语言中。采用的方法由DBMS的预处理程序对源程序...

1、SQL标准ANSI(美国国家标准机构)SQL对ANSI SQL进行修改后在1992年采用的标准SQL-92或SQL2SQL-99或SQL3标准从SQ...

0x00 概述 之前写过一篇Mysql B+树学习,简单的介绍了B+数以及MySql使用B+树的原因, 有了这些基础知识点,对MySql索引的类型以及索引使用的一些技巧,就比较容易理解了。

继我的上篇博客:Oracle索引知识学习笔记,再记录一篇MySQL的索引知识学习笔记,本博客是我在学习尚硅谷的学习教程后,做的笔记,当然我不是为...

平常知识学习笔记积累,点点滴滴的积累成就将来成功的自己。

基础知识1 . 除了常规比较操作,以下值或返回True或False: - 数字(0,0.0返回false) - 数据

装修知识笔记

介绍sql注入当中的一些基础知识,包括一些重要的trick、文件操作、常用的函数...

一、 SQL 基本语句SQL 分类:DDL —数据定义语言 (Create , Alter , Drop , DECLARE)DML —数据操纵语言 (Select , Delete , Update , In

笔记列表 基础知识 语言基础 函数 数组 字符串 cookie和storage 异步处理 DOM DOM操作 DOM事件 计算机原理 计算机是怎样跑起来的 CSS3 transform BFC Git config配置项 git常用命令及技巧 Git版本控制管理 网络与安全 网络 get和post请

目录Hadoop HDFS分布式文件

(一)最优子结构与递归方程 设 dp [i][j] 表示从顶部走到第 i 行第 j 列的最大路径和。最优子结构表现为:dp [i][j] = max (dp [i-1][j-1], dp [i-1][j]) + 三角形第 i 行第 j 列数值(j>0 且 j<i)。边界条件:dp [0][0] = ...

理解关系数据库(关系模型),需要了解关系代数(关系模型)。 关系代数有如下演算。◆4つの集合演算和集合演算(Union)差集合演算(Difference)共通集合演算(Intersection)直積演算(Cartesian Product)◆4つの関係演算射影演算(Projection)選択演算(Selection)結合演算(Join)商演算(Division) 【和集合演算(

一、Pandas库简介 Pandas 是基于 NumPy 构建的专门用于处理表格和混杂数据设计的 Python 库,核心设计理念包括: 标签化数据结构,提供带标签的轴。 灵活处理确实数据,内置 NaN 处理机制。 智能数组对齐,自动按标签对齐数据。 强大的 IO 工具,支持从 CSC、Excel、S ...

一、核心代码实现 %% 参数设置 Nt = 64; % 发射天线数 Nr = 16; % 接收天线数 K = 8; % 用户数 SNR = 20;% 信噪比(dB) iter = 50;% 迭代次数 %% 信道生成(毫米波簇状信道) H = zeros(Nr, Nt); for k = 1:K Ao ...

THE END
0.SQLServerManagementStudio(SSMS)|MicrosoftLearnLearn SQL Server Management Studio 焦点模式 什么是 SQL Server Management Studio (SSMS)?适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsSQL Server Management Studio (SSMS)是用于管理任何 SQL 基础结构的集成环 jvzquC41nggsp7rketutqoy0eqs0|q2ep1yto|4usn3tg{{gt/sbpjlgogtu/|ywfku.u|ruAxofyFxsn/yftjt/xks3>
1.史上最全SQL数据库入门到精通笔记合集本笔记系统梳理了SQL数据库的全部基础知识,涵盖数据库类型、核心语法(DDL、DML、SELECT、JOIN、分页)、数据库设计范式(1NF、2NF、3NF、BCNF)、性能优化策略(索引、查询优化、分区、缓存)、安全机制(权限、加密、审计)以及SQL Server特有功能(T-SQL、分布式处理、报表服务)。内容结构清晰,理论结合实践,适合初学者全面jvzquC41dnuh0lxfp0tfv8|gkzooa=77339858ftvkimg8igvcomu86762:8::8
2.關於每個資料庫系統管理員應該知道的SQLServer中使用磁碟機的您的SQL Server 安裝停用磁碟快取,並提供穩定的 I/O 快取的控制站的能力而定。順序將資料寫入各個磁碟不是 SQL Server 的障礙,只要控制站能提供正確的穩定媒體快取功能。控制站設計的複雜性會隨進階的資料安全性技術 (如鏡像)。 若要完整保護您jvzquC41uwvqq{y0okisq|thv0ipo8j/jq0vxuke1+F;.>9';I&G?*;8'HD'N;'CH+9H.J7':6&:K*G:'H4'A<'G8+:8.>;'G;&DJ*CD'K8'K8'DD+F9.G7'D7&G@*CG'G2'N<';2+98.J7';9&C:*G8'>8'A>'G:+B;.G4'G=&;O*C7'K:'A6';5+F9.>C'::.uzq/ugxwg{2'G6+C:.FF'G:&DM*DH'K8'B9'C:+F9.F5':7&G@*C4'?G'N;'C;+:H.J9';G&:=*G7'HG'JG'G7+9H.>8'G=&;J*:6'K9'K8':9+F:.F:':G.9n:g96i6/n766/77:92d2f8.9B8eh8?eel52
3.从0到1吃透SQL:这份笔记帮我搞定数据库操作核心刚接触数据库时,我总被各种 SQL 命令绕得晕头转向 —— 明明都是字母组合,怎么有的负责建表、有的负责删数据,还有的能玩出分组查询的花样?后来跟着项目实操,边学边记整理出这份笔记,没想到竟成了我应对日常开发和面试的 “救命稻草”。今天就把这份干货拆解开来,从 SQL 分类到实战命令,带你一步步搞懂数据库操jvzquC41dnuh0lxfp0tfv869;=:;:981cxuklqg1fkucrqu13;29;:3;7
4.SQLServer2022|Microsoft借助集成的数据平台,轻松调整和适应快速发展的环境,为应用程序添加智能层,发现预测性见解,并治理任何地方的数据。 了解详细信息 技术社区论坛:SQL Server 和 Azure 数据库 通过留言板与 Microsoft Engineering 专家和社区的其他成员联系,并访问其他资源。 SQL ServerAzure 数据库 jvzquC41yy}/orhtquugv7hqo1€i/ls1usr.unwxgt5tsu2ugt|ft67244
5.基础知识RMAN基础知识Part2腾讯云开发者社区文章被收录于专栏:数据库学习笔记 关联问题 换一批 RMAN是什么? RMAN的主要功能有哪些? 如何使用RMAN进行备份? 接上一篇【基础知识】RMAN基础知识-Part1 利用两篇将之前学的内容整理出来,又做了一遍实验,常用不常用的都有。有很多可以深挖的点,后面再慢慢搞 一、配置备份集-备份片-压缩-加密 1.配置备份集最大大小 代 jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk03A6893=
6.AI训练营SQLSQL基础:初识数据库与SQL-安装与基本介绍等学习打卡点击开启学习 02 Task 2 SQL基础:查询与排序-select、运算符、聚合分组查询等学习打卡点击开启学习 03 Task 3 SQL进阶:复杂查询方法-视图、子查询、函数等学习打卡点击开启学习 04 Task 4 SQL进阶: 集合运算-表的加减法和join等学习打卡点击开启学习 训练营规则 jvzquC41vkgoeqn0cnozww3eqo5trnhkcny0r{toqvopp8fkecsquzq
7.史上最全SQL基础知识总结(理论+举例)sql数据库基础知识SQL基础知识 一、SQL 概述 1、什么是 SQL 2、语法要求 二、SQL 分类 三、DDL(Data Definition Language):数据定义语言 基本操作 1.操作数据库 2.数据类型 3.操作表 四、DML(Data Manipulation Language):数据操作语言 1.插入数据 2.修改数据 3.删除数据 jvzquC41dnuh0lxfp0tfv8r2a8=52;5481gsvrhng1jfvjnnu1737<=;79>
8.SQLServer笔记(超详细,值得收藏)sqlserver学习笔记本文详细介绍了SQL的基础知识,包括数据库和表的创建与管理、数据的增删改查操作、索引和事务的使用等内容。 💂 个人网站:【紫陌】【笔记分享网】 💅 想寻找共同学习交流、共同成长的伙伴,请点击【前端学习交流群】 目录 1.创建数据库 2.创建,删除表和使用表 jvzquC41dnuh0lxfp0tfv8|gkzooa><8999128ftvkimg8igvcomu86487>:6>5
9.数据库基础数据库基础 本文对数据库进行了简要概述:什么是数据库、为什么要使用数据库以及数据库不同部件的作用。 术语适用于 MicrosoftAccess 数据库,但这些概念适用于所有数据库产品。 本文内容 什么是数据库? Access 数据库部件 什么是数据库? 数据库是一种用于收集和组织信息的工具。 数据库可以存储有关用户、产品和订单 jvzquC41uwvqq{y0okisq|thv0ipo8j/et0c{ykenk0cA9;ce77/9.5l=e;6g8e;56Apy>p~qn(xksurtp?3<
10.数据库复习笔记(全覆盖,包括往年部分真题)腾讯云开发者社区文章介绍数据库系统知识,涵盖数据库基本概念、数据模型、系统结构、关系数据库基础、SQL语言、数据库设计、保护及新技术等内容,还分享学习心得与博文排版问题。jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk049:7866
11.mysql基础知识笔记wangfan000mysql基础知识笔记 0. 介绍和安装 0.1 介绍 RDBMS : 关系型数据库 ,代表产品: Oracle MySQL MSSQL PG NoSQL:非关系型的数据库,易拓展,大数据量,高性能,代表产品:MongoDB Redis ES NewSQL:不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID(原子性、一致性、隔离性、持久性)和SQL(结构化查jvzquC41yy}/ewgnqiy/exr1hctgcwf1r1765::9954ivvq
12.数据库入门笔记(基础篇)数据库基础学习数据库入门笔记(基础篇) 本文介绍了数据库的基本概念,包括数据库管理系统(DBMS)和SQL语言。详细阐述了关系型数据库的特征,如使用表存储数据和SQL进行操作。接着,讲解了SQL的通用语法、分类以及DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和DCL(数据控制语言)的用途。此外,讨论了数据类型、表的操作(jvzquC41dnuh0lxfp0tfv8hqps{fthoul1gsvrhng1jfvjnnu1742>57;2;
13.SQL基础(超详细版!!)基础sql一、SQL概述 1.1 什么是SQL SQL(Structured Query Language)是“结构化查询语言”,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server等。SQL标准(ANSI/ISO)有: SQL-92:1992年发布的SQL语言标准; SQL:1999:1999年发布的SQL语言标签; jvzquC41dnuh0lxfp0tfv8Gqpatfp~q1ctzjeuj1fgzbkux133?49B547
14.SQL基础(自己笔记)sql练习笔记SQL基础(自己笔记) SQL基础 基本知识点 SQL 分类 基本数据类型 基础篇 DDL(数据库操作) DDL(数据表操作) DML(数据操作) DQL(查询操作) 查询条件: 1.基础查询: 2.排序查询: 3.聚合函数: 4.分组查询: 5.分页查询: 6.书写顺序: 约束 事务 1.方法一jvzquC41dnuh0lxfp0tfv8MG;;<0c{ykenk0fnyckny03=798:<:5
15.计算机网络计算机网络基础知识笔记腾讯云开发者社区【计算机网络】计算机网络基础知识笔记 相关视频——计算机网络微课堂(有字幕无背景音乐版) 前言 因特网概述 网络、互联(连)网和因特网 网络是由若干结点和连接这些结点的链路组成的。 多个网络还可以通过路由器互联起来,这样就构成了一个范围更大的网络,即互联网。因此,互联网是网络的网络。jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk04;=8266
16.SQLServer数据库收缩相关知识笔记腾讯云开发者社区1、为什么要进行数据库收缩? SQL Server 数据库采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了300MB,而实际上只占用了20MB空间,这样就会造成磁盘存储空间的浪费。可以通过数据库收缩技术对数据库中的每个文件进行收缩,删除已经分配但没有使用的页。从而节省服务器的存储的成本。 2jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk03A6277?
17.SQLServer基础学习笔记sqlserver软件操作笔记Server 基础学习笔记 一、SQLServer简介 SQL Server 是微软公司开发的一种关系型数据库管理系统(RDBMS),它支持 ANSI SQL 标准并且拥有自己的 T-SQL 扩展。SQL Server 被广泛应用于企业级数据管理和商业智能应用。 二、SQL Server 安装与配置 安装步骤: jvzquC41dnuh0lxfp0tfv8jvjpodk}~dgvg0c{ykenk0fnyckny03<=;83974