使用create语句创建表

create table 表名

(

列名 类型 【null     |     not null】,

列名 类型 【null     |     not null】

)

在一个数据库中表名不允许重复,在同一张表中列名不允许重复,【null     |     not null】表示该列允许为空或非空,默认的情况下是非空的

举个栗子:

create table two
(
id number primary key,
nname varchar2(10) not null,
age number
)

create table productinfo
(
productid varchar2(10),
productname varchar2(20),
productprice number(8,2),
quantity number(10),
category varchar2(10),
desperation varchar2(1000),
origin varchar2(10)
)

使用Alter语句修改表

alter table 表名

add  列名| modify 列名|drop column 列名

modify 是修改一个已经存在的列名

举几个栗子:

alter table two
add sex char(3);

alter table two
modify nname varchar2(20);

alter table two
drop column sex;

drop table two;                       删除表

约束:

主键约束:每个数据表中只有一个主键约束,但是一个主键约束可以由数据表中多个列组成,关键字:primary key

create table two
(
id number primary key,
nname varchar2(10) not null,
age number
)

create table two
(
id number,
nname varchar2(10) not null,
age number,
primary key(id)
)

两种写法都可以

当然也可以用alter语句添加主键约束

alter table two
add constraint pk_name primary key(id);                                        ps:pk_name是约束名

移除约束

alter table two
drop constraint pk_name;

外键约束:可以保证使用外键约束的数据库列与引用的主键约束的数据列一致,外键约束在一个数据表中可以有多个

外键约束要在创建表的语句后面加上如下语句:

alter  table 表名

constraint ppk_name foreign key(nname) references 表名(表中的列) on delete cascade                   ps:on delete cascade 保证主键对应字段被删除时,外键对应字段也被删除

修改表结构时添加外键约束:

add constraint ppk_name foreign key(nname) references 表名(表中的列) on delete cascade

移除外键约束与一处主键约束同样

check约束:检查约束,规定每一个列能够输入的值,以保证数据的正确性

创建check约束可以在创建表的语句后面加上如下操作:

constraint constraint_name check(condition)

修改表结构时添加check约束

alter table 表名

add constraint constraint_name check(condition)

移除check约束:

alter table 表名

drop constraint constraint_name;

unique约束:唯一约束,这个设置在表中输入大的字段值都是唯一的,和主键约束非常相似,不同的是,unique约束在一张表中可以有多个

在创建表的语句后面加上如下语句即可以创建unique约束:

constraint constraint_name unique(列名)

在修改表结构时添加unique约束:

alter table 表名

add constraint constraint_name unique(列名)

移除unique约束:

同上

not null约束:非空约束,子啊创建表时添加非空约束,确保字段一定有输入值

创建not null 约束直接在字段后面直接写not null即可

修改表结构时添加not null约束:

alter table 表名

modify  列名 not null;

添加数据insert:

insert into 表名(列名1,列名2,……) values(值1,值2,……);

insert into 表名 values(值1,值2,……);

两种方法都可以,列名与值要一一对应,如果没有指明列名,那么表中有多少列都要按顺序添加顺序,没有非空约束的列可以用null值添加

也可以通过其它表来添加数据,不过要注意两张表列个数,数据类型要一致,否则会出现错误

insert into 表名(列名1,列名2,……) select 值1,值2,…… from 表2;

另一种创建表的方式:

create table 表名 as select 列名1,列名2,…… from 表2;

update修改数据:

update 表名 set  列名=新值,…… where 条件;

delete删除数据:

delete from 表名  where 条件                                                   切记不加条件就是删除全部数据,这是个灾难!

其他数据操纵语句:

truncate table 表名                        无条件删除表中全部记录,比delete更快一点

oracle——学习之路(SQL基础)的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  3. Python学习之路-Day2-Python基础2

    Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...

  4. Python学习之路-Day1-Python基础

    学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...

  5. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  6. 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式

    目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...

  7. oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)

    LOB类型 ORACLE提供了LOB (Large OBject)类型.用于存储大的数据对象的类型.ORACLE眼下主要支持BFILE, BLOB, CLOB 及 NCLOB 类型. NCLOB 存储 ...

  8. 学习笔记:oracle学习三:SQL语言基础之检索数据:简单查询、筛选查询

    目录 1. 检索数据 1.1 简单查询 1.1.1 检索所有列 1.1.2 检索指定的列 1.1.3 查询日期列 1.1.4 带有表达式的select语句 1.1.5 为列指定别名 1.1.6 显示不 ...

  9. Oracle数据库之PL/SQL基础

    介绍PL/SQL之前,先介绍一个图像化工具:Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql ...

随机推荐

  1. 【线性代数】2-2:消元(Eliminate)

    title: [线性代数]2-2:消元(Eliminate) toc: true categories: Mathematic Linear Algebra date: 2017-08-31 16:1 ...

  2. javascript面向对象 用new创建一个基于原型的javascript对象

    //创建一个类 其实就是个对象 var Student={ name:"robot", height:1.6, run:function(){ console.log(this.n ...

  3. Codeforces 1106E. Lunar New Year and Red Envelopes(DP)

    E. Lunar New Year and Red Envelopes 题意: 在长度为n的时间轴上,有k个红包,每个红包有领取时间段[s,t],价值w,以及领了个这个红包之后,在时间d到来之前无法再 ...

  4. STL漫谈

    从现在开始,想写一个关于STL工具的各种tip类的东西,记录下那些细节,以免以后使用STL工具时出错. 1.关于map,如果需要第一个键值需要放进一个结构体,那么结构体是需要写好其自定义的排序规则的, ...

  5. Java后台开发精选知识图谱

    1.引言: 学习一个新的技术时,其实不在于跟着某个教程敲出了几行.几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开始就对整个学习路线有宏观.简洁的认识,确定大的学习方 ...

  6. python中with语句的使用

    引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用) ...

  7. maven上传jar包(oracle jdbc驱动)

    由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库.一.首先要得到Oracle J ...

  8. ARTS打卡计划第十六周

    Algorithms: https://leetcode-cn.com/problems/min-stack/submissions// Review: https://www.infoq.cn/ar ...

  9. 深入解析 composer 的自动加载原理

    PHP 自5.3的版本之后,已经重焕新生,命名空间.性状(trait).闭包.接口.PSR 规范.以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言.PHP 的生态系统也一直在演 ...

  10. kotlin array

    (1)Kotlin语言使用Array表示数组. (2)[] 可以用于访问数组的元素, [] 被进行了操作符的重载,调用的是 Array 类的 setter 和 getter 方法 2.创建数组 (1) ...