数据库SQL语言分类(DDL/DML/DQL/TCL/DCL)
文章目录
- 一、数据定义语言 DDL
- (一)create 数据库对象的创建
- (二)alter 修改数据库对象
- (三)drop 删除数据库对象
- (四)truncate 清空表数据
- 二、数据操纵语言 DML
- (一)insert 插入操作
- (二)update 更新操作
- (三)delete 删除操作
- 三、数据查询语言 DQL
- (一)select 查询操作语言
- 四、事务控制语言 TCL
- (一)什么是事务
- (二)事务的开始和终止(事务边界)
- (三)事务的总结
- (四)事务控制语言
- 1. commit 提交数据
- 2. rollback 数据回滚
- 3. savepoint 保存点
- 五、数据控制语言 DCL
- (一)grant授权
- (二)revoke收权
一、数据定义语言 DDL
数据定义语言DDL( Data Definition Language ) , 是 SQL 语言集中负责数据结构定义与数据库对象定义的语言 , 主要有 create、alter、drop 和 truncate 四种常用语句。DDL 对数据结构起作用。
(一)create 数据库对象的创建
创建表:
CREATE TABLE t_employee (id bigint(20) unsigned DEFAULT NULL,project_name varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '项目名称',start_date date DEFAULT NULL COMMENT '项目开始时间',end_date date DEFAULT NULL COMMENT '项目结束时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;CREATE TABLE `commodity` (`commodityId` bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '商品ID',`commodityCode` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品编码',`title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标题',`subtitle` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '副标题',`marketPrice` decimal(11,2) DEFAULT NULL COMMENT '市场价',`currentSellingPrice` decimal(11,2) NOT NULL COMMENT '现售价',`attributes` decimal(11,2) NOT NULL COMMENT '商品属性',`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '商品描述',`categoryId` smallint(5) unsigned zerofill NOT NULL COMMENT '所属类目ID',PRIMARY KEY (`commodityId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='商品表';
创建数据库:
create database if not exists db1 character set GBK; -- 若不存在数据库db1,则创建该数据库
(二)alter 修改数据库对象
# 给字段添加外键约束
alter table student_ning4
add constraint stu_n4_mid_fk
foreign key (majorid) references major_ning(id) on delete set null;# on delete set null 的作用:一旦主表数据被删除 , 从表关联数据置为 null# 给字段添加外键约束
alter table student_ning4
add constraint stu_n4_mid_fk
foreign key (majorid) references major_ning(id) on delete cascade;# on delete cascade 的作用:级联删除( 主表数据删除 , 从表相关联数据统统删除 )# 删除约束条件
alter table student_ning4
drop constraint stu_n4_mid_fk;# 增加字段
alter table mytemp_xxx add(name char(10));# 增加字段,并且指定字段的位置
alter table emp add column nickname varchar(50) default null after name; -- after后面不能出现column
alter table emp add nickname varchar(50) default null after name;
alter table emp add nickname varchar(50) after name; -- 字段长度不可以省略# Oracle修改字段名
alter table mytemp_xxx rename column password to pwd;# MySQL修改字段名、类型、长度
alter table emp_yyy change job jobs varchar(50);
alter table emp_yyy change column job jobs varchar(50);# Oracle修改字段类型
alter table mytemp_xxx modify (pwd char(8));
alter table t_pf_dep modify (depcode varchar2(100)); # MySQL修改字段类型、长度
alter table emp_yyy modify job char(25);
alter table emp_yyy modify column job char(25);# 删除字段
alter table mytemp_xxx drop column pwd;
alter table mytemp_xxx drop pwd;# 修改字段注释
alter table test modify column sex enum('M','F') comment '性别';# 修改表名的注释
alter table test comment '测试表';# 修改数据库的字符编码
alter database db1 character set GBK;# 修改表名
alter table table_name rename to new_table_name;# 修改字段允许为空
alter table user modify real_name varchar(30) null;# 修改字段不许为空
alter table user modify real_name varchar(30) not null;# 给字段添加唯一约束
ALTER TABLE user ADD unique(account_name);# 给多个字段添加唯一约束
ALTER TABLE user ADD unique(account_name,nickname);
(三)drop 删除数据库对象
# 删除表
drop table if exists t_employee;# 如果存在表t_employee,则删除表结构和表数据# 删除数据库
drop database if exists db1;
(四)truncate 清空表数据
- truncate 保留表结构 , 删除表中所有数据
- truncate 操作不需提交( commit ) , 没有回退( rollback )的机会
- 语法结构: truncate table 表名 ;
- truncate和delete 的区别:
- truncate 在功能上等同于:delete + commit
- delete 操作将删除数据存储到临时空间中 , 不直接删除 , 可以回退
- truncate 操作直接删除 , 不占用临时空间 , 不能回退
truncate table t_employee;
二、数据操纵语言 DML
数据操纵语言DML( Data Manipulation Language ) , 用户通过它可以实现对数据表的基本操作 ,即对表中数据的增、删、改。DML 对数据起作用。
(一)insert 插入操作
insert into user values (1001,'1234','liaowenxiong','18750197788','liaowenxiong@sina.com');
insert into t_employee (empno,ename,hiredate) values (1011,'liaowenxiong','2011-01-01');
(二)update 更新操作
update emp_xxx set salary = 3000 where ename = 'amy' ;
(三)delete 删除操作
delete from t_employee; # Oracle数据库中,from可以省略
delete emp_bak1 where deptno = 10 ;
三、数据查询语言 DQL
数据查询语言 DQL( Data Query Language ) , 用户主要通过它实现对数据的查询操作。
(一)select 查询操作语言
select ename , hiredate from emp_xxx where ename='amy';
四、事务控制语言 TCL
(一)什么是事务
- 事务是一组 DML 操作的逻辑单元 , 用来保证数据的一致性。
- 在一个事务内 , 组成事务的这组 DML 操作 , 或者一起成功提交 , 或者一起被撤销。
- 事务控制语言 TCL( Transaction Control Language )
- commit 事务提交 将所有的数据改动提交
- rollback 事务回滚 回退到事务之初 , 数据的状态和事务开始之前完全一
致 - savepoint 事务保存点( 较不常用 )
(二)事务的开始和终止(事务边界)
事务开始
事务开始于上一个事务的终止或者第一条 DML 语句事务终止
- 事务终止于 commit/rollback 显式操作( 即控制台输入 commit/rollback ) - 如果连接关闭 , 事务( Transaction )将隐式提交
- DDL 操作( 比如 create ) , 事务将隐式提交
- 如果出现异常 , 事务将隐式回滚。
(三)事务的总结
- 事务内部的数据改变只有在自己的会话中能够看到
- 事务会对操作的数据加锁 , 不允许其它事务操作
- 如果提交( commit )后 , 数据的改变被确认 , 则
- 所有的会话都能看到被改变的结果 ;
- 数据上的锁被释放 ;
- 保存数据的临时空间被释放
- 如果回滚( rollback ) , 则
- 数据的改变被取消 ;
- 数据上的锁被释放 ;
- 临时空间被释放
(四)事务控制语言
事务控制语言TCL(Transaction Control Language),用来对 DML 操作进行确认的。
1. commit 提交数据
update t_employee set ename = 'liudehua' where empno = 001;
commit;
2. rollback 数据回滚
update t_employee set ename = 'liudehua' where empno = 001;
rollback;
3. savepoint 保存点
设置保存点 , 可以回滚( rollback )到指定的保存点。
create table mytemp_xxx( id number(4) ) ;
--事务起点
insert into mytemp_xxx values(3) ;
savepoint A ; -- 设置保存点 , 名为 A
insert into mytemp_xxx values(4) ;
savepoint B; -- 设置保存点 , 名为 B
insert into mytemp_xxx values(5) ;
rollback to A ; -- 回滚到保存点 A , 注意:A 之后的保存点全部被取消
select * from mytemp_xxx ; --3 被插入数据库 , 4、5 没有被插入
五、数据控制语言 DCL
数据控制语言DCL(Data Control Language),用来对数据的权限进行控制。
(一)grant授权
grant select on emp to openlab; # 假设现在的用户是ninglj,ninglj 将查看emp表的权限赋予openlab, openlab只能看不能改
(二)revoke收权
revoke select on emp from openlab; # ninglj 用户将 select 权限回收
数据库SQL语言分类(DDL/DML/DQL/TCL/DCL)相关推荐
- 如何管理和使用哪些命令操作MySQL数据库?(基本操作,SQL语言,DDL,DML,DQL,DCL,Windows字符和图形界面MySQL安装)
文章目录 前言 一:数据库基本操作命令 1.1:MySQL常用管理操作是哪些? 1.2:查看数据库列表信息的命令是? 1.3:查看数据库中的数据表信息命令是? 1.4:显示数据表的结构(字段)命令是? ...
- 数据库语言(DDL,DML,DQL,DCL)
一.DDL(data definition language)数据定义语言: DDL语句不用commit 数据定义语言DDL用来创建数据库中的各种对象-----表.视图.索引.同义词.聚簇等如: CR ...
- Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)
文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...
- 数据库MySQL基础---DDL/DML/DQL
MySQL基础 数据库简介 数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.可共享的.统一管理的大量数据的集合. 与数据库相关的概念数据 ...
- 第三阶段:Web前端:02数据库(sql语言、JDBC数据库连接) | 03(1)SpringBoot
二.数据库--> MySQl或MariaDB 0.1.Mysql-安装步骤 进入网址 http://doc.canglaoshi.org/-->常用下载:Windows必备-->Ma ...
- 数据库 SQL 语言 基础CRUD操作
SQL 语言 1. 概括 SQL:Structure Query Language(结构化查询语言),SQL被美国国家标准局(ANSI)确定为关 系型数据库语言的美国标准,后来被国际化标准组织(I ...
- 关系型数据库的语言分类
一.关系型数据库的语言分类 1.DDL 数据定义语言:( Data Definition Language ) 用来定义数据库的对象,如数据表.视图.索引等 create drop alter tru ...
- 第一章:初识数据库(3):数据库的语言分类
第一章包含以下内容: 1.数据库的基本概念 2.数据库的基本功能 3.数据库的语言分类 4.常见的数据库对象 前言 非科班自学SQLSERVER和C#编程两年.该系列文章中涉及的知识点是在工作中需要用 ...
- oracle数据库sql培训,Oracle数据库SQL语言实战培训教程(全面、详细、案例、精讲)套餐...
风哥oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 套餐介绍: 风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 内容: SQL语言基础入 ...
最新文章
- 两个硬盘和文件相关的小技巧 (C#)
- 【观点】“另类”设计模式
- 一些开源搜索引擎实现——倒排使用原始文件,列存储Hbase,KV store如levelDB、mongoDB、redis,以及SQL的,如sqlite或者xxSQL...
- 用python画烟花-用python实现漂亮的烟花demo
- [Spring MVC] - JSP + Freemarker视图解释器整合
- defparam的语法
- [资源]推荐一些Python书籍和教程,入门和进阶的都有!
- Cocoon概念性介绍
- java的mysql语句规范_常用的标准SQL 语句
- php中钩子(hook)的应用示例demo
- CSS3 响应式布局实例
- 学会提问,你就成功了一大半!
- 大数据之-Hadoop源码编译_源码编译具体流程_以及编译步骤---大数据之hadoop工作笔记0046
- java中string和stringbuffer
- LNAMP服务器环境(源码安装)
- 计算机毕业论文性能测试怎么写,计算机专业毕业论文写作指导方法
- Qt+OpenCV配置教程(图解亲测)
- (项目笔记)opencv人脸识别
- 【Matlab水果蔬菜识别】灰度+二值化+腐蚀+直方图处理水果蔬菜识别【含GUI源码 1052期】
- 如何把很多照片拼成一张照片_把很多小照片拼成一张大照片是怎么做的?
热门文章
- cloud foundry_实际的Reactor操作–检索Cloud Foundry应用程序的详细信息
- spring集成mq_使用Spring Integration Java DSL与Rabbit MQ集成
- hotspot 垃圾收集器_HotSpot增量Java垃圾收集器
- 联通光纤限制连接数_从数百万个光纤(而不是数千个线程)中查询数据库
- java基准测试_星期五基准功能Java
- 加密数据的检索_透明地持久保存并从数据库中检索加密的数据
- 从GWT开发人员的角度概述Scala.js
- jax-ws cxf_Apache CXF – JAX-WS –简单教程
- 反射和内省_单例设计模式–内省和最佳实践
- 将Infinispan版本映射为最低Java版本