一.数据库的基本操作(用户管理)
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。
以管理员身份登录:
二.数据类型和约束
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 表名
查看结果,表创建成功:
2、删除表: drop table 表名
四.数据插入、修改和删除
1、查看之前创建的表
2、向表中插入数据:insert into 表名
3、修改表中的数据:update 表名 set
set 后面的条件可以有多个,用逗号分开;也可以进行加减乘除操作
4、删除一行数据:delete from 表名 where 条件
五. 数据库的查询
用法:
select 字段 [别名],字段[别名],...
FORM 表名 [别名]
[WHERE 限定条件]
[GROUP BY 分组字段1,分组字段2...]
[HAVING 条件...]
[ORDER BY 列名 [ASC|DESC],列名 [ASC|DESC],列名 [ASC|DESC]...]
1、限定查询
where字句之后可以增加多个条件。
(1)、算术运算:>、>=、<、<=、=、!=(或者<>)
(2)、逻辑运算符:and(与)、or(或)、not(非)
(3)、范围判断:between 最小值 and 最大值(可在前面加not求反)
between操作所指定的范围也包括边界。
between…and…不仅对数字有效,对日期也同样有用
(4)、判断是否为空:is(not)null
(5)、指定范围:IN
(6)、模糊查询:like(可在前加not求反)
- 匹配单个字符:_ (1个)
- 匹配多个字符:%(0个、1个、多个)
注:如果模糊查询上不设置任何关键字(“%%”)的时候,则表示查询全部记录。
2、分组查询(group by)
一般与聚合函数一起使用:count() 计数 、sum() 求和、avg() 平均数、max() 最大值、min() 最小值。
PS:因为聚合函数通过作用于一组数据而只返回一个单个值,因此:
- 在不使用group by子句分组时,使用聚合函数,不能出现其他字段
- 在使用group by分组时,只允许出现分组字段和聚合函数里的字段
- 聚合函数可以嵌套,但是嵌套之后,SELECT子句中不能出现其他字段。
3、数据的排序(order by)–写在所有sql字句之后
- 升序(ASC):默认
- 降序(DESC):需要用户指定,由大到小排序
4、HAVING
HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。
HAVING语句的存在弥补了where关键字不能与聚合函数联合使用的不足。
六. 数据库中的多表查询
七. 数据库常用函数
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 |