高端私人订制网站建设,帮别人设计网站,什么网站可以做简历,网上企业管理系统免费版数据库定义 数据库是一类软件#xff0c;用来管理数据#xff0c;组织数据#xff1b; 关系型数据库MySQL#xff08;Oracle,SQL Server,SQLite#xff09;以表格形式组织数据#xff0c;数据格式要求严格#xff1b;非关系型数据库Redis#xff08;MongoDB,HBase… 数据库定义 数据库是一类软件用来管理数据组织数据 关系型数据库MySQLOracle,SQL Server,SQLite以表格形式组织数据数据格式要求严格非关系型数据库RedisMongoDB,HBase以键值对/文档形式组织数据数据格式较松散性能高运用在分布式场景中多维数据库essbase分布式数据库DB2是IBM开发的一种大型关系型数据库平台在软件开发领域中经典结论没有银弹 MySQL基本结构 MySQL的基本结构客服端-服务端 结构的程序 客户端client发出请求的一方
服务端server被动接受请求一方
请求request客户端主动给服务端发的数据
响应response服务端给客户端返回数据 服务器的基本特点
17*24小时运行引用分布式系统做高可用支持
2服务器是不知道客户端什么时候给他发请求服务器是被动的一方
3服务器负责存储和管理数据是数据库的本体可以给多个客户端和用户交互的界面提供服务 服务器本质就是一台电脑计算机
计算机怎么构成的
CPU中央处理器
主板一块大的电路板cup装在上面
内存硬盘 -负责存储数据的
电源散热器机箱
显卡GPU 专门负责图形渲染相关的计算的最贵的
显示器鼠标键盘 存储数据
1内存-存储空间较小访问速度较快成本高数据易失断电数据丢失
2硬盘-存储空间较大访问速度较慢速度比内存慢速度慢好几个数量级一个数量级就是10倍成本低数据持久断电数据不会丢失持久是相对的并不是永久存在
硬盘分类机械硬盘固态硬盘固态硬盘比机械硬盘快一个数量级外存外存是一个“统称”硬盘只是典型代表还有U盘软盘光盘CPU中央处理器用于各种逻辑判断和算术运算CPU是人类当前科技领域的巅峰之作能相提并论的就是氢弹是通用运算芯片显卡GPU是专用计算芯片专门用来计算图形图像GPU速度比CPU快显存显存就是专门给显卡使用的内存平时内存是给CPU使用的为了不冲突会在显卡上单独焊上内存单元AI显卡用于AI领域中 MySQL数据库存储数据数据存储在硬盘空间大持久化存储上
Redis是将数据存储在内存上很特殊*
大数据一个机器存不了的数据使用多个机器来存储这个操作数据的一系列技术体系叫做大数据 数据库的基本操作
SQL是大小写不明感的写成大写或者小写都可以
各种命名名称不能是SQL中的关键字-〉如果非要使用可以使用反引号进行引起来
一个汉字占几个字节-〉这是不确定的要根据字符集GBK使用2个字节表示一个汉字UTF8变长编码一般是3个字节表示一个汉字 ❓误删数据库 控制好权限MySQL支持丰富的权限配置功能根据账号限制权限 备份重要的数据多备份几份 线上数据表示真实的用户数据
线下数据用来测试的数据数据是假的 直观基本操作简单 1show databases 查看现有的数据库 2create database 数据库名创建数据库 3create database 数据库名 charset 字符集名创建数据库指定字符集 4use 数据库名选中数据库 5drop database 数据库名删除数据库 额外补充知识点实际工作
2_26
线上环境/生产环境
一、线下环境
1办公环境-〉开会做PPT发邮件写日报周报软件聊天
2开发环境-〉 简单项目开发环境就是办公环境 项目对环境要求较高公司会发单独的服务器通过办公电脑连到服务器上开发
3测试环境-〉类似于开发环境
二、线上环境
1生产环境-〉 程序会放到上面就可以被外面用户真实访问到如果用户访问量比较大对于配置比较高 在生产环境上的程序出现bug了会被外面的用户直接访问到 把写好的程序发布到生产环境上这个过程成为“上线” 上线是一个非常重要的操作“误操作”引出的生产环境的问题 编程语言体系-〉“武当”“少林”
C代码好理解代码好写不保证代码的正确性Lisp更好的能保证代码的正确性代码不好理解代码不好写思考能力极强 MySQL中的数据类型
1数字
bit 1
tinyint 1
smallint 2
int 4
bigint 8 floatm,d 4 m表示长度d表示小数位数
doublem,d 8
decimalm,d m/d最大值2要最大值
numericm,d m/d最大值2 float和double不能精确存储小数所以避免在金钱计算机科学前使用 decimal和numeric是能够精确存储小数的但是需要消耗的空间和时间更多
慎重使用 浮点数 比较相等-〉0.10.20.3 false 2字符串
varchar(自定义可存放最大值) 可变长的字符串类型varchar的单位是“字符”而不是字节一个汉字就是一个字符
text 长文本数据长度靠自适应的会自动扩容但是实际开发中会明确数据存储的上限
mediumtext 更长文本数据和text一样谨慎使用
blob 存储二进制数据指的是图片音频视频可执行程序.class文件谨慎使用 3时间
datetime 8 1000到9999年不会进行时区的检索及转换
timestamp 4 1970到2038自动检索当前时区并转换 4null
null-〉数据库中的null表示“这个单元格没填” MySQL核心操作增、查、改、删 - 详细
create table 表名列名 类型列名 类型....;创建表
desc 表名查看表结构desc-〉describe描述在查询有一个desc-〉descend下降
drop table 表名删除表不仅删除了表还删除了表中的数据
MySQL中的注释#和-- 两横杠加一空格 额外补充知识点类型
强类型和弱类型-〉 越支持隐式类型转换的是弱类型越不支持的是强类型隐式类型转换就是不需要写代码就就能自动转换类型的
静态类型和动态类型-〉 一个变量的类型能否在程序运行过程中发生改变。允许发生改变就是动态类型不允许发生改变的就是静态类型 1新增
insert into 表名 values 值值...
insert into 表名 列名列名... values 值值...
insert into 表名 values值值...值值...
insert into 表名 列名列名... values 值值...
MySQL中有一个专门的函数now来获取当前系统时间
sql作为一个编程函数提供了一些库函数
时间加入的标准是“2024-3-2 160100”
2查询
select * from 表名全列查询select*是一个危险操作实际工作中生产环境上要慎用
select 列名列名... from 表名指定列的查询列名必须存在于要查的表中
select只是查询是读操作不会影响数据库服务器硬盘上存储的数据
decimal限制的是硬盘上的数据而不是临时表的数据临时表能够尽可能保证最终计算结果是正确的
1select*from 表名全列查询
2select 列名列名 from 表名指定列查询
3select destinct 列名 from 表名去重查询destinct
4select 列名列名列名 as 重命名 from 表名计算查询
5select * from 表名 order by 列名/表达式排序查询order by默认升序排序
select * from 表名 order by 列名/表达式 desc降序排序descend ❓在SQL中进行算术运算如果其中某个操作数结果是null那么最后结果也是null。我对这个定义还有一点疑问❓ 6select * from 表名 order by 列名1列名2...order by指定多个列排序先按照列名1排序如果列名1有相同的就按列名2排序...
7select * from 表名 order by 列名1列名2 desc...按列名1升序排序按列名2降序排序...
8select 列名列名... from 表名 where 条件 条件-〉逻辑运算符关系运算符 “”就表示“等于”的意思。null不安全例如nullnull结果是null。null和其他的值进行关系运算还是null相当于false “〈〉”表示“等于”的意思。使用null是安全的例如null〈〉null结果是true1 between a1 and a2范围在a1,a2之间返回true1 in值1值2....)相当于是一个集合判断这个值是不是在这个集合里 is null 是nullis not null 是不为null and就是 or就是 not就是 where和order by可以结合使用where在前order by在后 and的优先级比or优先级高 超详细查询
1select * from 表名全列查询
2select 列名列名... from 表名指定查询
3select 表达式 from 表名带有表达式的查询
4select 表达式 as 别名 from 表名带有别名的查询表达式查询只影响临时表
5select distinct 列名 from 表名去重查询
6select 列名 from 表名 order by 列名/列名 desc排序查询
7select 列名 from 表名 where 条件条件查询
8select 列名 from 表名 列名 like “x%”模糊查询 慎用like “x%”以x开头“%x”以x结尾“%x%”包含x “x_”x开头_表示一个字“x__”x开头__表示两个字
9针对空值的查询〈〉可以通过两个列比较、is null、is not null
10分页查询️ select * from 表名 limit 值查询的值小于等于值此处是offset 0 select * from 表名 limit 值1 offset 值2查询跳过值2的数据查出小于等于值1的条数offset表示的是偏移量 select * from 表名 limit 值1值2值1是offset值2是最大条数 3修改
1update 表名 set 列名 值列名 值... where 条件
update修改的是硬盘上存储的数据select修改的是临时表上的数据 4删除
1delete from 表名 where 条件删除的都是以行为维度进行删
2delete from 表名删除表中所有数据 一个sql的执行顺序 1遍历表 2带入条件 3计算列名中的表达式定义别名 4排序/聚合 等操作 编程中谈到区间区间都是前闭后开 数据库的约束
约束可以理解为数据库提供的一种针对数据的合法性验证的机制
1not null 设定not null说明列里不能存储空值表里内容必填
2unique 这定这一列的所有行的数据都得是唯一的不能重复
3default 指定默认值当不进行任何指定默认值就是null
4primary key 主键一条记录的身份标识类似于 学号/身份证 not null unique
5foreign key 外键涉及到两个表之间的关系
6check 指定条件插入/修改数据数据符号才能插入/修改成功