oracle——学习之路(SQL基础)
使用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基础)的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
- Python学习之路-Day2-Python基础3
Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...
- 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式
目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...
- oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)
LOB类型 ORACLE提供了LOB (Large OBject)类型.用于存储大的数据对象的类型.ORACLE眼下主要支持BFILE, BLOB, CLOB 及 NCLOB 类型. NCLOB 存储 ...
- 学习笔记:oracle学习三:SQL语言基础之检索数据:简单查询、筛选查询
目录 1. 检索数据 1.1 简单查询 1.1.1 检索所有列 1.1.2 检索指定的列 1.1.3 查询日期列 1.1.4 带有表达式的select语句 1.1.5 为列指定别名 1.1.6 显示不 ...
- Oracle数据库之PL/SQL基础
介绍PL/SQL之前,先介绍一个图像化工具:Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql ...
随机推荐
- luogu P1494 [国家集训队]小Z的袜子 ( 普 通 )
题目: 链接:https://www.luogu.org/problemnew/show/P1494 题意:一些袜子排成一排,每个袜子有固定的颜色. ...
- FtpHelper.cs
网上找了好多,感觉还是自己这个使用起来方便点,记录一下! using System; using System.Collections; using System.IO; using System.L ...
- Codevs 1331 西行寺幽幽子(高精度)
1331 西行寺幽幽子 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 在幻想乡,西行寺幽幽子是以贪吃闻名的亡灵.不过幽幽子可不是只 ...
- C# Socket 编程 Sample
使用Socket通信的服务器端编程,熟悉了服务器端和客户端的通信流程,实现了收发信息.文件传送以及震动功能 服务器端先创建Socket,然后将其和本地ip地址以及端口号连接,也就是使用Bind方法,然 ...
- Java面向对象5(V~Z)
计算各种图形的周长(接口与多态)(SDUT 3338) import java.util.Scanner; public class Main { public static void main(St ...
- Prime Path (POJ - 3126 )(BFS)
转载请注明出处:https://blog.csdn.net/Mercury_Lc/article/details/82697622 作者:Mercury_Lc 题目链接 题意:就是给你一个n, ...
- [Linux]awk RSTART,RLENGTH
转自 http://blog.sina.com.cn/s/blog_6d76c7e20102v381.html awk 是一门非常优秀的文本处理工具,甚至可以上升作为一门程序设计语言. 它处理文本的速 ...
- 【maven】【spring boot】【单元测试】 使用controller 执行单元测试类
存在这样一个场景: 当项目启动时间过长,又没办法缩短的时候,写单元测试就是一个十分耗时的工作, 这工作不在于使用编写代码,而在于每次run junit test 都需要完整启动一次项目,白白浪费宝贵的 ...
- shell脚本中根据端口号kill对应的应用进程
一.使用情景 在Jenkins的自动部署中,每次重新部署我们都需要先关闭原先的应用进程,然后重新部署启动.在使用tomcat时,我们可以通过startup.sh和shutdown.sh进行对应操作.但 ...
- JS判断开始时间不能大于检查结束时间
//用来检验检查开始时间不能大于检查结束时间 function checkDate(date){ var startDate = $("#jcrwModel_rwfqsj").va ...