一.第一范式 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库. 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性.如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系.在第一范式(1NF)中表的每一行只包含一个实例的信息. 二.第二范式 第二范式(2NF)是在第一范式(1NF)的
数据库
关系数据库三范式
mysql 递归查找菜单节点的所有子节点
SELECT idFROM ( SELECT t1.id, IF ( find_in_set(parent_id, @pids) > 0, @pids := concat(@pids, ',', id), 0) AS ischildFROM ( SELECT id, parent_id FROM rde_menu t
Oracle Apex 实用笔记系列 1 - Oracle Apex 调试技巧
1. 理解Oracle Apex Url语法 一个Oracle Apex Url例子看上去像下面: http://myhost.mycompany.com/myservice/f?p=1023:1:220883404335693447 分为几个部分 myhost.mycompany.com 是服务器url myservice 是数据库服务 f?p= 是apex url前缀部分 1023 是application id 1 是page id 220883404335693447 是session
MyBatis如何防止SQL注入
转自:http://www.myexception.cn/sql/1938757.html SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者). SQL注入,大家都不陌生,是一种常见的攻击方式.攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如"or '1'='1'"这样的语句),有可能入侵参数检验不足的应用程序.所以,在我们的应用中需要做一些工作,来防备这样的攻击方式.在一些安全性要求很高的应
sqlserver数据库端口号配置
SQLServer服务启动失败时,找到错误日志,查看错误信息. 在SQLServer中查看端口号的命令:exec sys.sp_readerrorlog 0, 1, 'listening' 一.配置 SQL Server 实例的 TCP/IP 协议 可以使用SQL Server配置管理器来配置实例的TCP/IP协议.配置完成后,重启实例后才生效. 1. "协议"选项卡(1)保持活动状态 指定传输保持活动状态的数据包的时间间隔(毫秒),以检查位于连接远端的计算机是否仍可用. (2)全
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
First make a backup of your /var/lib/mysql/ directory just to be safe. sudo mkdir /home/<your username>/mysql/ cd /var/lib/mysql/ sudo cp * /home/<your username>/mysql/ -R Next purge MySQL (this will remove php5-mysql and phpmyadmin as well as
mongodb快速均衡导入数据
需求环境: 有一个项目需要将mongodb sharding从2.6升级到3.0 并使用wt引擎,其中2.6环境很多collectiong开启了Sharding,且数据量很大. 选择mongodump,mongorestore方式 问题: 在restore步骤出现了2个问题 1)大数量数据导入缓慢时间花费长 2)chunks分配不均匀,需要很长时间做balance. 分析原因: 针对以上问题我对mongodb的进行了初步的学习和研究,同时也查看了一些优秀的博客,发现部分原因: mongodb导入
MYSQL的安全模式:sql_safe_updates介绍
什么是安全模式 在mysql中,如果在update和delete没有加上where条件,数据将会全部修改.不只是初识mysql的开发者会遇到这个问题,工作有一定经验的工程师难免也会忘记写入where条件.为了避免失误造成的数据全部修改和删除,可开启mysql的安全模式. 安全模式的开启与关闭 连接到数据库后,查看当前mysql的安全模式的状态 mysql> show variables like 'sql_safe_updates'; +------------------+-------+ |
c语言gdb调试
GDB 官网 什么是GDB? GDB是GNU Project调试器,它使您可以查看另一个程序在执行过程中正在执行的操作–或该程序崩溃时正在执行的操作. GDB可以做四种主要的事情(以及支持这些事情的其他事情)来帮助您捕获行为中的错误: 启动程序,并指定可能影响其行为的所有内容. 使程序在指定条件下停止. 检查程序停止时发生的情况. 更改程序中的内容,以便您可以尝试纠正一个错误的影响,然后继续学习另一个错误. gdb 调试的一些命令 gcc -g -o xx xx.c // 编译c源程序 gdb
sqlserver sysobjects xtype
xtype 代表类型 C = CHECK 约束D = 默认值或 DEFAULT 约束F = FOREIGN KEY 约束L = 日志FN = 标量函数IF = 内嵌表函数P = 存储过程PK = PRIMARY KEY 约束(类型是 K)RF = 复制筛选存储过程S = 系统表TF = 表函数TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程
Oracle逻辑读详解
1.物理读(physical read) 当数据块第一次读取到,就会缓存到buffer cache 中,而第二次读取和修改该数据块时就在内存buffer cache 了 以下是例子: 1.1 第一次读取: C:"Documents and Settings"Paul Yi>sqlplus "/as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Thu Feb 28 09:32:04 2008 Copy
MySQL的计算时间差
一.MySQL计算两个日期的时间差 1 TIMESTAMPDIFF(DAY, datetime1, datetime2); 2 3 第一个参数为比较类型,有day, month, year, hour等: 4 第二个.第三个参数为两个时间,为 datetime2 - datetime1 : 5 返回的是一个number. 二.常用格式 1 now() : 返回当前的yyyy--mm-dd hh:mm:ss 2 CURDATE() : 返回yyyy-mm-dd 3 CURTIME() : 返回hh
数据库 isnull()、nvl()、ifnull() 使用
SqlServer 插入字段值 为空 设置默认值 isnull(val_1,val_2) 当val_1为 null 的时候 返回 val_2的值 Oracle nvl(val_1,val_2) 当val_1为 null 的时候 返回 val_2的值 MySql ifnull(val_1,val_2) 当val_1为 null 的时候 返回 val_2的值
mysql 索引过长1071-max key length is 767 byte
问题 create table: Specified key was too long; max key length is 767 bytes 原因 数据库表采用utf8编码,其中varchar(255)的column进行了唯一键索引 而mysql默认情况下单个列的索引不能超过767位(不同版本可能存在差异) 于是utf8字符编码下,255*3 byte 超过限制 解决 1 使用innodb引擎: 2 启用innodb_large_prefix选项,将约束项扩展至3072byte: 3
Employees Earning More Than Their Managers Leetcode SQL
The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id. +----+-------+--------+-----------+ | Id | Name | Salary | ManagerId | +----+-------+--------+-----------+ | 1
实现SQL基本语法
1 #!/usr/bin/env python 2 # writen by Lisp at 2017/5/15 3 4 """ 5 对员工信息文件,实现增删改查操作 6 7 1. 可进行模糊查询,语法至少支持下面3种: 8 9 a. select user_name,user_age from db.emp where user_age > 22 10 b. select * from db.emp where user_dept = "IT" 11
破解SQLYog30天试用方法
开始-运行-regedit ,进入注册表,在 \HEYK_CURRENT_USER\Software\{FCE28CE8-D8CE-4637-9BC7-93E4C0D407FA}下的InD保存着SQLyog的使用天数,十进制值2455140-2455131表示30-1天,该区间外的数值应该均为0天,所以每次可以更改该数值便可一直试用. 删除该项,在重启SQLyog后注册表中会重新生成,使用期为30天.
mssql-sqlserver入门必备知识收集
一.了解SQL 数据库的应用场景 sql 简介 二. 检索数据 SELECT语句 检索单个.多及所有列的方法分享 检索不同的值 限制结果 sqlserver注释编写方法 三.排序检索数据 排序数据 按多个列排序 按列位置排序 指定排序方向 四.过滤数据 使用WHERE子句 WHERE子句操作符 五.高级数据过滤 组合WHERE查询使用子句 IN操作符 and or 优先级 sql转义字符用法简介 LIKE操作符 使用通配符的技巧 七.创建计算字段 计算字段创建方
大数据分析中使用关系型数据库的关键点
相当一部分大数据分析处理的原始数据来自关系型数据库,处理结果也存放在关系型数据库中.原因在于超过99%的软件系统采用传统的关系型数据库,大家对它们很熟悉,用起来得心应手. 在我们正式的大数据团队,数仓(数据仓库Hive+HBase)的数据收集同样来自Oracle或MySql,处理后的统计结果和明细,尽管保存在Hive中,但也会定时推送到Oracle/MySql,供前台系统读取展示,生成各种报表. 在这种场景下,数据库的读写性能就显得尤为重要! 一.数据库定位 有大神说,给我足够强的数据库硬件,一
Mysql之SQL随笔
1.创建数据库 1 create database if not exists shop default character set utf8mb4 default collate utf8mb4_unicode_ci; 原文地址:https://www.cnblogs.com/caohongchang/p/11577385.html