avatar
文章
70
标签
5
分类
2
主页
归档
标签
分类
Crayz's Blog
搜索
主页
归档
标签
分类

Crayz's Blog

DataBase 数据类型
发表于2024-05-22|学习笔记
String 类型 CHAR 固定长度字符串 char会开辟指定个字符的一个储存空间,假如存放一个字符A,剩余的字符空着放那,别的字符也不可以使用。 VARCHAR 可变长度字符串 max:64KB varchar会根据我们存放的字符的长度来开辟存储空间。 LONGTEXT 长文本串 max:4GB 整数类型 TINYINT 占用字节:1B,数值范围:[-128, 127] UNSIGNED TINYINT (无符号微整型) 数值范围:[0, 255] SMALLINT 占用字节:2B,数值范围:[-32K, 32K] MEDIUMINT 占用字节:3B,数值范围:[-8M, 8M] INT 占用字节:4B,数值范围:[-2B, 2B] BIGINT 占用字节:8B,数值范围:[-9Z, 9Z] 浮点数类型 DECIMAL(p,s) 用于存储定点数...
DataBase 事务
发表于2024-05-18|学习笔记
代表单个工作单元的一组SQL语句,在事务中的语句都应成功完成。 属性(ACID): 原子性(Atomicity) 事务不可中断,要么事务中所有语句被执行,要么事务被退回,执行的更改被撤销 一致性(Consistency) 数据库状态保持一致 隔离性质(Isolation) 事务之间彼此不受干扰,且一次只有一个事务可更新同样的数据(互斥) 持久性(Durability) 事务产生的更改是永久的 创建事务 12345START TRANSACTION; -- 开启事务 -- 要执行的语句COMMIT; -- 关闭事务 常见并发问题 脏读(Dirty Reads) 事务读取了尚未被提交的数据 不可重复读(Non-repeating Reads) 就是一个事务读到另一个事务修改后并提交的数据(update)。在同一个事务中,对于同一组数据读取到的结果不一致 幻读(Phantom...
DataBase 触发器和事件
发表于2024-05-16|学习笔记
触发器 MySQL触发器(Trigger)是一种特殊的存储过程, 它与表有关,当表上的特定事件(insert,update,delete)发生时,触发器会自动执行。 可以使用触发器来实现数据约束,数据验证,数据复制等功能 数据复制:通过创建触发器,在给一张表插入数据的同时给另一张表插入同样的数据 数据验证:在插入或更新数据时,检查记录的某些字段是否符合要求,则拒绝插入或者更新,这样可以保证数据的完整性和一致性 触发时间分为AFTER和BEFORE两种 创建触发器 12345678910DELIMITER $$CREATE TRIGGER payments_after_delete AFTER DELETE ON payments FOR EACH ROWBEGIN UPDATE invoices SET payment_total = payment_total - OLD.amount WHERE invoice_id = OLD.invoice_id;END$$DELIMITER ; 查看触发器 1SHOW TRIGGER 删除触发器 1DROP...
DataBase 存储过程
发表于2024-05-13|学习笔记
存储过程是一个包含一堆SQL代码的数据库对象 修改默认分隔符的原因: 在MySQL中创建存储过程时,我们通常需要修改默认的分隔符。原因是MySQL默认使用分号(;)作为SQL语句的结束标志。但在存储过程中,我们可能需要使用多条SQL语句,并且这些语句也是以分号结束的。 如果不修改默认的分隔符,MySQL会在遇到第一个分号时就认为存储过程的定义结束了,从而导致存储过程的创建失败。因此,我们通常在创建存储过程前先设置一个临时的分隔符(例如 $$),然后在存储过程结束后再将分隔符改回分号。 创建存储过程 12345678910DELIMITER $$ -- 修改默认分隔符CREATE PROCEDURE get_invoices_with_balance()BEGIN SELECT * FROM invoices_with_balance; -- 在begin-end中,每一次的查询语句都用;分隔END$$ -- 使用修改后的默认分隔符来将begin-end中的内容视为一个整体DELIMITER ;CALL get_invoices_with_balance() --...
DataBase 增删改语句
发表于2024-05-07|学习笔记
INSERT子句 插入数据 插入单行 格式:INSERT INTO 表名 (列名1,列名2,……) VALUES(值1,值2,……) 123INSERT INTO customers(first_name,last_name,address,city,state)-- 列名属于可忽略部分,但通过写列名,可以不按表中的列名顺序插入,如果大量数据不按照表中列名顺序,可考虑写列名部分;同时写列名部分,可以只插入表中没有设定默认值的列值,其他则会设定为默认值VALUES('xiling','luo','SZTU','shenzhen','GD') 插入多行 格式:INSERT INTO 表名 (列名1,列名2,……) VALUES(值1,值2,……),(值1,值2,……),…… 123INSERT INTO...
DataBase 常用函数
发表于2024-05-07|学习笔记
数值函数 ROUND函数 格式:ROUND(value,parameter) 将value四舍五入到paramet位小数 12SELECT ROUND(5.7542,2)-- 运行结果:5.75 TRUNCATE函数 格式:TRUNCATE(value,parame) 将value截断到paramet位小数 12SELECT TRUNCATE(5.7552,2)-- 运行结果:5.75 CEILING函数 格式:CELING(value) 返回大于或等于value的最小整数 12SELECT CEILING(5.76)-- 运行结果:6 FLOOR函数 格式:FLOOR(value) 返回小于或等于value的最大整数 12SELECT FLOOR(1.52)-- 运行结果:1 ABS函数 格式:ABS(value) 返回绝对值 12SELECT ABS(-5.2)-- 运行结果:5.2 RAND函数 生成0-1之间的随机值 1SELECT RAND() 字符串函数 LENGTH函数 格式:LENGTH(str) 返回字符串的字符个数 12SELECT...
DataBase 聚合函数
发表于2024-05-07|学习笔记
函数简述 MAX() 求该列中的最大值 MIN() 求该列中的最小值 AVG() 求该列的平均值 SUM() 求该列的值之和 COUNT() 统计该列中有多少条记录 所有聚合函数只计算非空值。 不能用于WHERE子句 (因为聚合函数是对已确定的数据集进行处理,而WHERE子句属于还在确定的阶段) GROUP BY子句 根据一定的规则,进行分组,以by后面跟着的一个或多个字段进行分组 格式:select 聚合函数(字段1),字段2 from 表名 where 条件 group by 字段2,字段3 1234567SELECT p.date, pm.name payment_method, SUM(amount) total_paymentsFROM payments p, payment_methods pmWHERE p.payment_method = pm.payment_method_idGROUP BY date, name; 通过HAVING子句过滤分组后的数据 格式:select 聚合函数(字段1),字段2 from 表名...
DataBase 查询语句
发表于2024-05-07|学习笔记
SELECT 语句 用于选择数据库中的某些列,∗*∗ 表示全部列。 12SELECT * FROM [表名]; -- 表示选中某表的全部列SELECT [列名]/[列名1],[列名2],... FROM [表名]; -- 表示选中某表的某列/某些列 DISTINCT 关键字 用于去重查询 12SELECT DISTINCT user_idFROM solution; 关键字 AS 用于接列的别名(可省略) 1234567SELECT name, unit_price, unit_price * 1.1 AS new_price / unit_price * 1.1 new_price -- 在显示查询结果时,unit_price * 1.1 这一列名会被别名new_price替代 -- 第三行左右两种写法表示同一种意思FROM [表名]; ALL ALL 可以与(=、>、>=、<、<=、<>)结合是来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的其中的所有数据。 ALL...
DataBase 视图
发表于2024-05-07|学习笔记
数据库中的视图是一个虚拟表,同真实的表一样,视图包含一系列带有名称的行和列数据,行和列数据来自定义视图查询所引用的表,并且在引用视图时动态生成。但视图并不提供数据 创建视图 格式:CREATE VIEW 【视图名】 AS + 查询语句 123456789CREATE VIEW clients_balance ASSELECT i.client_id, name, SUM(invoice_total-payment_total) balanceFROM invoices iJOIN clients c USING(client_id)GROUP BY i.client_id,nameORDER BY i.client_id; 删除视图 格式:DROP VIEW 【视图名】 1DROP VIEW clients_balance 更改视图 格式:CREATE OR REPLACE VIEW 【视图名】 AS + 查询语句 12345678CREATE OR REPLACE VIEW sales_by_clients AS --...
DataBase 连接
发表于2024-05-07|学习笔记
内连接 —— INNER JOIN 用于连接两个表的数据,通过ON关键字+条件语句来过滤数据 内连接不加关联条件的结果就是笛卡尔积 1234SELECT order_id,o.product_id,quantity,o.unit_priceFROM order_items o(INNER) JOIN products p --实际INNER可写可不写,结果一致 ON o.product_id = p.product_id 跨表连接 用于连接不同数据库的多张表的数据,通过在表名前加上相应的数据库前缀来实现 123456USE sql_store;SELECT *FROM order_items oiJOIN sql_inventory.products p ON oi.product_id = p.product_id; 自连接 通过给同一张表取两个别名来实现自连接 1234567SELECT e.employee_id, e.first_name, m.first_nameFROM employees eJOIN employees m ON...
1…67
avatar
Crayz
文章
70
标签
5
分类
2
Follow Me
公告
This is my Blog
最新文章
使用 Python BeautifulSoup 提取指定网页特定区域图片并显示图片大小2025-04-30
Python实验十五2025-04-16
Python实验十四2025-04-16
Python实验十三2025-04-16
计网实验报告2025-04-15
分类
  • 学习笔记16
  • 题解47
标签
操作系统 面向对象程序设计 计算机网络 MySQL Python
归档
  • 四月 2025 18
  • 二月 2025 7
  • 一月 2025 29
  • 十二月 2024 3
  • 十一月 2024 1
  • 十月 2024 1
  • 九月 2024 1
  • 五月 2024 10
网站信息
文章数目 :
70
本站总字数 :
88.6k
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2019 - 2025 By Crayz
框架 Hexo|主题 Butterfly
搜索
数据加载中