oracle数据库相关知识
-
JavaScript调用ActiveX操作Oracle数据库原文链接JavaScript也可以操作Oracle数据库?这似乎让人觉得不可思议。但是从标题中我们又可以看到一个词:ActiveX,这似乎已经帮我们解开了JavaScript操作Oracle数据库的奥秘。本文通过一个例子来介绍JavaScript调用ActiveX操作Oracle数据库的详细方法,希望对你有所帮助。以下是JavaScript代码:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus">
-
JavaScript调用ActiveX操作Oracle数据库原文链接JavaScript也可以操作Oracle数据库?这似乎让人觉得不可思议。但是从标题中我们又可以看到一个词:ActiveX,这似乎已经帮我们解开了JavaScript操作Oracle数据库的奥秘。本文通过一个例子来介绍JavaScript调用ActiveX操作Oracle数据库的详细方法,希望对你有所帮助。以下是JavaScript代码:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus">
-
Oracle数据库基础:新手推荐Oracle数据库基础 一:Oracle基础知识 Oracle数据库的主要特点 (1.)支持多用户,大事务量的事务处理 (2.)在保持数据库安全性和完整性方面性优越。 (3.)支持分布式数据处理。将分布在不同物理位置的数据库用通信网连接起来,在分布式数据库管理系统的控制下,组成一个逻辑上统一的数据库,完成数据处理任务。 (3.)具有可移植性。Oracle可以在windows,Linux等多种操作系统平台上使用,而SQL server 只能在Windows平台上运行。 二:Oracle基本概念 数据库:它是磁盘上存储数据的
-
Oracle 数据库查询专题 (select * from emmmm 80 T)请配合 原文章练习 传送门: Oracle数据库学习笔记 (四 —— select 从入门到放弃 【上】) Oracle数据库学习笔记 (四 —— select 从入门到放弃 【下】) 有的地方不完整,是由于楼主忘记把最新版本的题解拷贝了,因此请见谅。题库我会持续更新!!!后续我也会慢慢更新的 –1. 选出部门30中的所有员工。 select * from emp where deptno = 30 –2. 列出所有办事员(CLERK)的姓名、编号和部门编号。 select e.ename 姓名,e.empno 编号,e.deptno 部门编号 fro
oracle数据库相关课程
oracle数据库相关教程
- 1. 数据库的概念 数据库是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。是按照数据结构来组织、存储和管理数据的仓库。目前常用的数据库主要分为开源 MySQL 数据库(包括官方版 MySQL、Percona MySQL MariDB)和商业版数据库 ( 包括 SQL Server、Oracle、DB2 )。例如一个学校全部学生学籍信息、选课情况、学分统计、考试成绩查询都是利用数据库对学校相关数据进行管理和存储的,而数据库则是配置在学校机房服务器的,利用数据库技术可以对这些数据进行管理,以便于教学工作高效、有序的开展。而数据库又按照是否采用关系模型划分为两种:关系型数据库非关系型数据库
- 1.1 关系型数据(SQL) 关系型数据库,是指采用了关系模型来组织数据的数据库,从语言功能层面来讲,一般是指用 SQL 语言来进行操作管理的关系型数据库。常用的关系型数据库有 MySQL、Oracle、SQLServer、PostGreSQL。
- 选中数据库 前面的小节我们学习了创建和删除数据库,有了数据库我们肯定要对这个数据库进行一些只针对这一数据库的操作,比如在指定数据库内新建表,删除表等等。既然是只针对某一数据库,那么在操作之前就要选中这一数据库,这个小节我们就来学习下如何选择要进行操作的数据库:
- 4.3 数据库 ORM 在 Web 开发中,需要访问数据库读取相关数据返回给浏览器。通常是采用 SQL 语句访问数据库,例如下面的 SQL 语句获取 name 为张三的记录:SELECT name, age FROM persons WHERE name = '张三'在程序中,使用 SQL 语句访问数据,易错、不够直观。因此有人提出了 ORM 技术:把关系数据库映射为对象。面向对象编程和关系型数据库,都是目前最流行的技术。面向对象编程把所有实体看成对象(object),关系型数据库则是采用实体之间的关系(relation)描述数据。ORM (Object Relation Map) 是一种把关系数据库映射成对象的技术,下表总结两者之间的对应关系:关系数据库面向对象数据库的表(table)类(class)记录(record,行数据)对象(object)字段(field)对象的属性(attribute)Python 的 Web 框架通常提供了 ORM 的功能,用于简化对数据库的访问。
- 3. 删除数据库 Drop 指令可用于删除数据库。删除数据库的语法如下:DROP DATABASE [db_name];其中db_name是待删除数据库名称。
- 1.3 实战 python 操作 MySQL 数据库 这里我们将使用前面提到的 mysqlclient 模块来操作 MySQL 数据库。第一步安装 mysqlclient 模块:$ pip3 install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple 安装好了之后,我们可以在 python 解释器中导入下模块:[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import MySQLdb>>> MySQLdb.__version__'1.4.6'>>> 我们事先准备好了一个 MySQL 服务, 部署在云服务器上。本地安装好 mysql 客户端,然后通过如下方式连接 MySQL 数据库:[shen@shen ~]$ mysql -h 180.76.152.113 -P 9002 -u store -pstore.123@mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 68920Server version: 5.7.26 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 新建一个数据库,名为 django-manual,然后在该数据库中新建了一个简单的 user 表。接下来我们会使用 mysqlclient 模块对该 user 表中的数据进行增删改查操作:mysql> create database django_manual default charset utf8;Query OK, 1 row affected (0.14 sec)mysql> use django_manualDatabase changedMySQL [django_manual]> show tables;Empty set (0.00 sec)mysql> CREATE TABLE `user` ( -> `id` int(11) NOT NULL AUTO_INCREMENT, -> `name` char(30) NOT NULL, -> `password` char(10) NOT NULL, -> `email` char(30) NOT NULL, -> PRIMARY KEY (`id`) -> ) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARSET = utf8;mysql> show tables;+-------------------------+| Tables_in_django_manual |+-------------------------+| user |+-------------------------+1 row in set (0.00 sec)来看看如和使用 mysqlclient,模块操作数据库 django-manual。>>> import MySQLdb>>> conn = MySQLdb.connect(host='180.76.152.113', port=9002, user='store', passwd='store.123@', db='django_manual') # 连接数据库>>> sql = "insert into user(`name`, `password`, `email`) values ('test', 'xxxxxx', '222@qq.com')" # 插入数据的sql语句>>> cur = conn.cursor() # 获取游标>>> cur.execute(sql) # 执行sql语句1 >>> conn.commit() # 提交操作# commit 成功后,去另一个窗口查看 mysql 中的数据库数据mysql > select * from user;+----+------+----------+------------+| id | name | password | email |+----+------+----------+------------+| 10 | test | xxxxxx | 222@qq.com |+----+------+----------+------------+1 row in set (0.00 sec)这里我们可以看到 mysqlclient 模块中的几个常用方法:MySQLdb.connect() 方法:连接 mysql 数据库,会在这里输入 mysql 服务地址,开放端口,用户名和密码以及要使用到的数据库名;conn.cursor():创建游标,固定做法;cur.execute():通过游标的 execute() 方法可以执行 sql 语句,其返回值表示的是操作的记录数,比如这里我们新增了一条记录,返回的值为1;conn.commit():对于数据库有更新的动作,比如新增数据、修改数据和删除数据等,最后需要使用 commit() 方法提交动作,而对于查询操作而言则不需要。如果想自动 commit 动作,也是有办法的:>>> conn = MySQLdb.connect(...)>>> conn.autocommit(True)>>> ...上面是新增单条记录,我们也可以新增多条记录,操作如下:>>> # 在前面的基础上继续执行>>> conn.autocommit(True) # 设置自动提交>>> cur = conn.cursor()>>> data = (('user%d' % i, 'xxxxxx', '28%d@qq.com' % i) for i in range(10))>>> cur.executemany('insert into user(`name`, `password`, `email`) values (%s, %s, %s);', data)10# 在另一个窗口,可以看到 user 表中的记录已经有11条了select count(*) from user;+----------+| count(*) |+----------+| 11 |+----------+1 row in set (0.00 sec)这里插入多条数据,使用的是游标的 executemany() 方法。如果在插入多条记录中遇到异常,需要执行回滚动作,一般写法如下:conn = MySQLdb.connect(...)try: # 执行动作 ...except Exception as e: conn.rollback()此外,我们一般用到的比较多的是查询相关的操作。这里有游标的方法:fetchone():只取一条记录,然后游标后移一位;fetchmany():取多条记录,参数为获取的记录数,执行完后游标移动相应位置;fetchall():取出 sql 执行的所有记录,游标移动至末尾;下面我们用前面生成的 11 条记录来进行操作:>>> # 假设前面已经获得连接信息conn和游标cur>>> sql = 'select * from user where 1=1 and name like "user%"'>>> cur.execute(sql)10>>> data1 = cur.fetchone()>>> print(data1)(11, 'user0', 'xxxxxx', '280@qq.com')# 看到再次获取一条记录时,取得是下一条数据>>> data2 = cur.fetchone()>>> print(data2)(12, 'user1', 'xxxxxx', '281@qq.com')# 这次获取5条数据,从user2开始>>> data3 = cur.fetchmany(5)>>> print(data3)((13, 'user2', 'xxxxxx', '282@qq.com'), (14, 'user3', 'xxxxxx', '283@qq.com'), (15, 'user4', 'xxxxxx', '284@qq.com'), (16, 'user5', 'xxxxxx', '285@qq.com'), (17, 'user6', 'xxxxxx', '286@qq.com'))# 最后用fetchall()方法获取最后的所有数据,还剩下10-1-1-5=3条记录>>> print(data4)((18, 'user7', 'xxxxxx', '287@qq.com'), (19, 'user8', 'xxxxxx', '288@qq.com'), (20, 'user9', 'xxxxxx', '289@qq.com'))# 游标指向最后位置,再次获取时已经没有数据了>>> data5 = cur.fetchone()>>> print(data5)None通过上面的代码演示,我想我们应该理解游标的作用了,就是每执行一次 fetch 函数,对应的游标会向后移动相应位置。
oracle数据库相关搜索
-
oauth
object
object c
objective
objective c
objective c基础教程
objective c教程
objectivec
office visio 2003
offsetof
offsetparent
offset函数
okhttp
on on
on time
onbeforeunload
onblur
onclick
oncontextmenu
online