mysql复制表和表结构
一、CREATE TABLE 方法
整表复制 # create table 新表 select * from 旧表;
结构复制 # create table 新表 select * from 旧表 where 1<>1;
二、INSERT INTO 方法
得到建表语句 # show create table 旧表;
新建表
复制数据到新表 # insert into 新表 select * from 旧表;
By admin
read more一、CREATE TABLE 方法
整表复制 # create table 新表 select * from 旧表;
结构复制 # create table 新表 select * from 旧表 where 1<>1;
二、INSERT INTO 方法
得到建表语句 # show create table 旧表;
新建表
复制数据到新表 # insert into 新表 select * from 旧表;
By admin
read morePHP最终开始支持namespace(命名空间)。 但是经过开发者几个小时的讨论后,他们决定采用 “\” 作为分隔符,而不是更流行的“ :: ”。Fredrik Holmström指出了这种分隔方法可能会产生的问题,如打字出错(但不会出现错误提示),IDE兼容性问题,字符数字等等,好处则是容易输入和分析。”
By admin
read more一、Oracle中的实体完整性 Oracle在CREATE TABLE语句中提供了PRIMARY KEY子句,供用户在建表时指定关系的主码列。例如,在学生-选课数据库中,要定义Student表的Sno为主码,可使用如下语句:
CREATETABLE student
(sno NUMBER(8),
sanme VARCHAR(20),
sage NUMBER(20),
CONSTRAINT pk_sno PRIMARYKEY(sno));
其中,PRIMARY KEY(Sno)表示是Student表的主码。PK_SNO是此主码约束名。
若要在SC表中定义(Sno,Cno)为主码,则用下面语句建立SC表:
CREATETABLE sc
(sno NUMBER(8),
cno NUMBER(2),
grade NUMBER(2),
CONSTRAINT pk_sc PRIMARYKEY(sno,cno));
用PRIMARY KEY语句定义了关系的主码后,每当用户程序对主码列进行更新操作时,系统自动进行完整性检查,凡操作使主码值为空或使主码值在表中不唯一,系统拒绝此操作,从而保证了实体完整性。
二、Oracle中的参照完整性 Oracle的CREATE TABLE语句也可以定义参照完整性规则,即用FOREIGN KEY子句定义哪些列为外码列,用REFERENCES子句指明这些外码相应于哪个表的主码,用ON DELETE CASCADE子句指明在删除被参照关系的元组时,同时删除参照关系中相应的远祖。
例如,使用如下SQL语句建立EMP表:
CREATETABLE emp
(empno NUMBER(4),
ename VARCHAR(10),
job VARCHAR2(9),
mgr NUMBER(4),
sal NUMBER(7,2),
deptno NUMBER(2),
CONSTRAINT fk_deptno
FOREIGNKEY(deptno)
REFERENCES dept(deptno));
则表明EMP是参照表,DEPT为其被参照表,EMP表中Deptno为外码,它相应于DEPT表中的主码Deptno。当删除或修改DEPT表中某个元组的主码时要检查EMP中是否有元组的DEPTNO值等于DEPT中要删除的元组的Deptno值,如没有,接受此操作;否则系统拒绝这一更新操作。
By admin
read more综合类,从结果上来看 Apache 还是主流:
Site WebServer Cache www.baidu.com BWS/1.0
N/A www.qq.com Apache
squid/2.6.STABLE5 www.sina.com.cn Apache/2.0.54 (Unix)
N/A www.sohu.com Apache/1.3.37 (Unix) mod_gzip/1.3.26.1a
squid www.163.com Apache/2.2.6 (Unix)
N/A www.taobao.com Apache
N/A www.google.cn gws
N/A www.tom.com Apache
NetCache NetApp/6.1.1D4 www.soso.com Apache
N/A www.youku.com Apache
N/A www.xunlei.com Apache/2.2.8 (Unix)
N/A www.eastmoney.com Microsoft-IIS/6.0
N/A www.56.com nginx/0.5.33
squid/2.6.STABLE12-20070426 www.6.cn nginx/0.6.14
squid/3.0.STABLE1.dev www.51.com Apache
N/A www.yahoo.cn 4EWS
N/A www.poco.cn Apache
N/A www.sogou.com Apache/2.0.61 (Unix)
Resin/3.0.24
博客类:
Site WebServer Cache
blog.sina.com.cn
nginx/0.5.35
N/A
hi.baidu.com
apache 1.1.23.2
N/A
qzone.qq.com
Apache
N/A
blog.sohu.com
Apache
squid www.bokee.com Apache/1.3.31 (Unix) mod_gzip/1.3.26.1a
N/A www.blogcn.com Microsoft-IIS/6.0
By admin
read more作者:Harry Fuecks是否达到 4,000 字节的极限? 我们先来了解一下 LOB……本文相关下载:
使用 VARCHAR2 这样的 Oracle 类型是完全可以的,但如果您要一次性存储的数据量超过它的 4,000 字节的极限,情况将会如何? 要完成此任务,您需要 Oracle 的某个 Long 对象 (LOB) 类型,为此您应了解如何使用 PHP API 来处理 LOB。 这对于不熟悉它的人来说是很困难的。
在这篇“Oracle+PHP 指南”操作文档中,您将了解可用的 LOB 类型以及与它们相关的问题,然后将探讨 PHP 中常见 LOB 操作示例。
Oracle 中的 Long 对象
Oracle 提供了以下 LOB 类型:
BLOB,用于存储二进制数据
CLOB,用于使用数据库字符集编码存储字符数据
NCLOB,用于使用国家字符集存储 Unicode 字符数据。 注意,您将在本文中使用的 PHP OCI8 扩展当前不支持 NCLOB。
BFILE,用于引用存在于操作系统的文件系统中的外部文件
LOB 的更深一层的子类别是临时 LOB(可以为 BLOB、CLOB 或 NCLOB),它在被释放之前一直存储在临时表空间中。
By admin
read more作者:Larry Ullman通过绑定变量提高 Oracle 驱动的 PHP 应用程序的速度和安全性。本文相关下载:
Oracle JDeveloper PHP Extension
想必您一定知道,当前的大多数网站都依赖数据库,只是方式各有不同。 无论您正在构建的站点需要论坛、电子商务组件、包含大量文章和信息还是仅仅从访问者那里获得反馈,您都很可能会通过某种方式并入数据库。 尽管数据库很重要并通常是不可或缺的,但使用它们会影响(通常是不利影响) Web 应用程序的两个方面: 性能和安全性。 了解何时以及如何在 PHP 中绑定变量将对改善这两个问题方面大有帮助。
如果您曾经对 Web 项目进行过测试,想必您一定会知道数据库交互通常是要求最高的过程。 在数据库中运行查询时,Oracle 必须先对查询进行分析,以确保它的语法正确,然后才执行实际的查询。 即使您运行多个相似查询也必须先进行分析:
SELECT * FROM movies WHERE movie_id=1
SELECT * FROM movies WHERE movie_id=26
SELECT * FROM movies WHERE movie_id=5689
尽管这三个查询之间的唯一差别体现在所获取的精确记录上,但 Oracle 仍将单独处理它们,并在执行之前分别对它们进行分析。 绑定变量的第一个好处是,Oracle 只需分析查询一次,而不管它究竟使用不同的值运行了多少次。 这种在脚本方法方面的改变可以极大地提高性能。
作为 Web 开发人员,您通常遇到的第二个问题是站点的安全性。 由于该问题体现在很多方面,因此找到解决它的方法无异于一场永无休止但却至观重要的战役。 在数据库驱动的站点中,许多查询都依赖于外部值,如用户从表单中提交的值、在 URL 中传递给页面的值等等。 此类查询很容易受到 SQL 注入攻击的破坏。 (“SQL 注入攻击”是指恶意用户在尝试破坏查询的过程中向 PHP 脚本提供无效数据。) 如果对查询的处理方法不当,恶意用户便有可能从生成的错误消息中了解一些有关脚本、数据库或服务器的信息。 以如下所示的查询为例:
By admin
read more作者:Nick Bollweg利用一流的查询和函数,轻松处理层次数据。本文相关下载:
为 PHP 提供的 Oracle JDeveloper 扩展2005 年 12 月发表
几乎每一种数据驱动的应用程序都依赖于某种形式的、不同复杂程度的层次数据:产品类别中的产品、文件夹中的消息、部门中的员工。当然,某些时候您将需要显示这些数据来创建一个目录、收件箱或组织架构的图表。利用 Oracle 提供的特定供应商的 SQL 扩展和 PHP 在数组处理方面的出色能力,您可以检索并显示一个树,并且以简洁和易于维护的方式对树进行内在的高度优化。
因为本文讨论的查询和函数都包含较少的过程,而注重提供更条理清晰,易于理解的代码,因此这篇方法文档在实施的时候以及重构现有代码的时候非常有用。如果您的数据拥有树状的数据形式(目前已经显示或者要取其值),那么本方法文档将会很有价值。使用最新推出的优秀 RDBMS 的用户非常幸运,因为新的特性使得一些棘手的处理层次数据的任务变得更为容易 — 虽然自 Oracle8_i_ 起的版本都拥有基本的底层功能。
了解数据
基本的问题是大多数用户都想以更有意义的方式使用和显示存储在平表中的数据。此类中最常见的一些数据形式有:
分类:王国、语系、阶级或国家、城市、县、州
系谱:祖父、父亲、孩子
机构:总裁、经理、员工或类别、子类别、项目、子项目
每个标准查询的结果行中的值和位置仅指该行,但层次查询返回的结果中的行在树形结构中的一个位置。为了从非层次结果中获取这种结构信息,必须遍历每一个值,在这个过程中进行检查并构建另一种数据结构。避免这个过程而让 Oracle 做它最擅长的事情可消除开发人员与数据交互的步骤。
在下面的示例中,您将使用以上数据形式中的最后一个 — 企业机构。对于具体的数据,我们可使用在 Oracle 数据库 10_g_ Express 版(入门数据库)提供的相对简单的 HR 数据库片段。
如果您使用了包含 OCI8 扩展的 PHP 编译版本,那么使用以下查询和方法将无需任何特殊的设置。使用数据库抽象类(例如 Pear:DB{.bodylink}、ADOdb{.bodylink} 或 PHP 5.1 的 PDO{.bodylink})可以提高开发效率,只需更少的代码就可以实现同样的功能。但本方法文档中介绍的层次方法是一个 SQL 扩展,仅适用于 Oracle 用户(并非不鼓励这种方法)。您的代码将不能移植到其他供应商的 RDMBS,而这是使用抽象类的主要目标之一。既然所有的抽象类都将实现类似的功能,下面的示例将使用基础的 OCI 方法。
By admin
read more添加用户(随着用户的创建,自动产生与用户同名的schema) CREATE USER “TESTER” PROFILE “DEFAULT” IDENTIFIED BY “TESTER” DEFAULT TABLESPACE “TESTDATA” TEMPORARY TABLESPACE “TESTTEMP” ACCOUNT UNLOCK;
赋权(说实话,这些权限是开发中使用的权限,如果用户生产环境,请自行对于用户创建相应的系统权限) 据说生产环境下,只是connect resource这样的角色就可以了。 GRANT “CONNECT” TO “TESTER”; GRANT “RESOURCE” TO “TESTER”; GRANT “DBA” TO “TESTER”; GRANT “EXP_FULL_DATABASE” TO “TESTER”; GRANT “IMP_FULL_DATABASE” TO “TESTER”;
用户修改密码,解锁 ALTER USER “SCOTT” IDENTIFIED BY “***” ALTER USER “SCOTT” ACCOUNT UNLOCK 1.查看所有用户: select * from dba_user; select * from all_users; select * from user_users; 2.查看用户系统权限: select * from dba_sys_privs; select * from all_sys_privs; select * from user_sys_privs; 3.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 4.查看所有角色: select * from dba_roles; 5.查看用户所拥有的角色: select * from dba_role_privs; select * from user_role_privs; Oracle中新建用户名
By admin
read more查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users;
查看当前用户的角色 SQL>select * from user_role_privs;
查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs;
查看用户下所有的表 SQL>select * from user_tables;
显示用户信息(所属表空间) select default_tablespace,temporary_tablespace from dba_users where username=’GAME’;
**1、用户 ** 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users;
查看当前用户的角色 SQL>select * from user_role_privs;
查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs;
显示当前会话所具有的权限 SQL>select * from session_privs;
显示指定用户所具有的系统权限 SQL>select * from dba_sys_privs where grantee=’GAME’;
显示特权用户 select * from v$pwfile_users;
显示用户信息(所属表空间) select default_tablespace,temporary_tablespace from dba_users where username=’GAME’;
By admin
read more1,索引
与表关联的可选结构
加快SQL语句的执行
减少磁盘I/O
CREATE INDEX 语句用于创建索引
在逻辑上和物理上独立于表中的数据
ORCALE自动维护索引
2,唯一索引
确保在定义索引的列中没有重复的值
ORACLE自动为主键列和唯一键列创建唯一索引
CREATE UNIQUE INDEX 语句用于创建唯一索引
//创建唯一索引的语法 CREATE UNIQUE INDEX index_name on table_name(column_name);
//例:
SQL> create unique index idx_stuId on student(studentid);
3:组合索引
在表的多个列上创建的索引
也称为“连接索引”
组合索引中的列可以按任意顺序排列
对于在WHERE子句中包含多个列的查询,可以提高数据访问速度
//
创建组合索引的语法
CREATE INDEX index_name on table_name(cloumns_list);
//例:
SQL> create index idx_empNoAndDeptNo on emp(empNo,deptNo);
//在WHERE子句中同时已这两列为条件时,将引用到这个索引
SQL> select * from emp where empNo=7899 and deptNo=10;
4:反向键索引
适合于只做添加不做修改的列
反转索引列中的没一个字节(如:001,002 分别反转为 100,200)
将数据插入操作分布在整个索引上
在创建索引时使用REVERSE关键字
//创建反向键索引的语法 CREATE INDEX index_name on table_name(column_name) REVERSE;
By admin
read moreconnect resource权限;
grant connect,resource to user;
后用户包括的权限:
CONNECT角色: –是授予最终用户的典型权利,最基本的
ALTER SESSION –修改会话
CREATE CLUSTER –建立聚簇
CREATE DATABASE LINK –建立数据库链接
CREATE SEQUENCE –建立序列
CREATE SESSION –建立会话
CREATE SYNONYM –建立同义词
CREATE VIEW –建立视图
RESOURCE角色: –是授予开发人员的
CREATE CLUSTER –建立聚簇
CREATE PROCEDURE –建立过程
CREATE SEQUENCE –建立序列
CREATE TABLE –建表
CREATE TRIGGER –建立触发器
CREATE TYPE –建立类型
从dba_sys_privs里可以查到: SQL> select grantee,privilege from dba_sys_privs
2 where grantee=’RESOURCE’ order by privilege;
GRANTEE PRIVILEGE
———— ———————-
RESOURCE CREATE CLUSTER
By admin
read moreCMD下 输入 SQLPLUS /NOLOG 然后再在出来的界面中打入 CONN /AS SYSDBA 这样就会以本地系统登录的用户为信任用户进入数据库的操作 ALTER USER SYS IDENTIFIED BY “123”; 这样就可以将SYS的密码改为123 或者改SYSTEM的密码,都一样。
这样你就可以用SYS用户随心所欲了。
另一种是新增用户: CREATE USER MaoMao IDENTIFIED BY “123”; 新增MaoMao后改变她的权限就可以了,改变用户权限的命令是: GRANT ROLES TO MaoMao;
还有另一种更简便的方法,在本机CMD下 输入 SQLPLUS SYS AS Sysdba 然后要求输密码时按Enter即可,进入后自行改密码…
By admin
read more与“服务控制器”和已安装设备进行通讯。SC.exe 检索和设置有关服务的控制信息。可以使用 SC.exe 来测试和调试服务程序。可以设置存储在注册表中的服务属性来控制如何在启动时和作为后台程序运行时启动服务应用程序。SC.exe 的参数可以配置指定的服务,检索当前服务的状态,也可以停止和启动服务。可以生成批处理文件来调用不同的 SC.exe 命令以自动启动或关闭服务序列。SC.exe 提供的功能类似于“控制面板”中“管理工具”项中的“服务”。
打开CMD后,运行SC命令得到如下help信息:
描述: SC 是用于与服务控制管理器通信的命令行程序。 用法: sc [command] [service name] … 选项 的格式为 “\ServerName” 可以键入 “sc [command]”以获得命令的进一步帮助 命令: query———–查询服务的状态, 或枚举服务类型的状态。 queryex———查询服务的扩展状态, 或枚举服务类型的状态。 start———–启动服务。 pause———–发送 PAUSE 控制请求到服务。 interrogate—–发送 INTERROGATE 控制请求到服务。 continue——–发送 CONTINUE 控制请求到服务。 stop————发送 STOP 请求到服务。 config———-(永久地)更改服务的配置。 description—–更改服务的描述。 failure———更改服务失败时所进行的操作。 qc————–查询服务的配置信息。 qdescription—-查询服务的描述。 qfailure——–查询失败服务所进行的操作。 delete———-(从注册表)删除服务。 create———-创建服务(将其添加到注册表)。 control———发送控制到服务。 sdshow———-显示服务的安全描述符。 sdset———–设置服务的安全描述符。 GetDisplayName–获取服务的 DisplayName。 GetKeyName——获取服务的 ServiceKeyName。 EnumDepend——枚举服务的依存关系。
下列命令不查询服务名称: sc boot————(ok | bad) 表明是否将上一次启动保存为 最后所知的好的启动配置 Lock————锁定服务数据库 QueryLock——-查询 SCManager 数据库的 LockStatus 示例: sc start MyService
By admin
read more有很多应用项目, 刚起步的时候用MySQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MySQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MySQL迁到 Oracle的需求,应用程序也要相应做一些修改。本人总结出以下几点注意事项,希望对大家有所帮助。
1. 自动增长的数据类型处理 MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。 Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
CREATE SEQUENCE 序列号的名称 (最好是表名 序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL
2. 单引号的处理 MySQL里可以用双引号包起字符串,Oracle里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
3. 翻页的SQL语句的处理 MySQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;PHP里还可以用SEEK定位到结果集的位置。 Oracle处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用ROWNUM&lt;100, 不能用ROWNUM>80。 以下是经过分析后较好的两种Oracle翻页SQL语句( ID是唯一关键字的字段名 ):
语句一:
SELECT ID, [FIELD_NAME,…] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) WHERE NUMROW >80 AND NUMROW &lt; 100 ) ORDER BY 条件3;
By admin
read more