1.ORCALE的安装
可以参考当前网址:https://www.w3cschool.cn/oraclejc/oraclejc-41xa2qqv.html
2.ORCALE中常见的数据类型:
1.number
- number(2)-----两位数
- number(7,2)----总共长度7位:五位整数,小数两位
2.char
- 定长字符串,最大支持2000字节
- 不指定长度默认一个字节
- CHAR(20)–汉字gbk可有10个汉字(2字节),utf8最多只有6个汉字(3字节),当长度不够时,会用空格占完
-
- CHAR(20 CHAR)–20字节
3.varchar2
- varchar(10),变长字符串,最多占4000字节,用多少占多少,所有数据库通用的
- 必须制定字节长度
- varchar2,ORCALE特有的字符类型,和varchar用法差不多
- varchar2(20 byte)–20字节
注意:char和varchar的区别:char读取快,空间利用率低,varchar读取慢,空间利用率高
4.date
- 日期时间数据,长度是7字节
- 默认格式:DD-MON-RR,例如:11-APR-71
5.LONG
- 字符串类型
- VARCHAR2的加长版,存储变长字符串,最多达2G字符串
- 有诸多限制:一张表只能有一个LONG类型,不能作为主键、不能建立索引、不能出现在查询条件中
6.CLOB
- 字符串类型
- 最大支持4G字符串,没有那么多限制
- ORCALE中推荐使用CLOB
3.数据定义语言(DDL)
用于建立、修改、删除数据库对象,包括:CREAE . ALTER, DROP, TRUNCATE(删除表数据,保留表结构,彻底删除,无法恢复)
1.创建表
注意,在PLSQL中,可以单独选择某一行,然后点击执行
PLSQL中的默认注释是: –
--创建表
CREATE TABLE employee_wjh(
id NUMBER(4) NOT NULL,
name VARCHAR(20) NOT NULL,
gender CHAR(1) NOT NULL,
birth DATE NOT NULL,
salary NUMBER(6,2) DEFAULT,
job VARCHAR2(30) DEFAULT,
DEPTNO NUMBER(2) DEFAULT
);
2.查看表
1.简单查询
select sysdate from dual;
SELECT * FROM employee_wjh;
2.详细查看表
DESC employee_wjh;
3.修改表
1.修改表名
RENAME employee_wjh TO myemp;
2.修改表结构
1.添加新的字段
ALTER TABLE myemp ADD(hierdate DATE DEFAULT SYSDATE);
注意:只能添加在表的最后
DEFAULT SYSDATE --默认系统当前的时间
2.修改现有字段
- 可以 修改字段名的类型、长度、默认值、是否非空,不能修改表的字段名
- 修改表的结构都可以应当避免在表中有数据以后进行
- 若表中有数据,修改表中的字段时应当尽量不要修改类型,
- 若修改长度尽量增大避免缩小,否则可能失败
ALTER TABLE myemp MODIFY(job VARCHAR2(50) DEFAULT 'ClERK');
3.删除现有字段
ALTER TABLE myemp DROP(hierdate );
4.删除表
DROP TABLE myemp;
4.DML语句
- DML是对表中的数据进行操作
- DML伴随事务控制(TCL)
- DML操作包含:增、删、改
1.添加数据
INSERT INTO myemp(id,name,salary,deptno) VALUES(1,'jack',5000,10);
commit;
- 插入日期,推荐使用下面这种
例如:
INSERT INTO myemp(id,name,salary,deptno,birth) VALUES(3,'Carry',500,0,TO_DATE('2019-11-23','yyyy-mm-dd'));
2.修改表中的数据
update myemp set salary=8000 where id=3;
3.删除表中的数据
1.DELETE
DELETE FROM myemp WHERE ID=2;
2.TRUNCATE
删除表数据,保留表结构,彻底删除,无法恢复(DDL中的操作)
5.字符串函数
SELECT语句,FROM, WHERE
1.连接字符串函数
1. CONCAT() 连接字符串
SELECT CONCAT(NAME,SALARY) FROM myemp;
SELECT CONCAT(CONCAT(NAME,','),SALARY) FROM myemp;
2.||连接字符串
SELECT NAME||','||SALARY FROM myemp;
2.返回字符串的长度
LENGTH 函数,查看字符串的长度
SELECT NAME,LENGTH(NAME) FROM myemp;
3.将字符串转化换为全大写、全小写以及首字母大写
- UPPER, LOWER, INITCAP
- 对于INITCAP而言,可以使用空格,个开多个单词,那么每个单词首字母都会大写
注意:伪表:dual
当查询表中的数据不和任何表中的数据有关系的时候,可以使用伪表,伪表只会查询出一条记录
SELECT UPPER('heool') FROM dual;
SELECT LOWER('HEWW') FROM dual;
SELECT INITCAP('heool GSGRGE') from dual;
INITCAP执行结果:
常见用法:
3.TRIM,LTRIM,RTRIM
-
去除当前字符串两边、左边、右边制指定重复的字符,只能是单个字符(去两边时)
-
去两边
-
去右侧
-
去左侧
4.补位字符串LPAD、RPAD
-中间数字,是显示几个字节,后面的可以用空格,来进行左右对其
- 位数不够 相当于截取,多了会自动把多余的补全
- 截取都是从左往右
注意:人名币符号占两字节,美元符号占一字节
5.SUBSTR截取字符串
- 数据库中的下标是从‘1’开始的
- 第三个参数不指定则是截取到末尾,制定的若超过实际长度可以截取的内容也是到末尾
- 第二个参数也可以是负数
6.INSTR(char1,char2[,n,m])函数
- 查找char2在char1中的位置
- n为第几个字符开始检索
- m为第几次出现
- n,m不写则默认是1
注意事项:
- 数据库中所有的数据类型默认值都是null,在创建表的时候可以使用DEFAULT为某个字段指定默认的值
- SQL语句本来不区分大小写,但是出于可读性的目的,我们通常会将SQL中的关键字全部大写,非关键字全部小写。
6.数值函数
1.ROUND(N,M)四舍五入
2.MOD(m,n),求余数
- 除数可以为0,返回仍是原来的数字
3.CEIL和FLOOR(向下、向上取整)
7.时间函数
常见日期类型
- TIMESTAMP类型
- SYSDATE
- SYSTIMESTAMP
日期转换函数
TO_DATE
- 可以将字符串转换为指定的日期格式,解析为date类型
- 测试