Oracle使用总结

举报
隔壁老汪 发表于 2022/06/24 23:16:27 2022/06/24
【摘要】 1.使用Oracle创建表,与Mysql之间的几点区别 //Mysql CREATETABLE tab_b ( id bigint(20) NOTNULL, namevarchar(60) DEFAULTNULL, address varchar(120) DEFAULTNULL, PRIMARYKEY (id) ...


//Mysql  CREATETABLE tab_b (     id bigint(20) NOTNULL, namevarchar(60) DEFAULTNULL,     address varchar(120) DEFAULTNULL, PRIMARYKEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; //OrcaleCREATE TABLE tab_b (     id number(20) NOT NULL primary key,     name varchar(20) DEFAULT NULL,     address varchar(40)  DEFAULT NULL) 
 












CREATE TABLE TableName(id number); //虽然写的时候是有大写和小写,但是在数据库里面是不区分的。select * from tablename; //这样是可以的SELECT * FROM TABLENAME; //这样写也不会有问题SELECT * FROM TableName; //都没问题CREATE TABLE "TableName"("id" number);  // 如果创建表的时候是这样写的,那么就必须严格区分大小写SELECT * FROM "TableName"; //不仅要区分大小写而且要加双引号,以便和上面的第三种查询方式区分开。
 




   insert into tab_b values (                 1, "name1","address1"                )   //   修改后:  insert into tab_b values (                 1,'name1','address1'                ) 
 






   delete from tab_a;
 



   2012-05-21 20:27 ORA-28001: the password has expired解决方法   Oracle提示错误消息ORA-28001: the password has expired,是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个默认的功能很容易被DBA或者是开发人员给疏忽,一旦密码180天未修改过,就会出现这样的问题。解决方法可通过如下SQL语句SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'查询密码的有效期设置,LIMIT字段是密码有效天数。在密码将要过期或已经过期时可通过如下语句进行修改密码,密码修改后该用户可正常连接数据库。ALTER USER 用户名 IDENTIFIED BY 密码 ; 如果想去除180天的密码生存周期的限制可通过如下SQL语句将其关闭ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED 如上SQL语句将口令有效期默认值180天修改成了“无限制”。但是出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,建议大家定期修改数据库用户口令。然后重新设置账号即可。SQL命令是:SQL> alter user system  identified by Welcome1;SQL> alter user UCM_OCS identified by Welcome1;
 






Oracle一段时间不用了,再登录就登不上去,真乃怪哉,不止俺一人出现此问题,先不问为什么出现这个现象,解决这个问题应急先,网上搜罗解决办法,成功解决问题的办法来自:http://wuyizhaizhu.blog.163.com/blog/static/1151518692010091008280/====================================================================ORA-01017 invalid username/password;logon denied" (密码丢失解决方案)1、先确认是否输错 用户名和密码2、如果的确是丢失密码的话:查看ORACLE_BASE\ORACLE_HOME\NETWORK\ADMIN的sqlnet.ora文件sqlnet.ora 如果是 SQLNET.AUTHENTICATION_SERVICES= (NONE) ,需更改为SQLNET.AUTHENTICATION_SERVICES= (NTS)在SQL*Plus中执行如下命令:   SQL>conn/as sysdba (操作系统认证登录)   SQL>alter user system identified by system; (回车后用户system的密码会更改为system)  =============================================================================注意:在执行更改语句“SQL>alter user system identified by system; (回车后用户system的密码会更改为system) ”的时候,如果所改的秘密为一串数字的话,要用引号括起来哦~eg:SQL>alter user system identified by   “12345678”;
 



sql之left join、right join、inner join的区别left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下:aID     aNum1     a200501112     a200501123     a200501134     a200501145     a20050115表B记录如下:bID     bName1     20060324012     20060324023     20060324034     20060324048     2006032408--------------------------------------------1.left joinsql语句如下: select * from Aleft join B on A.aID = B.bID结果如下:aID     aNum     bID     bName1     a20050111    1     20060324012     a20050112    2     20060324023     a20050113    3     20060324034     a20050114    4     20060324045     a20050115    NULL     NULL(所影响的行数为 5 行)结果说明:left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).B表记录不足的地方均为NULL.--------------------------------------------2.right joinsql语句如下: select * from Aright join B on A.aID = B.bID结果如下:aID     aNum     bID     bName1     a20050111    1     20060324012     a20050112    2     20060324023     a20050113    3     20060324034     a20050114    4     2006032404NULL     NULL     8     2006032408(所影响的行数为 5 行)结果说明:仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.--------------------------------------------3.inner joinsql语句如下: select * from Ainnerjoin B on A.aID = B.bID结果如下:aID     aNum     bID     bName1     a20050111    1     20060324012     a20050112    2     20060324023     a20050113    3     20060324034     a20050114    4     2006032404结果说明:很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.--------------------------------------------注: LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。 语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2 说明:table1, table2参数用于指定要将记录组合的表的名称。field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。compopr参数指定关系比较运算符:"=""<"">""<="">=""<>"。如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误. 
 

文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wxb880114/article/details/84428529

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。