2024年Java最全Oracle快速入门(创建、修改、删除)创建数据库、表空间,还没搞懂Java中的路径

总结

面试建议是,一定要自信,敢于表达,面试的时候我们对知识的掌握有时候很难面面俱到,把自己的思路说出来,而不是直接告诉面试官自己不懂,这也是可以加分的。

以上就是蚂蚁技术四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考

一份还热乎的蚂蚁金服面经(已拿Offer)面试流程4轮技术面+1轮HR

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

create user 用户名

identified by 密码

default tablespace 表空间的名称

2、创建用户

在itzheng表空间当中创建用户itzhenguser密码为root

create user itzhenguser

identified by root

default tablespace itzheng

3、登录用户,发现无法登录

登录用户itzhenguser

在这里插入图片描述

无法登录:缺少创建会话的权限,登录被拒绝

在这里插入图片描述

4、授予用户权限(后登录)

新创建的用户没有任何权限

(1)Oracle当中以及存在三个重要的角色:connect角色,resource角色,dba角色。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)设置权限:语法

授权 grant 角色 | 权限 to 用户

(3)实现语句

grant connect to itzhenguser;

(4)登录授予权限的用户

登录itzhenguser

在这里插入图片描述

登录成功

在这里插入图片描述

5、授予dba的角色(登录切换回system用户)

grant dba to itzhenguser;

6、设置完权限后(登录切换回itzhenguser用户)

在这里插入图片描述

7、设置完dba权限后查询任意用户的全部的内容

select * from scott.emp;

在这里插入图片描述

五、创建表


1、语法

create table 表名(

列名 列的类型(列的约束),

列名 列的类型(列的约束)

);

2、列的类型

varchar ,在Oracle当中,是目前是支持的,但是不保证以后还支持

varchar2(长度) :可变字符长度 varchar2(10) hello 占5个字符

char(长度):固定长度字符 char(10) hello 占10个字符,用空格填充

number(总长度:小数长度) 数字类型

date 年月日时分秒

timestamp 时间戳,比date类型更加精确04-SEP-20 06.48.53.991000 PM +08:00

3、创建test1表

create table test1(

name1 varchar2(10),

name2 char(10),

age number(2,3)

);

4、向test1表当中插入数据

insert into test1(name1,name2) values (‘hello’,‘hello’);

5、查询刚创建好的test1表

select * from test1;

在这里插入图片描述

可以通过点击光标的方式看出对应的数据的长度

在这里插入图片描述

在这里插入图片描述

6、在开发过程当中要注意的问题
(1)完全匹配查询

第一种情况:可以匹配查询到test1当中的name1的数据

select * from test1 where name1 like ‘hello’;

第二种情况:不可以匹配查询到test2当中name2对应的数据,因为name2当中的数据是有长度的并且有空格的,

select * from test1 where name2 like ‘hello’;//查不出数据

匹配查询的时候需要在后放加上空格

select * from test1 where name2 like 'hello ';

在这里插入图片描述

(2)插入数据(小数长度不能大于等于总长度)

