oracle数据库

一.数据库的基本操作(用户管理)

1、创建用户 create user 用户名 identified by 密码;
2、修改密码 alter user 用户名 identitied by 新密码;
3、用户授权 grant connect,resouce to 用户;
4、回收权限 revoke connect,resouce to 用户;
5、锁定用户 alter user 用户名 ACCOUNT LOCK;
6、解锁用户 alter user 用户名 ACCOUNT UNLOCK;
7、删除用户 drop user 用户名 cascade;

注意:创建用户、删除用户等权限只有数据库的管理员才有,数据库的管理员一个是system,一个是dba。oracle数据库_第1张图片
以管理员身份登录:
oracle数据库_第2张图片

二.数据类型和约束

1. 数据类型:
char() 表示固定长度,比如char(5)表示字符长度不能超过5,如果实际只有3个,剩余的2个会用空格填补,查询效率比较高。
varchar() 表示可变长度。比如varchar(10),如果实际只有3个字符,只存放3个字符,查询效率比char低。
varchar2() 表示可变长度,和varchar()的用法一样。
number() 表示数字类型。numer(3)表示至多存储3位数字,取值范围(0-999); number(5,2)表示存储5位长度的数字,但是必须要满足2位小数,取值范围(0.0 - 999.00)。
date 日期类型。

2. 数据库中的约束:
1)、主键(Primary key):默认有唯一性和非空属性;
2)、外键(references):外键中的数据来源于另一张表的主键。
3)、非空(not null):数据不可以为空。
4)、唯一(unique):存储的数据不能相同,可以为空。
5)、检查(check):检查数据是否满足要求。

三.数据库创建表

1、创建表: create table 表名
oracle数据库_第3张图片
查看结果,表创建成功:
oracle数据库_第4张图片
2、删除表: drop table 表名

四.数据插入、修改和删除

1、查看之前创建的表
oracle数据库_第5张图片
2、向表中插入数据:insert into 表名
oracle数据库_第6张图片
3、修改表中的数据:update 表名 set
oracle数据库_第7张图片
set 后面的条件可以有多个,用逗号分开;也可以进行加减乘除操作
oracle数据库_第8张图片
oracle数据库_第9张图片
4、删除一行数据:delete from 表名 where 条件
oracle数据库_第10张图片

五. 数据库的查询

用法:

select 字段 [别名],字段[别名],...         
FORM  表名 [别名]                                                    
[WHERE  限定条件]                                                  
[GROUP BY 分组字段1,分组字段2...]
[HAVING 条件...]
[ORDER BY 列名 [ASC|DESC],列名 [ASC|DESC],列名 [ASC|DESC]...]

oracle数据库_第11张图片
1、限定查询
where字句之后可以增加多个条件。
(1)、算术运算:>、>=、<、<=、=、!=(或者<>)
(2)、逻辑运算符:and(与)、or(或)、not(非)
(3)、范围判断:between 最小值 and 最大值(可在前面加not求反)
between操作所指定的范围也包括边界。
oracle数据库_第12张图片
between…and…不仅对数字有效,对日期也同样有用
oracle数据库_第13张图片
(4)、判断是否为空:is(not)null
oracle数据库_第14张图片
(5)、指定范围:IN
oracle数据库_第15张图片
(6)、模糊查询:like(可在前加not求反)

  • 匹配单个字符:_ (1个)
  • 匹配多个字符:%(0个、1个、多个)
    oracle数据库_第16张图片
    注:如果模糊查询上不设置任何关键字(“%%”)的时候,则表示查询全部记录。

2、分组查询(group by)
一般与聚合函数一起使用:count() 计数 、sum() 求和、avg() 平均数、max() 最大值、min() 最小值。
oracle数据库_第17张图片
PS:因为聚合函数通过作用于一组数据而只返回一个单个值,因此:

  • 在不使用group by子句分组时,使用聚合函数,不能出现其他字段
    oracle数据库_第18张图片
  • 在使用group by分组时,只允许出现分组字段和聚合函数里的字段
    oracle数据库_第19张图片
  • 聚合函数可以嵌套,但是嵌套之后,SELECT子句中不能出现其他字段。
    oracle数据库_第20张图片

3、数据的排序(order by)–写在所有sql字句之后

  • 升序(ASC):默认
  • 降序(DESC):需要用户指定,由大到小排序
    oracle数据库_第21张图片

4、HAVING
HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。
HAVING语句的存在弥补了where关键字不能与聚合函数联合使用的不足。
oracle数据库_第22张图片

六. 数据库中的多表查询

七. 数据库常用函数

1. 转换函数

  • to_char(列名/日期,转换格式):将日期转换为字符串,年(yyyy)月(mm)日(dd)时(hh24)分(mi)秒(ss);
  • to_date(字符串,时间格式):将字符串变为date日期显示(oracle中默认的时间格式:xx日xx月xx年);
  • to_number(列名/数值):将字符串中数字的类型转换为数字类型;

2. 日期函数

  • sysdate:系统当前时间
    计算日期:
    日期+天数=n天后的日期
    日期- 天数=n天前的日期
    大日期-小日期=两个日期间的天数(时间间隔)
  • last_day(日期):指定日期的最后一天;
  • next_day(日期,星期数):下一个指定星期X的日期;
  • add_months(日期,数字):若干月之后的日期;
  • months_between(日期1,日期2):两个日期之前经历的月数;

3. 字符函数

  • UPPER(字符串/列):小写转大写;
  • LOWER(字符串/列):大写转小写;
  • initcap(字符串/列):首字母大写;
  • length(字符串/列):求字符串的长度;
  • replace(字符串/列,源数据,新数据):替换;
  • substr(字符串/列,开始点[,结束点]):字符串截取

4. 数字函数

  • round(数字/列[,保留的小数位数]):四舍五入;
  • trunc(数字/列[,保留的小数位数]):舍弃指定位置的内容;
  • mod(数字1,数字2):取模,取余数;

八. 数据库的导入、导出

导入 Imp 管理员账号/密码@服务名 fromuser= developing touser=库名 file= d:\developing.dmp
导出 exp 管理员账号/密码@服务名 owner=要导出的库名 file=d:\database.dmp

3. List item

你可能感兴趣的:(数据库)