Oracle基本命令
评论(0) 浏览量(4186)

这些都是我个人收藏总结的,方便忘了的时候查找~虽然很简单,但是还是分享一下~ 


 student表:id、name、password、age

 1、SELECT 列名称 FROM 表名称

 查询student表的所有信息:sql>SELECT * FROM student;


1.1、SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

 查询student表的ID=10的列:sql>SELECT * FROM student WHERE id = '10';


1.2、表分区查询:select * from 表名 partition(分区名); 


1.3、 查询student表,以ID升序排列:sql>SELECT * FROM student ORDER BY id;

降序表列:sql>SELECT * FROM student ORDER BY id DESC;


1.4、查找fox表空间的student表中 password为包含数字23的信息:sql>select * from fox.student where password like "#%";


1.5、查询fox表空间student表中id等于41,40的信息:sql>select * from fox.student where id in (41,40);


1.6、SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN value1 AND value2  

注:介于 "value1"(包括)和 "value2"(不包括)之间的数据


1.7、SELECT 列名称 FROM 表名称 AS 表的别名

SELECT 列名称 AS 列的别名 FROM 表名称

将student别名为学生,name别名为名字:sql>SELECT name AS 名字 FROM student AS 学生;

注:此命令仅是显示为学生、名字,但是没有这样的属性和链接,AS可以省略。

常用:sql>SELECT s.id,s.name FROM student s;


2、INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

在student表中插入一行:sql>INSERT INTO student (id,name,age) VALUES(9,zhangsan,18);


3、UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

把student表中id=9的用户name更改为lisi:sql>UPDATE student SET name = 'lisi' WHERE id = '9';

把org_role表中role_text=in中的所有sys_role更改为0:sql>UPDATE org_role SET sys_role = 0 WHERE role_text in ('地址管理员','地址段申请人','IP申请人');


4、DELETE FROM 表名称 WHERE 列名称 = 值

删除student表中id=9的用户:sql>DELETE FROM student WHERE id = '9';


5、 删除mysql 数据库中的student表:sql>DROP TABLE mysql.student ;

删除mysql 数据库中的student表的内容:sql>truncate table mysql.student drop storage;


6、ALTER TABLE 语句用于在已有的表中添加、修改或删除列。

如需在表中添加列:sql>ALTER TABLE table_name ADD column_name datatype

要删除表中的列:sql>ALTER TABLE table_name DROP COLUMN column_name

注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。

要改变表中列的数据类型:sql>ALTER TABLE table_name ALTER COLUMN column_name datatype


9、唯一键:unique

1)创建表时加入:constraint name_unique unique(name) 

可以多个值:constraint name_unique unique(fname,lname) 

2)手动修改:alter table table_name add constraint name_unique unique(name) 


10、创建表空间:CREATE DATABASE database_name

创建表:

CREATE TABLE Student (

id int NOT NULL auto_increment,

username varchar(200) NOT NULL,

password varchar(20) NOT NULL,

age int,

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=GBK;

注意:这个是MySQL数据库的建表语句。这个表有一个自增的ID列作为主键,还有用户名,密码和年龄三个列,最后一句ENGINE=MyISAM DEFAULT CHARSET=GBK指定了表的默认字符集是GBK中文字符,这一句是MySQL特有的语法。



11、创建序列号:

CREATE SEQUENCE SEQ_FOR_flyfox_person 

MINVALUE 1 --最小值为1

INCREMENT BY 1 --每次加1

NOMAXVALUE --没有最大值限制

CACHE 10 

NOORDER 

NOCYCLE --一直累加,不循环

;


12、创建触发器:

CREATE OR REPLACE TRIGGER "TRI_FOR_flyfox_person" 

before insert on flyfox_person--在表执行插入语句之前

for each row--基于一行数据,等下还有基于列的

 DECLARE

begin

select seq_for_flyfox_person.nextval into :new.id--我们将产生的下个序列的值赋给要插入数据行的主键

from dual;

end;

/

ALTER TRIGGER "TRI_FOR_flyfox_person" ENABLE;


13、删除表空间 - drop tablespace tablespace_name including contents ;


14、删除用户(用户下存在对象,表示要连带对象一起删除) - drop user SCM20 cascade ;


15、删除序列号:sql> drop   sequence  SEQ_FOR_flyfox_person;



99、%替代一个或多个字符;_仅替代一个字符;BETWEEN ... AND 会选取介于两个值之间的数据范围;NOT NULL 约束强制列不接受 NULL 值。


----------------------------------------------------------------------------------------------------------

IMP导入语句 nohup imp ultranms/ultranms fromuser=ultranms touser=ultranms ignore=y log=./20100325.log  file=/export/oracle/ultranms20110325.dmp &

用户名/密码  fromuser=从用户名  touser=到用户名 ignore=y(忽略错误) log=日志文件  file=导入文件路径+名称


EXP导出语句nohup exp ultranms/ultranms file=/data/orabak_exp/ultranms20110412.dmp log=/data/orabak_exp/ultranms20110412.log  full=y  direct=y &

用户名/密码  file=导出文件路径+导出文件名  log=日志文件路径+日志文件名 full=y(导出所有数据)direct=y


查询用户:

select * from all_users;

select * from dba_users;

没有登录不能评论