《2022年数据库语言分类借鉴 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库语言分类借鉴 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 一.数据控制语句(DML) 部分1.INSERT ( 往数据表里插入记录的语句) INSERT INTO 表名 (字段名 1, 字段名 2, ) VALUES ( 值 1, 值 2, ); INSERT INTO 表名 (字段名 1, 字段名 2, ) SELECT 字段名 1, 字段名 2, FROM 另外的表名 ; 字符串类型的字段值必须用单引号括起来, 例如 : GOOD DAY 如果字段值里包含单引号 需要进行字符串转换, 我们把它替换成两个单引号. 字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验. 日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精
2、确到秒或者用字符串转换成日期型函数TO_DATE(2001 -08-01, YYYY-MM- DD ) TO_DATE()还有很多种日期格式, 可以参看 ORACLE DOC. 年-月-日 小时 :分钟 :秒 的格式 YYYY-MM-DD HH24:MI:SS INSERT 时最大可操作的字符串长度小于等于4000 个单字节 , 如果要插入更长的字符串, 请考虑字段用CLOB 类型 , 方法借用 ORACLE 里自带的DBMS_LOB程序包 . INSERT 时如果要用到从1 开始自动增长的序列号, 应该先建立一个序列号CREATE SEQUENCE 序列号的名称(最好是表名 +序列号标记 )
3、 INCREMENT BY 1 START WITH 1 MAXV ALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的长度来定, 如果定义的自动增长的序列号NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTV AL 2.DELETE ( 删除数据表里记录的语句) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 2 DELETE FROM表名WHERE
4、条件 ; 注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成 unused. 如果确实要删除一个大表里的全部记录, 可以用TRUNCATE 命令 , 它可以释放占用的数据块表空间TRUNCATE TABLE 表名 ; 此操作不可回退. 3.UPDATE ( 修改数据表里记录的语句) UPDATE 表名SET 字段名 1=值 1, 字段名 2=值 2, WHERE 条件 ; 如果修改的值N 没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验 ; 值 N 超过定义的长度会出错, 最好在插入前进行长度校验. 注意事项 : A. 以上
5、 SQL 语句对表都加上了行级锁, 确认完成后 , 必须加上事物处理结束的命令COMMIT 才能正式生效, 否则改变不一定写入数据库里. 如果想撤回这些操作, 可以用命令ROLLBACK 复原. B. 在运行 INSERT, DELETE 和 UPDATE 语句前最好估算一下可能操作的记录范围, 应该把它限定在较小(一万条记录 ) 范围内 ,. 否则ORACLE处理这个事物用到很大的回退段. 程序响应慢甚至失去响应. 如果记录数上十万以上这些操作, 可以把这些SQL 语句分段分次完成 , 其间加上 COMMIT 确认事物处理. 名师资料总结 - - -精品资料欢迎下载 - - - - - -
6、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 3 二.数据定义(DDL) 部分1.CREATE ( 创建表 , 索引 , 视图 , 同义词 , 过程 , 函数 , 数据库链接等) ORACLE 常用的字段类型有CHAR 固定长度的字符串VARCHAR2 可变长度的字符串NUMBER(M,N) 数字型 M 是位数总长度 , N 是小数的长度DATE 日期类型创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面创建表时可以用中文的字段名, 但最好还是用英文的字段名创建表时可以给字段加
7、上默认值, 例如DEFAULT SYSDA TE 这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间创建表时可以给字段加上约束条件例如不允许重复UNIQUE, 关键字PRIMARY KEY 2.ALTER ( 改变表 , 索引 , 视图等 ) 改变表的名称ALTER TABLE 表名 1 TO 表名 2; 在表的后面增加一个字段ALTER TABLE表名ADD 字段名字段名描述 ; 修改表里字段的定义描述ALTER TABLE表名MODIFY 字段名字段名描述 ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师
8、精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 4 给表里的字段加上约束条件ALTER TABLE 表名ADD CONSTRAINT 约束名PRIMARY KEY ( 字段名 ); ALTER TABLE 表名ADD CONSTRAINT 约束名UNIQUE ( 字段名 ); 把表放在或取出数据库的内存区ALTER TABLE 表名CACHE; ALTER TABLE 表名NOCACHE; 3.DROP (删除表 , 索引 , 视图 , 同义词 , 过程 , 函数 , 数据库链接等) 删除表和它所有的约束条件DROP TABLE 表名CASCA
9、DE CONSTRAINTS; 4.TRUNCATE ( 清空表里的所有记录, 保留表的结构) TRUNCATE 表名 ; 三.查询语句(SELECT) 部分SELECT 字段名 1, 字段名 2, FROM 表名 1, 表名 2, WHERE 条件 ; 字段名可以带入函数例如 : COUNT(*), MIN(字段名 ), MAX( 字段名 ), AVG( 字段名 ), DISTINCT( 字段名 ), TO_CHAR(DATE字段名 ,YYYY-MM-DD HH24:MI:SS) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
10、 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 5 NVL(EXPR1, EXPR2)函数解释 : IF EXPR1=NULL RETURN EXPR2 ELSE RETURN EXPR1 DECODE(AA V1R1V2 R2.)函数解释 : IF AA=V1 THEN RETURN R1 IF AA=V2 THEN RETURN R2 . ELSE RETURN NULL LPAD(char1,n,char2) 函数解释 : 字符 char1 按制定的位数n 显示,不足的位数用char2 字符串替换左边的空位字段名之间可以进行算术运算
11、例如 : (字段名 1* 字段名 1)/3 查询语句可以嵌套例如 : SELECT FROM (SELECT FROM 表名 1, 表名 2, WHER E 条件 ) WHERE 条件 2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 6 两个查询语句的结果可以做集合操作例如 : 并集 UNION( 去掉重复记录), 并集 UNION ALL( 不去掉重复记录), 差集 MINUS, 交集INTERSECT 分组查询SELE
12、CT 字段名 1, 字段名 2, FROM 表名 1, 表名 2, GROUP BY字段名 1 HAVING 条件 ; 两个以上表之间的连接查询SELECT 字段名 1, 字段名 2, FROM 表名 1, 表名 2, WHERE 表名 1.字段名= 表名 2. 字段名 AND ;SELECT 字段名 1, 字段名 2, FROM 表名 1, 表名 2, WHERE 表名 1.字段名= 表名 2. 字段名 (+) AND ;有(+) 号的字段位置自动补空值查询结果集的排序操作, 默认的排序是升序ASC, 降序是 DESC SELECT 字段名 1, 字段名 2, FROM 表名 1, 表名 2
13、, ORDER BY 字段名 1, 字段名 2 DESC; 字符串模糊比较的方法INSTR( 字段名 , 字符串 )0 字段名LIKE 字符串 % %字符串 % 每个表都有一个隐含的字段ROWID, 它标记着记录的唯一性. 四.ORACLE 里常用的数据对象(SCHEMA) 1.索引(INDEX) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 7 CREATE INDEX 索引名 ON 表名( 字段 1, 字段 2, );AL
14、TER INDEX 索引名REBUILD; 一个表的索引最好不要超过三个(特殊的大表除外), 最好用单字段索引, 结合 SQL 语句的分析执行情况 , 也可以建立多字段的组合索引和基于函数的索引ORACLE8.1.7 字符串可以索引的最大长度为1578 单字节ORACLE8.0.6 字符串可以索引的最大长度为758 单字节ORACLE DOC上说字符串最大可以建索引的长度约是:数据块的大小(db_block_size)*40% 2.视图(VIEW) CREATE VIEW 视图名 AS SELECT . FROM .;ALTER VIEW视图名COMPILE; 视图仅是一个SQL 查询语句 ,
15、 它可以把表之间复杂的关系简洁化. 3.同义词(SYNONMY) CREATE SYNONYM同义词名FOR 表名 ; CREATE SYNONYM同义词名FOR 表名 数据库链接名; 4.数据库链接(DATABASE LINK) CREATE DATABASE LINK数据库链接名CONNECT TO 用户名IDENTIFIED BY 密码USING 数据库连接字符串;数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义 . 数据库参数global_name=true 时要求数据库链接名称跟远端数据库名称一样数据库全局名称可以用以下命令查出名师资料
16、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 8 SELECT * FROM GLOBAL_NAME; 查询远端数据库里的表SELECT FROM 表名 数据库链接名 ; 五.权限管理(DCL) 语句1.GRANT 赋于权限常用的系统权限集合有以下三个: CONNECT( 基本的连接 ), RESOURCE( 程序开发 ), DBA( 数据库管理 ) 常用的数据对象权限有以下五个: ALL ON 数据对象名 , SELECT ON 数
17、据对象名 , UPDATE ON 数据对象名 , DELETE ON 数据对象名 , INSERT ON 数据对象名 , ALTER ON 数据对象名GRANT CONNECT, RESOURCE TO 用户名 ; GRANT SELECT ON 表名TO 用户名 ; GRANT SELECT, INSERT, DELETE ON表名TO 用户名 1, 用户名 2; 2.REVOKE 回收权限REVOKE CONNECT, RESOURCE FROM 用户名 ; REVOKE SELECT ON 表名FROM 用户名 ; REVOKE SELECT, INSERT, DELETE ON表名FROM 用户名 1, 用户名 2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -