Oracle
oracle基础知识
常见操作:
DDL:data defination language数据定义语言,create、alter 、truncate,drop
DML:data manipulate language,数据操纵语言,insert,update、delete;
DCL:data control language,数据控制语言,grant、revoke;
DQL:data query language,数据查询语言,select;
TCL: transaction control language事务控制语言commit、savepoint、rollback
基本操作:
创建数据库:
create database stuSystem;
DDL:
创建表:
create table student(
sno varchar2(8) constraint pk_sno primary key,
sn varchar2(32) constraint nk_sn not null,
sex varchar(6) constraint ck_sex not null check(sex in('男','女')),
age number(6,2) ,
constraint ck_age check(age between 18 and 60)
);
修改表:
1. 修改表名
ALTER TABLE OLD_TABLE_NAME RENAME TO NEW_TABLE_NAME;
Alter table student rename to stu;
2.修改列名
ALTER TABLE TABLE_NAME RENAME COLUMN OLD_COLUMN_NAME TO NEW_COLUMN_NAME;
Alter table student rename column age to agg;
3.插入列
ALTER TABLE TABLE_NAME ADD COLUMN_NAME DATATYPE;
Alter table student add age int;
4.修改列的数据类型
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME NEW_DATATYPE;
Alter table student modify age varchar2(3);
5.删除列
ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME;
Alter table student drop column age;
删除表:
drop table student;
DML:
插入:
insert into student values ('1','张三','男',20);
insert into student(sno,sn) values('2','张四');
更新:
update student set age=age+10;
删除:
delete from student where sno='1';
DCL:
创建用户
CREATE USER 用户名@'%' IDENTIFIED BY 密码
GRANT 权限1,...,权限n ON 数据库.表名 TO 用户名@IP地址
REVOKE 权限 ON 数据库名.表名 from 用户名@IP地址
注:all代表所有权限,*代表所有数据库或所有表
查看权限
SHOW GRANTS FOR 用户名@IP地址
删除用户
DROP USER 用户名@IP地址
DQL:
查询:
select * from student;
TCL:
ROLLBACK
COMMIT
单行函数:
字符函数:
select substr('Hello World',3,4) from dual;
数字函数:
select round(45.926,2) 四舍五入, trunc(45.926,2) 截断 ,mod(1600,300) 求余 from dual;
日期函数:
SELECT SYSDATE FROM dual;
通用函数:
a、NVL(a,b)
如果a为null值,则取b为返回结果,否则返回a。
b、NVL2(a,b,c)
如果a为null, 则结果为b, 否则结果为c。
c、DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
转换函数:
to_char():将日期转换为字符串
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
to_date();将字符串转化为日期
SELECT TO_DATE('1989-09-12','yyyy-mm-dd') FROM dual;
日期 + 数字 = 日期
日期 – 数字 = 日期
日期 – 日期 = 天数
组函数(多行函数):
max()
min()
count()
sum()
avg()
能在select或select的having子句中使用
在使用group by 进行分组时,必须注意,如果select字句中包含了组函数,就不能选择单独的字段,除非出现在groupby字句后面
五大约束:
NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.
CHECK (检查)--检查在约束中指定的条件是否得到了满足.
UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的.
PRIMARY KEY (主键)--用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束.
POREIGN KEY (外部键)--通过使用公共列在表之间建立一种父子(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯一键.
添加约束:
表级约束:可以应用于一列上,也可以应用在一个表中的多个列上。与列定义相互独立,不包含在列定义中;与定义用‘,’分隔;必须指出要约束的列的名称
列级约束:只能应用于一列上列级约束:包含在列定义中,直接跟在该列的其它定义之后 ,用空格分隔;不必指定列名
只能创建列级约束:,缺省约束, Null 约束 create table SC(
sno varchar2(8),
cno varchar2(8),
score number(6,2),
constraint pk_sc primary key(Sno,Cno), //主码由两个属性构成,必须作为表级完整性进行定义
foreign key(Sno) references Student(Sno))//表级完整性约束条件,Sno是外码,被参照表是Student
利用alter添加约束
alter table 表名
add constraint 约束名 约束类型具体的约束说明
-添加检查约束
alter table stu
add constraint CK_stuAge check(stuAge between 15 and 40)
--添加外键约束
alter table stu
add constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)
删除约束
alter table 表名 drop constraint 约束名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!