数据库常用的命令

数据库中的命令辣么多,哪能都记住,没关系,有我呢!酷

我们安装好Oracle后,一般要创建用户,要查询用户,删除用户等等都要用到命令,下面我们就将常用的一些命令给大家列出来!

数据库登陆及用户命令:

--登陆数据库
conn system/口令

--给scott用户解锁

alter user scott account unlock;

--给用户设置口令
alter user scott identified by 1234

--查看当前连接数据库的用户
show user;

--创建新用户
create user xxx identified by 123456

--给新用户xxx允许连接数据库的权限

grant connect to xxx;

--删除用户
drop user xxx;

数据库的逻辑结构是从逻辑角度分析数据库的组成,Oracle的逻辑组件包括:



 


 
 

 

SQL是一种语言,数据库语言,结构化查询语言,所有的数据库基本都支持标准的SQL语言。不区分大小写

创建表空间,创建表以及对表的操作的命令:

1.数据定义语言(DDL)用户:对表空间,表的操作
create创建

alter修改, 
dorp删除
--创建表空间
create tablespace scottSpace datafile 'D:\SCOTTFILE'size 10M;

--创建表

create table student(
      userNum  number(10,2),
      userName varchar2(20),
      userSex   char(2)
)tablespace scottSpace;

----修改表结构
alter table student modeify (userSex (4));
alter table student add(userbirthdaye date);
alter table student modeify(userNum number(10)not null);


----查看表名
desc 表名;

2.数据操作语言(DML):对表数据的操作
    insert  into          插入
    update             修改数据
    delete              删除数据
    select              查询数据

----插入数据到student表
insert into 表名(字段名,字段名...)values (值1,值2...);

----如果不写字段名,values的值就是按照创建表的时候的字段顺序给所有的字段要赋值
insert into 表名values (值1,值2...所有字段的值);

insert into student (userunm,username,usersex )values (1234,"张三","男"),

--插入生日
insert into student values (22233,'张无忌','男',to _date('1984-10-10','YYYY-MM-DD'));将时间字符串格式化成一个date类型
insert into student values (22233,'张无忌','男',sysdate)--系统当前时间


----查询表中的数据
select 字段名,字段名.....from 表名;
----*表示所有字段
select * from 表名

----修改语句
-----修改所有的数据。
update 表名 set 字段=新值
-----修改某一行
update 表名 set 字段=新值 where 字段=值


----删除语句
----删除所有数据
delete from 表名;
-----删除某一行
delete from 表名 where 字段=值
---快速清空所有的数据
truncate table student;


3.事物控制语言(TCL)
savepoint 保存点名://设置保存点
rollback  保存点名://回滚到指定的保存点
commit;//提交事物

----事物:做一件事情所需要的一系列完整的操作;
rollback
回滚,回退,值删除的数据可以找回,回退到最后一次的事物提交点。

commit:提交事物。当关闭oracle客户端时,会自动提交。
savepoint:设置一个保存点
rollback to a;
rollback to b;回滚到保存点


4.数据控制语言 (DCL)

grant:授权的语句

--给新用户xxx允许连接数据库的权限

grant connect to xxx;

对表数据的查询语句:

系统数据库SYSTEM自带一个表数据,为emp,为了不是该表数据损坏,我们可以克隆一个表empbak,然后可以对表进行查询练习。

---连接用户

conn scott

-----克隆表(有数据)
create table empbak as select  * from emp

克隆表(无数据)
create table empbak as select  * from emp where 1=2;

查询语句
--最简单的查询
select * from empbak;
--尽量不要使用select *
select empno,ename,sal from empbak;

--别名查询
select empno as 编号,ename as 姓名,sal as 工资 from empbak;

--查询所有人的姓名和年薪
select ename as 姓名,sal*12 年薪 from empbak;

--带条件的查询
select  ename ,sal from empbak where deptno=10;
select * from empbak where sal>2000;

--从结果集中去掉重复的数据 distinct
--查询empbak表中有多少个工作岗位
select distinct job from empbak;

--查询工资在一个范围之间的数据

SELECT * FROM EMP WHERE SAL>2000 AND SAL<3000 ;
SELECT * FROM EMP WHERE SAL BETWEEN 2000 AND 3000 ;
--查询部门10和部门20的员工
select  * from emp where deptno=10 or deptno=20;
select * from emp where deptno in(10,20);

--模糊查询  % _
-- % 通配1个或者多个字符
-- _通配1个字符
--查询名字有M
select * from emp where ename like '%M%';
--查询名字是M开头的
select * from emp where ename like 'M%';
--查询名字中第二个字母是M
select * from emp where ename like '_M%';
--查询名字是四个字的
select * from emp where ename like '____';

--查询所有有奖金的人
select * from emp where comm is not null;
--查询emp表中没有上级的员工
select * from emp where mgr is null;

--大于结果集中的任意值
select * from emp where sal >any(2000,3000,4000);
-- 大于结果集中的所有值
select * from emp where sal >all(2000,3000,4000);

--计算所有人的月收入 月收入=工资+奖金
-- nvl(comm,0):如果comm为null,则为0
select ename,sal+nvl(comm,0) from emp;

猜你喜欢

转载自purple12.iteye.com/blog/2255007