1、创建表的语句 ---1、创建模拟的数据表 --- --1.1.创建学生表Student create table Student( StuId NUMBER NOT NULL...Server基本相同,注意:在Oracle中default是一个值,而SQL Server中default是一个约束, 因此Oracle的default设置可以在建表的时候创建或者通过Modify函数创建...number(1) DEFAULT 0 null --添加默认值 如果为空默认值就为0 ) --添加主键 ALTER TABLE "test"."...//最小值;设置NOMINVALUE表示无最大值 CYCLE or NOCYCLE //设置到最大值后是否循环; CACHE 20...//指定可以缓存 20 个值在内存里;如果设置不缓存序列,则写NOCACHE ORDER or NOORDER //设置是否按照请求的顺序产生序列 本文整理自以下两篇博文
主键为员工编号,部门编号字段是引用部门表的外键,职位编号字段是引用职位表的外键,经理编号字段是引用员工表自身的 外键。 1. 什么是 SQL?SQL 有哪些功能?...,LEAST 函数用于返回列表中的最小值。...SQL 中有哪些连接查询? 答案: 连接(join)查询是基于两个表中的关联字段将数据行拼接到一起,可以同时返回两个表中的数据。...另外,数据库还必须保证满足完整性约束,比如账户扣款之后不能出现余额为负数(可以在余额字段上添加检查约 束)。Isolation,隔离性。...另外,Oracle 还支持 DDL 触发器和系统事件触发器。 100. 为员工表创建一个审计表和审计触发器,记录每次修改员工月薪的操作。
2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。...语句用大写,因为oracle 总是先解析sql语句,把小写的字母转换成大写的再执行。...45,在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。...例如, 在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间, 甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。...同样的,如果可以的话, 我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
使用nolock有3条原则: 查询的结果用于“插、删、改”的不能加nolock; 查询的表属于频繁发生页分裂的,慎用nolock ; 使用临时表一样可以保存“数据前影”,起到类似Oracle...语句用大写,因为Oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。...45、在所有的存储过程和触发器的开始处设置SET NOCOUNT ON,在结束时设置SET NOCOUNT OFF。无需在执行存储过程和触发器的每个语句后向客户端发送DONE_IN_PROC消息。...因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。 例如:在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间。...同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
2 应尽量避免在 where 子句中对字段进行 null 值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如0,-1 作为默认值。...语句用大写,因为oracle 总是先解析sql语句,把小写的字母转换成大写的再执行。...45 在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。...例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。...同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
使用 nolock 有3条原则: 查询的结果用于“插、删、改”的不能加 nolock; 查询的表属于频繁发生页分裂的,慎用 nolock ; 使用临时表一样可以保存“数据前影”,起到类似 Oracle...语句用大写,因为 Oracle 总是先解析 SQL 语句,把小写的字母转换成大写的再执行。...45、在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON,在结束时设置 SET NOCOUNT OFF。...因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。 例如:在定义邮政编码这个字段时,如果将其设置为 CHAR(255),显然给数据库增加了不必要的空间。...同样的,如果可以的话,我们应该使用 MEDIUMINT 而不是 BIGIN 来定义整型字段,应该尽量把字段设置为 NOT NULL,这样在将来执行查询的时候,数据库不用去比较 NULL 值。
2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。...语句用大写,因为oracle 总是先解析sql语句,把小写的字母转换成大写的再执行。...45,在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。 ...例如, 在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间, 甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。...同样的,如果可以的话, 我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
使用nolock有3条原则: 查询的结果用于“插、删、改”的不能加nolock; 查询的表属于频繁发生页分裂的,慎用nolock ; 使用临时表一样可以保存“数据前影”,起到类似Oracle的undo表空间的功能...语句用大写,因为Oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。...45、在所有的存储过程和触发器的开始处设置SET NOCOUNT ON,在结束时设置SET NOCOUNT OFF。无需在执行存储过程和触发器的每个语句后向客户端发送DONE_IN_PROC消息。...因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。 例如:在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间。...同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。...语句用大写,因为oracle 总是先解析sql语句,把小写的字母转换成大写的再执行。...在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。...例如, 在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间, 甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。...同样的,如果可以的话, 我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
2 应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。...语句用大写,因为oracle 总是先解析sql语句,把小写的字母转换成大写的再执行。...45 在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。...例如, 在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间, 甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。...同样的,如果可以的话, 我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
包含视图、函数知识、防止 SQL 注入攻击等内容。 SQL 函数 简介 大多数 SQL 实现支持以下类型的函数。 ❑ 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。...FORMAT() - 格式化某个字段的显示方式 UCASE() - 将某个字段转换为大写 LCASE() - 将某个字段转换为小写 UCASE() 和 LCASE() 函数 SELECT UCASE(...FROM table_name; ROUND() 函数 ROUND() 函数用于把数值字段舍入为指定的小数位数。...在MariaDB、MySQL和Oracle中创建占位符,可使用SAVEPOINT语句。 提示:保留点越多越好可以在SQL代码中设置任意多的保留点,越多越好。为什么呢?...触发器 触发器是特殊的存储过程,它在特定的数据库活动发生时自动执行。触发器可以与特定表上的INSERT、UPDATE 和 DELETE 操作(或组合)相关联。
oracle使用的脚本语言为PL-SQL,而sql server使用的脚本为T-SQL 微观上: 从数据类型,数据库的结构等等回答 2....NOT NULL约束 经常与其他表进行连接的表,在连接字段上应该建立索引; 经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引; 可选择性高的关键字 ,应该建立索引...Where子句中,则分解为多个单字段索引; D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引...可以简单的将视图理解为sql查询语句,视图最大的好处是不占系统空间 2. 一些安全性很高的系统,不会公布系统的表结构,可能会使用视图将一些敏感信息过虑或者重命名后公布结构 3....Imp/exp将数据库中的数据导入到新的库中 2. 如果是存储迁移直接将存储设备挂到新机器上 26.
使用 nolock 有3条原则: 查询的结果用于“插、删、改”的不能加 nolock; 查询的表属于频繁发生页分裂的,慎用 nolock ; 使用临时表一样可以保存“数据前影”,起到类似 Oracle...tiger: 这个对性能影响微乎其微, 还会影响写SQL的效率. 23、尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。...45、在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON,在结束时设置 SET NOCOUNT OFF。...因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。 例如:在定义邮政编码这个字段时,如果将其设置为 CHAR(255),显然给数据库增加了不必要的空间。...同样的,如果可以的话,我们应该使用 MEDIUMINT 而不是 BIGIN 来定义整型字段,应该尽量把字段设置为 NOT NULL,这样在将来执行查询的时候,数据库不用去比较 NULL 值。
②.跟踪变化,触发器可以跟踪数据库内的操作,从而不允许未经允许许可的更新和变化。 ③.联级运算,比如某个表上的触发器中包含对另一个表的数据操作,而该操作又导致该表上的触发器被触发。 6....推荐方案:用NOT EXISTS 方案代替 ③.IS NULL 或IS NOT NULL操作(判断字段是否为空) 判断字段是否为空一般是不会应用索引的,因为索引是不索引空值的。...推荐方案:用其它相同功能的操作运算代替,如:a is not null 改为 a>0 或a>’’等。不允许字段为空,而用一个缺省值代替空值,如申请中状态字段不允许为空,缺省为申请。...select id from t where num is null? 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:? ...28.在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。
存储过程和存储函数的区别 触发器 语句级触发器 行级别触发器 触发器实现主键自增 一、 oracle介绍 ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组...但它的所有知识,只 要在一种机型上学习了ORACLE 知识,便能在各种类型的机器上使用它。 ? 1. 数据库 Oracle 数据库是数据的物理存储。...注意:使用简单的写法必须按照表中的字段的顺序来插入值,而且如果有为空的字段使用 null insert into person values(2,'李四',1,null,'北京育新'); 2....,如果是在右 边表的关联条件字段上就是右连接。...子句后面或者是连接条件上的字段建立索引 表中数据修改频率高时不建议建立索引 复合索引中第一列为优先检索列 如果要触发复合索引,必须包含有优先检索列中的原始值。
Oracle性能更好,安全性更高,同时也是收费的,适用于跨国大企业。...详见: SQL语句执行顺序 数据去重 SELECT DISTINCT 字段1 FROM 表名 将字段值重复的数据合并为一条。 常用于查询单条数据。 空值null参与运算 空值null !...整型数据类型可以在定义表结构时指定所需要的显示宽度,如果不指定,则系统为每一种类型指定默认的宽度值。...Set null方式 :在父表上update/delete记录时,将子表上匹配记录的列设为null,但是要注意子表的外键列不能为not null。...,把删除操作设置为set null等级 ); CHECK约束检查 检查某个字段的值,是否满足要求,一般是指值的范围。
将数据持久化到本地 提供结构化查询功能 1.2、数据库的常见概念 DB:数据库,存储数据的仓库 DBMS:数据库管理系统,又称为数据库软件或者数据库产品,用于创建和管理数据库,常见的有MySQL、Oracle...在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广...Sybase 则较专注于SQL Server在UNⅨ操作系统上的应用。...定义中的n取值范围是1~53,用于指示其精度和存储大小。 当n在1~24之间时,实际上是定义了一个real型数据,存储长度为4字节,精度为7位有效数字。...不同的数据库管理系统对SQL规范做了某些编改和扩充。例如,微软公司的SQL Server支持的是T-SQL,而甲骨文公司的Oracle数据库所使用的SQL语言则是PL-SQL。
MySQL 官方文档 https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/index.html 基础知识 存储引擎 通常来说,我们做业务开发,指定存储引擎为...如果业务中需要使用 emoji 表情,那么就必须要设置为 utf8mb4 MySQL 可以在 Server 级、Database 级、Table 级、Column 级进行字符集的设置。...尽量保证数据库单表操作,减少关联查询 合理使用索引 合理设计所有字段及表关联 尽量避免在数据库层面实现逻辑 尽量避免使用触发器,视图,储存过程,将业务逻辑与统计逻辑分离 不要在业务库中大量统计计算 尽量避免使用各种数据库函数...尽量避免使用 text 或 blog 字段 确实需要存储的可以考虑拆表,将基本字段与扩展大字段分开。甚至可以考虑采用 MongoDB 之类的数据库才存储大量的文本表。...、违反左匹配原则 如联合索引 a, b 实际查询使用顺序为 b, a 5、索引列中含有 NULL
(hao,hao2); 删除索引的SQL drop index teachername; 序列 序列是Oracle提供的用于产生一系列唯一数字的数据库对象。...设置成只读视图 with read only :设置为只读视图 create [or replace] view t_view(id,name,age,hao) as select...to 保存点名; Oracle 数据备份与还原 exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件 imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中 将数据库中的表导出...Oracle PL/SQL包 包用于在逻辑上组合过程和函数,它由包规范(包头)和包体两部分组成 --包头 create [or replace] package lv_package is procedure...2)将指针指向第一条记录 提取游标数据 fetch 游标名 into 变量1,变量2,……; 关闭游标 close 游标名; 游标属性 游标提供一些属性可以帮助编写PL/SQL 程序,游标属性的使用方法为
领取专属 10元无门槛券
手把手带您无忧上云