Dodd

dont be shy, just try!


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 友情链接

  • links

  • 公益404

  • 搜索

索引基本概念

发表于 2017-08-29 | 分类于 数据库 | | 阅读次数:

索引

索引用来排序数据以加快搜索和排序操作的速度。使用索引,可以在一个或多个列上定义索引,使DBMS保存其内容的一个排过序的列表。在定义了索引后,DBMS搜索排过序的索引,找出匹配的位置,然后检索这些行。

创建索引语法:

1
2
3
4
SQL> create [unique][clustered|nonclustered]index index_name --索引名必须唯一
on {table_name|view_name}[with [index_property]];--on指定被索引的表,括号中指明索引包含的列
--例:建立唯一索引
SQL> create unique index emp_email on employees(email) tablespace users;

说明:unique:建立唯一索引,clustered:建立聚集索引,nonclustered:建立非聚集索引,index_property:索引属性。unique索引既可以采用聚集索引结构,也可以采用非聚集索引的结构。

删除索引语法:

1
SQL> drop index table_name.index_name[,table_name.index_name]--索引所在的表名称.索引名称

显示索引信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--oracle用user_indexes和user_ind_columns系统表查看已经存在的索引
--user_indexes: 系统视图存放是索引的名称以及该索引是否是唯一索引等信息。
--user_ind_column: 系统视图存放的是索引名称,对应的表和列等。
--查看索引个数和类别:
SQL> select * from user_indexes where table='表名';
--查看索引被索引的字段:
SQL> select * from user_ind_columns where index_name=upper('&index_name');
--通过类似下面的语句来查看一个表的索引的基本情况:
SQL> select user_ind_columns.index_name,user_ind_columns.column_name,
user_ind_columns.column_position,user_indexes.uniqueness
from user_ind_columns,user_indexes
where user_ind_columns.index_name = user_indexes.index_name
and user_ind_columns.table_name = '你想要查询的表名字';

--SQL Server使用系统存储过程:sp_helpindex 查看指定表的索引信息。
SQL> Exec sp_helpindex book1;
阅读全文 »

视图

发表于 2017-08-29 | 分类于 数据库 | | 阅读次数:

视图

视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上。视图中并不存放数据,视图只包含使用时动态检索数据的查询。存放在视图所引用的原始表(基表)中同一张原始表,根据不同用户的不同需求,可以创建不同的视图。DBMS支持说明:

  • Microsoft Access不支持视图
  • MySQL从1.5版本开始支持视图
  • SQLite仅支持只读视图,所以视图可以创建,可以读,但不能修改
阅读全文 »

数据库事务

发表于 2017-08-29 | 分类于 数据库 | | 阅读次数:

数据库之事务

一、事务

事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。要么全部执行成功,要么撤销不执行。例:网上转帐就是典型的要用事务来处理,用以保证数据的一致性

1. ACID原则

  • 原子性(atomicity):事务执行过程中的任何失败都将导致事务所做的任何修改失效
  • 一致性(consistency):当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态
  • 隔离性(isolation):在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见
  • 持久性(durability):已提交的数据在事务执行失败时,数据的状态都应该正确
阅读全文 »

触发器

发表于 2017-08-28 | 分类于 数据库 | | 阅读次数:

Oracle触发器

数据库触发器是一个与表相关联的、存储的PL/SQL程序。触发器作用:每当一个特定的数据操作语句(insert、update、delete)在指定的表上发出时,oracle自动地执行触发器中定义的语句序列。例:每当成功插入新员工后自动打印“成功插入新员工”

1
2
3
4
5
6
7
8
9
10
11
12
SQL> create trigger saysuccemp
after insert
on emp
declare
begin
dbms_output.put_line('成功插入新员工');
end;
/
--插入数据库操作
SQL> insert into emp(empno,ename,sal,deptno)
values
(1001,'Tom',3000,10);
阅读全文 »

存储过程和存储函数

发表于 2017-08-27 | 分类于 数据库 | | 阅读次数:

存储过程和存储函数

存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。两者的相同点是:完成特点功能的程序。区别是:存储函数可以使用return语句返回值,存储过程不可以。存储过程的有点:

  • 执行速度更快
  • 允许模块化程序设计
  • 提高系统安全性
  • 减少网络流通量

系统存储过程存放在master数据库中,名称都以sp_开头或xp_开头,类似Java语言类库中的方法:

系统存储过程 说明
sp_databases 列出服务器上的所有数据库
sp_helpdb 报告有关指定数据库或所有数据库的信息
sp_renamedb 更改数据库的名称
sp_tables 返回当前环境下可查询的对象的列表
sp_columns 返回某个表列的信息
sp_help 查看某个表的所有信息
sp_helpconstraint 查看某个表的约束
sp_helpindex 查看某个表的索引
sp_stored_procedures 列出当前环境中的所有存储过程
sp_password 添加或修改登录账户的密码
sp_helptext 显示默认值、未加密的存储过程、用户定义的存储过程、触发器或视图的实际文本
阅读全文 »

oracle函数

发表于 2017-08-27 | 分类于 数据库 | | 阅读次数:

Oracle之函数

一、数值函数

  1. 四舍五入

    1
    2
    3
    4
    5
    6
    7
    SQL> ROUND(n[,m]);
    --省略m或者m等于0:取整
    --m>0:小数点后m位,保留m位小数
    --m<0:小数点前m位,从m位进行四舍五入

    SQL> select round(23.4),round(23.45,1),round(23.45,-1) from dual;
    --23, 23.5, 23
阅读全文 »

PL/SQL基础

发表于 2017-08-25 | 分类于 数据库 | | 阅读次数:

PL/SQL基础

PL/SQL操作oracle数据库效率最高,是学习存储过程,存储函数,触发器的前提。打印hello world:

1
2
3
4
5
6
7
8
9
10
11
SQL> declare
--说明部分(变量,光标或者例外)
begin
-- 程序体
dbms_output.put_line('hello world');
end;
/ --表示pl/sql完成并执行

--打开输出开关
SQL> set serveroutput on;
/ --执行
阅读全文 »

Oracle基础

发表于 2017-08-24 | 分类于 数据库 | | 阅读次数:

Oracle基础

  • 用户登录

    1
    2
    3
    4
    --使用用户名/密码登陆
    SQL>connect username/password;
    --使用sys登陆,权限最高
    SQL>connect sys/password as sysdba;
  • 查看登陆用户

    1
    2
    3
    SQL>show user;
    --dba_users用户信息的数据字典
    SQL>select username from dba_users;
  • 启用scott用户

    1
    2
    SQL>alter user scott account unlook;
    SQL>connect scott/password;
阅读全文 »

数据库系统

发表于 2017-08-23 | 分类于 数据库 | | 阅读次数:

数据库系统

总结数据库,先对数据库系统的概念做一个整理

阅读全文 »

JDBC数据库连接池

发表于 2017-08-22 | 分类于 数据库 | | 阅读次数:

java-JDBC数据库连接池

Java语言通过JDBC技术访问数据库。JDBC是一种开放的方案,它为数据库应用开发人员﹑数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。JDBC提供两种API,分别是面向开发人员的API和面向底层的JDBC驱动程序API,底层主要通过直接的JDBC驱动和JDBC-ODBC桥驱动实现与数据库的连接

阅读全文 »
1…15161718
dodd

dodd

不吃狗粮,不喝鸡汤

175 日志
22 分类
26 标签
微博 知乎
Links
  • JavaChen
  • 酷壳
© 2020 dodd
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.3