Oracle体系介绍
Oracle默认用户
- SCOTT用户是Oracle 数据库的一个示范帐户,在数据库安装时创建(我们用的版本现在是HR用户)
SQL基础语法
SQL组成
- 数据定义语言(DDL 操作表的结构)
create(创建)、alter(修改)、drop(删除) - 数据操纵语言(DML 操作表的数据)
insert(添加)、delete(删除)、update(修改)、select(查询)
数据控制语句(DTL)
授权的语句
事务控制语句(TCL)
--修改数据
update student set password='888888'where id=1;
--事务提交
commit
--事务回滚
rollback;
数据定义语言(DDL)
作用:
数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象
操纵表结构的sql语句:
CREATE TABLE -创建表
ALTER TABLE -修改表
TRUNCATE TABLE -清空表(不存储日志)
DROP TABLE -删除表
add constraint 主键名 primary key(id)
add constraint 唯一标示符名 unique(username)
起名规则:(pk:primary key的简称)pk_表名_字段名
--备份表结构和数据
create table student_bak20210224 as select * from student;
--利用已有的表和数据创建新的表,只备份表结构
create table student_bak20210224_2 as select * from student where 1=2;
数据操纵语言(DML)
作用:
数据操纵语言用于检索、插入和修改数据
数据操纵语言命令包括:
SELECT 查询
INSERT 插入
UPDATE 更新
DELETE 删除
查询数据:
--查询表所有数据
select * from student;
--查询表所有数据,并可以可视化修改数据
select * from student for update;
--给表去别名,多用于多表关联了查询,用来区分不同的表中相同的字段名
select s.id,s.name from student s;
--给列取别名
select s.id 编号,s.name 姓名 from student s;
添加数据
--插入数据to_date('2001-01-01','yyyy-MM-dd')系统函数,把字符串类型转换成date类型
-- sysdate系统函数,获取当前系统时间
insert into student(id,name,username,password,sex,age,birthday,create_time)
values (1,'张三','zhangsan ','123456',1,19,to_date('2001-01-01','yyyy-MM-dd'),sysdate);
修改数据
-修改全部数据的名字为迪丽热巴
update student set name='迪丽热巴';
--将sex为2的数据改为0
update student set sex=0 where sex=2;
删除数据
--删除数据
delete from student where id=1;
Oracle数据类型
-
字符
Oracle中long类型是字符串类型char类型(固定长度1~2000字节) varchar类型跟varchar2()(可变长度1~4000字节) long类型(可变长度最多为2g)
-
数值
可以存储整数、浮点数和实数 最高精度为 38 位 数值数据类型的声明语法: NUMBER[(p[,s])] P表示精度,S表示小数点的位数
-
日期时间
存储日期和时间值,包括年、月、日,小时、分钟、秒 主要的日期时间类型有: DATE - 存储日期和时间部分,精确到秒 TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位
-
伪列(ROWID,ROWNUM)
Oracle 中伪列就像一个表列,但是它并没有存储在表中 伪列可以从表中查询,但不能插入、更新和删除它们的值 常用的伪列有ROWID和ROWNUM
ROWID
是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行
ROWNUM
是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数。可用于分页查询
--伪列rowid,rownum不是真实存在表中的列,只能作用查询
select s.*,rowid,rownum from student s;
SQL操作符
-
算数操作符(+,-,*,/)
作用: 算术操作符用于执行数值计算
--查询5年后所有学生的年龄
select s.age+5 五年后的年龄 from student s;
-
比较操作符
比较操作符有:=、!=、<、>、<=、>=、BETWEEN…AND、IN、NOT IN、LIKE 和 IS NULL、IS NOT NULL等
--查询年龄等于18岁的学生
select * from student where age=18;
--查询年龄大于20岁的学生
select * from student where age>20;
--查询年龄小于20岁的学生
select * from student where age<20;
--查询年龄大于等于20岁的学生
select * from student where age>=20;
--查询年龄小于等于20岁的学生
select * from student where age<=