上面在定义的时候,设置总长度为2小数位长度为3(age number(2,3)

所以下面在插入数据的时候,小数位

insert into test1(age) values(2.333);

在这里插入图片描述

(3)Oracle当中的数据类型

在这里插入图片描述

LONG/CLOB:可以存放一本小说。

BLOB(二进制大对象):存放电影 Java存进去,再读取出来。

7、使用子查询的方式创建表

create table 表名称 as 查询语句;

复制了scott用户下的emp表

create table emp as select * from scott.emp;

在itzhenguser下查询emp表

select * from emp;

在这里插入图片描述

这种方式创建的表是有一个弊端的。

注意:只会复制表结构和表当中的数据,不会复制列的约束。

上面这种方式查询语句是没有任何结果的。

select * from scott.emp where 1=2;

在这里插入图片描述

如果查询语句有结果,就是复制 表结果和数据

如果查询语句没有结果,就是复制表结果

所以通过查询出来空语句来通过子查询创建的表是没有任何结果

复制空表的结果还是空

create table emp1 as select * from scott.emp where 1=2;

select * from emp1;

在这里插入图片描述

六、修改表


1、添加列
(1)创建一张表

create table stu(

stuid number,

sname varchar(10)

);

(2)在Command Window窗口当中,查看表结构

在这里插入图片描述

在这里插入图片描述

DDL:数据定义语言,修改结构alter create drop truncate

DML:数据操纵语言,操纵表中的数据 insert update delete

DCL:数据控制语言,grant

DQL :select

(3)添加一列(修改表的结构)

在SQL Windows窗口当中

在Command Window窗口当中:修改成功

在这里插入图片描述

(4)添加多列

alter table stu add (mobile varchar2(11),

sex varchar2(2)

);

在这里插入图片描述

在这里插入图片描述

2、修改列的类型

alter table stu modify sex varchar2(4);

修改成功

在这里插入图片描述

3、删除列

alter table stu drop column gender;

删除成功

在这里插入图片描述

4、修改列名(将sex该为gerder)

alter table stu rename column sex to gender;

修改成功

在这里插入图片描述

5、重命名表名

rename stu to student;

在这里插入图片描述

6、删除表

drop table student;

在这里插入图片描述

七、表的五大约束


列的约束:约束主要用来约束表当中数据的规则

(一)单表约束:primary key 不能为空,必须唯一

(二)多表约束

1、主键约束
(1)先创建表

create table student (

stuid number primary key,

sname varchar2(10) unique,

age varchar2(10) not null,

gender varchar2(4) check(gender in (‘男’,‘女’))

);

select * from student;

创建成功

在这里插入图片描述

(2)插入数据

insert into student values(1,‘张三’,‘31’,‘男’);

insert into student values(2,‘李四’,‘31’,‘男’);

select * from student;

在这里插入图片描述

(3)实际测试,违反注主键约束

–主键的约束违反

insert into student values(1,‘张三’,‘31’,‘男’);

insert into student values(1,‘李四’,‘31’,‘男’);

在这里插入图片描述

2、非空约束

违反非空约束

insert into student values(1,‘赵六’,null,‘男’);

在这里插入图片描述

3、唯一约束

违反唯一约束

– 唯一约束违反

insert into student values(1,‘王五’,‘31’,‘男’);

insert into student values(2,‘赵六’,‘31’,‘男’);

在这里插入图片描述

4、检查约束
(1)在mysql当中是可以写的,但是mysql是直接忽略了检查约束
(2)在oracle当中违反检测约束

– 检查约束

insert into student values(1,‘李七’,‘31’,‘妖’);

在这里插入图片描述

5、外键约束

主要是用来约束从表A当中的记录,必须是存在于主表B当中的

(1)商品分类表

create table category(

cid number primary key,

cname varchar2(20)

);

(2)创建一个商品表

create table product(

pid number primary key,

pname varchar2(20),

cno number

);

(3)插入一些数据

在category表当中插入数据

insert into category values(1,‘手机数码’);

在没有外键约束的情况下,向product表当中插入没有意义的数据依旧可以插入

insert into product values(10,‘锤子’,11);

在category 表当中没有11这个对应的cid

(4)添加外键对其进行约束

alter table product add foreign key(cno) references category(cid);

最后

由于篇幅限制,小编在此截出几张知识讲解的图解

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

(2)创建一个商品表

create table product(

pid number primary key,

pname varchar2(20),

cno number

);

(3)插入一些数据

在category表当中插入数据

insert into category values(1,‘手机数码’);

在没有外键约束的情况下,向product表当中插入没有意义的数据依旧可以插入

insert into product values(10,‘锤子’,11);

在category 表当中没有11这个对应的cid

(4)添加外键对其进行约束

alter table product add foreign key(cno) references category(cid);

最后

由于篇幅限制,小编在此截出几张知识讲解的图解

[外链图片转存中…(img-ikwYnfGz-1714868159027)]

[外链图片转存中…(img-5h0WGTBZ-1714868159027)]

[外链图片转存中…(img-pu7HfJIO-1714868159027)]

[外链图片转存中…(img-BB4vwZhs-1714868159028)]

[外链图片转存中…(img-t5pw8n4t-1714868159028)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 23
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以通过JDBC API连接数据库,并通过执行SQL语句来创建数据库和表。以下是大致步骤: 1. 导入JDBC API相关的jar包,这些jar包包含了连接数据库所需的驱动程序。 2. 加载JDBC驱动程序,使用Class.forName()方法加载驱动程序。 3. 使用DriverManager.getConnection()方法连接数据库。 4. 创建Statement对象,用于执行SQL语句。 5. 执行SQL语句,可以通过execute()方法执行任何SQL语句,如创建数据库创建表等。 6. 关闭连接,释放资源。 下面是一个示例代码,创建一个名为“mydb”的数据库,以及其的一个名为“employees”的表: ``` import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class CreateDBandTable { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/"; String dbName = "mydb"; String driver = "com.mysql.jdbc.Driver"; String userName = "root"; String password = "root"; try { Class.forName(driver).newInstance(); Connection conn = DriverManager.getConnection(url + dbName, userName, password); Statement stmt = conn.createStatement(); //创建数据库 String createDB = "CREATE DATABASE mydb"; stmt.executeUpdate(createDB); //选择数据库 String useDB = "USE mydb"; stmt.executeUpdate(useDB); //创建表 String createTable = "CREATE TABLE employees " + "(id INT(11) NOT NULL AUTO_INCREMENT, " + " first_name VARCHAR(255), " + " last_name VARCHAR(255), " + " age INT(11), " + " PRIMARY KEY ( id ))"; stmt.executeUpdate(createTable); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值