DDL与DML语句
1. DDL语句
SQL语句:结构化查询语句,使用SQL与数据库“沟通”,完成相应的数据库操作。
l DDL:数据定义语言,用来维护数据库对象
1.1 创建表
Ø CREATE:创建表
演示:创建员工表
|
CREATE TABLE employee( id NUMBER(4), name VARCHAR2(20), gender CHAR(1), birth DATE, salary NUMBER(6,2), job VARCHAR2(30), deptno NUMBER(2) ); |
Ø DESC:查看表的数据结构
演示:查看创建的员工表
|
DESC employee; |

Ø DEFAULT:设置默认值
可以通过DEFAULT子句给列指定默认值
演示:建表时给gender默认值为”M”
|
CREATE TABLE emptest( id NUMBER(4), name VARCHAR2(20), gender CHAR(1) DEFAULT 'M', birth DATE ); |
Ø NOT NULL:非空
默认情况下,任何列都允许有空值。非空(NOT NULL)是一种条件约束,用于确保字段值不为空,当某个字段被设置了非空约束条件,这个字段中必须存在有效值,即:当执行插入数据操作时,必须提供这个列的数据;当执行更新操作时,不能给这个列的值设置为NULL。
演示:创建员工表设置那么为非空字段
|
CREATE TABLE emptest( id NUMBER(4) , name VARCHAR2(20) NOT NULL, gender CHAR(1) DEFAULT 'M', birth DATE ); |

1.2 修改表
Ø RENAME:修改表名
演示:修改表名
|
RENAME emptest to testemp; |
Ø ALTER TABLE的ADD子句
增加列,列只能增加在最后,不能插入现有的列中。
演示:在testemp表下面增加hiredate列,并将默认值设置为当前时间
|
ALTER TABLE testemp ADD(hiredate DATE DEFAULT sysdate); |
Ø ALTER TABLE的DROP子句
删除列,删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。
演示:删除testemp表下的hiredate
|
ALTER TABLE testemp DROP (hiredate); |
Ø DROP删除表
|
DROP TABLE emptest; |
Ø ALTER TABLE的MODIFY子句
修改列,使用MODIFY可以改变表中列的数据类型、长度和默认值,注意这种修改仅对以后插入的数据有效。另外如果表中已经有数据的情况下,把长度由大改小,有可能不成功,比如原来类型是VARCHAR2(100),其中已经存放了100字节长度的数据,如果改为80字节,则不会修改成功。
演示:修改testemp表中name的长度为30
|
ALTER TABLE testemp MODIFY(name VARCHAR2(30)); |
2. DML语句
l 用于增删改表中数据,DML是伴随TCL事务控制的。
Ø INSERT
INSERT语句用来给数据表增加记录,每次增加一条记录。所有的DML操作,需要再执行事务提交语句COMMIT才算真正确认了此操作。
演示:想testemp中插入一条记录
|
INSERT INTO testemp (id,name,gender) VALUES (1,'张三','M'); COMMIT; |

插入数据时忽略字段则是全列插入,顺序不能错误,如下:
|
INSERT INTO testemp VALUES (10,'李四','F',sysdate); COMMIT; |
Ø UPDATE
更新表中的记录,需要配合WHERE子句使用,否则全表的数据都会被更新。
演示:更新testemp表中张三的ID为2
|
UPDATE testemp SET id=2 WHERE name='张三'; COMMIT; |

同时修改两个类型:
|
UPDATE testemp SET id=5,name='王五' WHERE name='李四'; COMMIT; |
Ø DELETE
删除表中的记录,和UPDATE一样,需要配合WHERE子句使用,不然会将全表数据删除。
演示:将testemp表中id为2的记录删除
|
DELETE FROM testemp WHERE id=2; |
清空表:
|
DELETE FROM testemp; |
DDL与DML语句的更多相关文章
- jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化
上一章的代码中,可以发现,jdbc执行DDL和DML有几个步骤都是一样的: 1)执行语句开始时,创建驱动注册对象.获取连接的数据库对象.创建Statement对象 // 创建驱动注册对象 Class. ...
- 关于Oracle处理DDL和DML语句的事务管理
SQL主要程序设计语言 数据定义语言DDL(Data Definition Language) 如 create.alter.drop, 数据操作语言DML(Data Munipulation Lan ...
- 入门MySQL——DML语句篇
前言: 在上篇文章中,主要为大家介绍的是DDL语句的用法,可能细心的同学已经发现了.本篇文章将主要聚焦于DML语句,为大家讲解表数据相关操作. 这里说明下DDL与DML语句的分类,可能有的同学还不太 ...
- Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- dml语句和ddl语句 区别
delete from user删除所有记录,属于dml语句,一条记录一条记录删除.事务可以作用在dml语句上的 truncate table user;删除所有记录,属于ddl语句,将表删除,然后重 ...
- MySQL的DDL语句、DML语句与DCL语句
背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...
- 第1 章 mysql数据库之简单的DDL和DML sql语句
一.SQL 介绍 1.什么是sql? SQL,英文全称(Structured Query Language),中文是结构化查询语言,它是一种对关系数据库中数据进行定义和操作的语言方法,是大多数关系数据 ...
- jdbc java数据库连接 3)Statement接口之执行DDL、DML、DQL
|- Statement接口: 用于执行静态的sql语句 |- int executeUpdate(String sql) : 执行静态的更新sql语句(DDL,DML) |- ResultSet ...
- DDL、DML、DCL的理解
1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以 ...
随机推荐
- Collectd基本使用
基本用法 基础环境 操作系统 硬件配置 CentOS 7 Server 磁盘:40GB 内存:8GB 网卡:ens3(外网) 网络配置 # vim ifcfg-ens3 TYPE=Ethernet B ...
- C++ List的用法(转载)
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. assign() 给list赋值 back() 返回最后一个元素 begin ...
- PAT L3-010【完全二叉树】
静态建树判一下1-n是不是为空就好了,如果有空的 就说明不是complete binary tree (和线段树建树差不多啊)Left=2*root:Right=2*root+1 #include ...
- python 之 函数 基础2
5.36 命名关键字 什么是命名关键字参数? 格式:在*后面参数都是命名关键字参数 特点: 1 必须被传值 2 约束函数的调用者必须按照key=value的形式传值 3 约束函数的调用者必须用我们指定 ...
- oracle基本命令
1.首先,创建(新)用户: create user username identified by password; username:新用户名的用户名 password: 新用户的密码也可以不创建新 ...
- 理解js继承的6种方式
想要继承,就必须要提供个父类(继承谁,提供继承的属性) 一.原型链继承 重点:让新实例的原型等于父类的实例. 特点:1.实例可继承的属性有:实例的构造函数的属性,父类构造函数属性,父类原型的属性.(新 ...
- linux下find查找与批量替换文件中指定内容
经常在部署tomcat时需要替换配置文件中的ip,find命令批量替换还是很方便的 查找需要替换的ip,看看哪些文件有配置这个ip,执行下面命令: find ./ -type f -regex &qu ...
- LDAP--对某些AD属性值是字节数组byte[]情况的类型转换方法
//BitConverter.ToBoolean((searchResult.Properties["mDBUseDefaults"][0] as byte[]), 0); row ...
- Python Class __init__ __del__ 构造,析构过程解析【转】
转载自: http://blog.csdn.net/bbdxf/article/details/25774763 最近学习<Python参考手册>即<Learning Python& ...
- 其它电脑访问mysql被拒绝
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话. mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDE ...