
数据库
数据库设计规范
带着希望活下去
这个作者很懒,什么都没留下…
展开
-
mysql聚合函数参与的行转列 列转行的用法
LeetCode 的一道题 忘记了用聚合函数进行操作格式化表题目要求用月份(month)可以取下列值 ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]。编写一个 SQL 查询来重新格式化表,使得新的表中有一个部门 id 列和一些对应每个月的收入(revenue)列。内容为此处 很容易想到用group by id 进行分组,然后将month进行分成12各月份的列值为reven...原创 2021-08-01 17:26:09 · 535 阅读 · 0 评论 -
数据库小于1的数据丢失小数点前面的0----sql问题
Oracle出现小于1的数据丢失小数点前面的01.问题起源oracle 数据库 字段值为小于1的小数时,使用char类型处理,会丢失小数点前面的0例如0.35就变成了.352.解决办法:(1)用to_char函数格式化数字显示select to_char(0.338,‘fm9999999990.00’) from dual;结果:0.34这里重点要看 fm9999999999.99,表示整数部分最多10位,小数部分2位,fm表示去 掉转位字符串后前面的空格,不加fm,0.34前面会原创 2020-10-28 15:51:08 · 3006 阅读 · 1 评论 -
索引的优点和缺点
索引的作用:创建索引能够大大的提高系统的性能优点:①通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性②大大加快数据的检索速度,这也是创建索引的最主要原因③加快表与表之间的连接,在实现数据的参考完整性方面特别有意义④在使用分组和排序,子句进行数据检索时,同样可以显著减少查询中分组和排序的时间⑤通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。缺点:①创建索引和维护索引需要时间,这种时间随着数据量的增加而增加②索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要原创 2020-07-27 21:49:51 · 445 阅读 · 0 评论 -
Sql值exists的用法解释
exists (sql 返回结果集为真)not exists (sql 不返回结果集为真)如下:表AID NAME1 A12 A23 A3表BID AID NAME1 1 B12 2 B23 2 B3表A和表B是1对多的关系 A.ID => B.AIDSELECT ID,NAME FROM A ...转载 2020-03-03 11:52:39 · 389 阅读 · 0 评论 -
Sql对表的操作--创建表、修改表名、修改表、修改表字段、
最近经常对数据库表进行操作,所以在这里进行统计一下表的相关使用方法。创建表: create table 表名 ( 字段名1 字段类型 默认值 是否为空 , 字段名2 字段类型 默认值 是否为空, 字段名3 字段类型 默认值 是否为空, ...... ); 创建一个user表: create table user ( id ...原创 2020-03-03 09:59:59 · 958 阅读 · 0 评论 -
Oracle的事务commit提交问题
1.背景原因在进行开发的时候,不经常使用oracle,出现oracle在进行insert的时候不会自己进行执行insert 自动commit问题,通过查找发现根本原因。Oracle中:DML语言,比如update,delete,insert等修改表中数据的需要commit;DDL语言,比如create,drop等改变表结构的,就不需要写commit(因为内部隐藏了commit);一、DM...原创 2020-02-11 01:19:02 · 1592 阅读 · 0 评论 -
Oracle中sql常见的函数
1.group by 进行将select的数据进行分组在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。(select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。)where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,where即在分组之前过滤数据,条件...原创 2020-01-08 23:22:15 · 290 阅读 · 0 评论 -
进行修改sqlserver的实例化字符集操作
1.----进行修改数据库字符集USE SRM_TESTALTER DATABASE SRM_TEST SET MULTI_USER WITH ROLLBACK IMMEDIATEGoALTER DATABASE SRM_TEST COLLATE Chinese_PRC_CI_AIGoALTER DATABASE SRM_TEST SET MULTI_USERGo-----进行杀死对应的进程 (如果不能进行修改多用户操作 则需要进行杀死对应的使用进程操作)use master原创 2020-11-18 09:56:52 · 484 阅读 · 0 评论 -
各个数据库取第一条sql数据的不同用法
Sqlserver 获取每组中的第一条记录在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面、功能下面,从数据库的术语来说,就是查找出每组中的一条数据。下面我们要实现的就是在sqlserver中实现从每组中取出第一条数据。对应的sql语句如下所示:1select * from t1 t where id = (select top 1 id from t1 where grp = t.grp order by createtime desc原创 2020-09-14 11:23:08 · 1909 阅读 · 0 评论 -
SQL 使用merge into 的方法---学习记录
介绍Merge into 肯定都用过,具体的用法如下:从备份表中更新字段到正式表中,使用 UPDATE 批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用 MERGE INTO 代替 UPDATE 执行批量更新,会提升执行效率。MERGE INTO语法如下:MERGE INTO table_name alias1USING (table|view|sub_query) alias2ON (join condition)WHEN MATCHED THENUPDATESET原创 2020-08-06 19:34:17 · 654 阅读 · 0 评论 -
进行查看sql中OVER开窗口函数--的详细使用
1.进行查看sql中OVER开窗口函数over开窗口函数原创 2020-07-27 12:08:14 · 213 阅读 · 0 评论 -
sql中Update中修改多字段and问题
1. Update中修改多字段问题在进行使用SQL update更新操作的时候,又是会进行多字段的更新。MySQL官方文档的update语法:看到assignment_list的格式是以逗号分隔的col_name=value列表,但是在开发的时候经常会进行操作 and 连接更新操作。...原创 2021-02-20 14:56:12 · 1287 阅读 · 0 评论 -
Mysql 查询近12个月 --记录
Mysql 查询近12个月select date_format(curdate(),’%Y-%m’) AS mon unionselect date_format((curdate() - interval 1 month),’%Y-%m’) AS mon unionselect date_format((curdate() - interval 2 month),’%Y-%m’) AS mon unionselect date_format((curdate() - interval 3 mont原创 2021-02-02 14:40:11 · 421 阅读 · 0 评论 -
Mysql进行count统计的时候为甚要加上OR NULL操作
1. mysql count()函数进行统计的时候 加or null条件参考文章:参考如count(release_year = ‘2006’ or NULL) 这部分 为什么要加上or NULL 直接count(release_year=‘2006’)有什么问题吗?不就是要找release_year = '2006’的数据吗,为什么要计算NULL的数据答案:因为 当 release_year不是 2006时 ,release_year=‘2006’ 结果false 不是 NULL,Count在转载 2021-01-27 13:30:52 · 514 阅读 · 0 评论 -
windows下Docker安装mysql镜像----demo
MySQL 部署拉取MySQL镜像拉取命令:docker pull mysql:5.7查看镜像docker images创建 MySQL 容器docker run -id --name=sun_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7p 代表端口映射,格式为 宿主机映射端口:容器运行端口e 代表添加环境变量, MYSQL_ROOT_PASSWORD 是 root 用户的登陆密码进入MySQ原创 2020-11-24 14:43:51 · 367 阅读 · 0 评论 -
RBAC 的学习 ----详细学习
1. RBAC 的学习比较好的参考链接 RBAC根据以上的学习我们能够清楚地知道RBAC的三种模式 RBAC0 RBAC1 RBAC2RBAC的安全原则RBAC支持三个著名的安全原则:最小权限原则、责任分离原则和数据抽象原则最小权限原则:RBAC可以将角色配置成其完成任务所需的最小权限集合责任分离原则:可以通过调用相互独立互斥的角色来共同完成敏感的任务,例如要求一个计账员和财务管理员共同参与统一过账操作数据抽象原则:可以通过权限的抽象来体现,例如财务操作用借款、存款等抽象权限,而不是使用典型原创 2020-10-13 10:08:27 · 258 阅读 · 0 评论 -
数据库设计规范----11条规则
如果你对 “三范式” 不清楚,请点击这里(FQ)一步一步的了解什么是“三范式”。大家都说标准规范是重要的指导方针并且也这么做着,但是把它当作石头上的一块标记来记着(死记硬背)还是会带来麻烦的。以下 11 点是我在数据库设计时最优先考虑的规则。规则 1:弄清楚将要开发的应用程序是什么性质的(OLTP 还是 OPAP)?当你要开始设计一个数据库的时候,你应该首先要分析出你为之设计的应用程序是什么类型的,它是 “事务处理型”(Transactional) 的还是 “分析型” (Analytical)的?你会转载 2020-05-29 15:37:49 · 1017 阅读 · 0 评论