DML_数据操纵语言

时间:2022-12-19 08:32:13

DML语法:

        insert  注意点:1.在表后可以有括号,表明  所插入的值是哪几列,但是一定要包括所有的not null属性
                                            2.当要为一个表插入的一行数据中有FK,先看FK的值是否存在,
                                               若不存在,则先添加外键所在表中的值,之后再插入
  1. /*
  2. * insert 添加数据
  3. * insert into tableName values('所有数据')
  4. * insert into tableName(部分列名 - 必须包含所有非空列) values('部分列数据')
  5. */
  6. insert into course values('C01', 'JavaSE', 100);
  7. insert into course values('C02', 'JavaSE', '');
  8. insert into course(courseno, coursename) values('C03', 'Oracle');
  9. --insert into course(courseno) values('C04'); -- wrong
  10. -- char固定长度
  11. insert into school values('S8372222', '中国大学');
  12. insert into school values('S8372223', '中国三美大学');
  13. insert into faculty values('01', '计算机系', 'S8372223');
  14. insert into faculty values('02', '土木工程系', 'S8372223');
  15. insert into faculty values('03', '计算机系', 'S8372222');
  16. insert into faculty values('04', '土木工程系', 'S8372222');
  17. insert into major values('M0001', '软件工程', '01');
  18. insert into major values('M0002', '网络工程', '01');
  19. insert into major values('M0003', '建筑', '02');
  20. insert into major values('M0004', '建筑美学', '02');
  21. insert into major values('M0005', '软件工程', '03');
  22. insert into major values('M0006', '网络工程', '03');
  23. insert into major values('M0007', '建筑', '04');
  24. insert into major values('M0008', '建筑美学', '04');
  25. insert into studentcard values('S87232', '中国大学', '张思思', '11级软件04班');
  26. -- insert添加 FK引入PK的值 有值直接使用 无值先insert数据再插入
  27. insert into student values('S0001', '张思思', '', null, null, '无锡', '', 'M0008', 'S87232');
  28. insert into studentcard values('S87233', '中国大学', '张珊珊', '11级软件04班');
  29. insert into student values('S0002', '张珊珊', '女', 20, null, '北京', '68', 'M0005', 'S87233');

update 注意点:update tableName set 列名 = value, ... where ...

  1. update tableName set 列名 = value, ... where ...
  2. -- 部分数据更新 where条件
  3. update student set age = 20;
  4. -- 某一条 PK UK
  5. select * from student; -- PK UK
  6. update student set name = '张三散', sex = '男' where stuNo = 'S9999';
  7. select * from course;
  8. update course set hour = 200 where courseno = 'C05';
  9. 用户登录
  10. update users set password = '123456' where userName = 'admin';
  11. update users set info = 'newInfo' where userName = 'admin';
  12. 中国大学 - 中国社会大学
  13. update school set schoolName = '中国社会大学' where schoolname = '中国大学';
  14. -- 某几条数据 FK
  15. -- 教学部 所有员工 奖金+200
  16. update employee set bonus = bonus + 200
  17. where deptNo = (select deptNo from dept where deptName = '教学部');
  18. -- 软件工程 专业学生 总+10
  19. update student set score = score + 10
  20. where majorno in (select majorNo from major where name = '软件工程');
  21. -- 计算机部 学生总分 + 5
  22. update student set score = score + 5
  23. where unionno = (select unionno from studentunion where unionname = '计算机部');
  24. -- 所有员工工资 + 500
  25. update employee set salary = salary + 500;

    delete    注意点:1.当只想删除一条记录时,where后的条件属性必须是FK  或者  UK
                               2.当一张表中有FK时,有两种方案可以删除(按具体情况使用):
                                                 a. 同时删除(例:删帖子,那么帖子下的回复内容自然同时删除了)
                                                 b.先更新再删除

  1. delete from tableName where ...
  2. -- 删除所有数据
  3. delete from course;
  4. -- 删除某一条数据 PK UK
  5. select * from course;
  6. delete from course where courseno = 'C05';
  7. 某员工辞职
  8. delete from employee where empNo = 'empNo';
  9. select * from student;
  10. delete from student where stuNo = 'S9008';
  11. 某商品下架
  12. -- 中国大学 计算机系 撤销
  13. -- 删除数据 数据FK被引用
  14. --学生
  15. update student set majorno = 'M0007'
  16. where majorno in (select majorno from major
  17. where facultyno =(select facultyno from faculty
  18. where fname = '计算机系' and schoolcode
  19. = (select schoolcode from school
  20. where schoolname = '中国大学')));
  21. --专业
  22. delete from major where facultyno = (select facultyno from faculty
  23. where fname = '计算机系' and schoolcode
  24. = (select schoolcode from school
  25. where schoolname = '中国大学'));
  26. --院系
  27. delete from faculty where fname = '计算机系'
  28. and schoolcode = (select schoolcode from school
  29. where schoolname = '中国大学');
  30. -- 同时删除
  31. 课程C01 JavaSE 100 开设有问题
  32. delete from studentcourse where courseno = 'C01';
  33. delete from course where courseno = 'C01';
  34. BBS论坛
  35. 帖子 - 回复 帖子内容有严重问题
  36. delete from reply where postId = '0001';
  37. delete from post where postId = '0001';
  38. -- 更新 再删除
  39. -- 大学毕业 学生证失效
  40. update student set cardno = null;
  41. delete from studentcard;


























DML_数据操纵语言的更多相关文章

  1. DML(数据操纵语言)

    1.概念(C) 数据操纵语言 DML (Data Manipulation Langua)是SQL语言的一个分类,用于对表的内容或者说数据进行增.删.改.查等操作. 通过以下几个关键字实现: SELE ...

  2. 数据库原理及应用-SQL数据操纵语言(Data Manipulation Language)和嵌入式SQL&存储过程

    2018-02-19 18:03:54 一.数据操纵语言(Data Manipulation Language) 数据操纵语言是指插入,删除和更新语言. 二.视图(View) 数据库三级模式,两级映射 ...

  3. (让你提前知道软件开发33):数据操纵语言(DML)

    文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...

  4. MySQL之数据操纵语言(DML)

    数据操纵语言(DML) 数据操纵语(Data Manipulation Language),简称DML. DML主要有四个常用功能. 增 删 改 查 insert delete update sele ...

  5. 30442数据操纵语言DML

    5.5 SQL的数据操纵功能 5.5.1 数据插入 使用CREATE语句创建的数据表还只是一个“空壳”,表中没有任何数据.利用SQL语言提供的INSERT语句可以完成向数据表插入数据的任务. INSE ...

  6. DML 数据操纵语言

    1.INSERT(插入)语言结构 INSERT INTO table(表名)(要插入的列名) VALUES(要插入的具体值): table:要插入数据的表的表名 column[,column]:表中要 ...

  7. oracle数据操纵语言(DML)data manipulation language

    数据库操纵语言(DML)用于查询和操纵模式对象中的数据,它不隐式地提交当前事务. SELECTINSERTUPDATEDELETECALLEXPLAIN PLANLOCK TABLEMERGE使用算术 ...

  8. SQL语言学习-数据操纵语言

    一般而言,数据库中数据的生命周期包括数据插入以及更新.数据删除3个阶段.首先需要用户或者系统将数据插入表.然后,对数据的使用,包括数据的检索以及数据的更新.最后,如果数据已经没有使用价值,则将数据删除 ...

  9. DML语言(数据操纵语言)

    #DML语言/*数据操作语言:插入:insert修改:update删除:delete */ #一.插入语句#方式一:经典的插入/*语法:insert into 表名(列名,...) values(值1 ...

随机推荐

  1. 抽象类&接口

    抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 在Java中抽象 ...

  2. 数据库之SQL语法

    -- 创建数据库CREATE DATABASE mytest; -- 创建表CREATE TABLE t_user( -- primary key 定义该列为主键列 -- AUTO_INCREMENT ...

  3. ie调试工具

    调试ie6真是疯掉了,要到一个包,类firbug,js写的不错. 链接:http://pan.baidu.com/s/1c2JOs0K 密码:fea8

  4. codeforces 711C Coloring Trees(DP)

    题目链接:http://codeforces.com/problemset/problem/711/C O(n^4)的复杂度,以为会超时的 思路:dp[i][j][k]表示第i棵数用颜色k涂完后bea ...

  5. 【Java】Servlet 工作原理解析

    Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...

  6. 简单使用SimpleCursorAdapter

    http://my.oschina.net/javaeye/blog/14846 果使用Sqlite,建议和ContentProvider结合使用.这样数据库的生命周期就不用自己管了.然后,如果要在比 ...

  7. css3圆环闪烁动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. python 全栈开发,Day58&lpar;bootstrap组件&comma;bootstrap JavaScript 插件&comma;后台模板&comma;图表插件&comma;jQuery插件库&comma;Animate&period;css&comma;swiper&comma;运行vue项目&rpar;

    一.bootstrap组件 无数可复用的组件,包括字体图标.下拉菜单.导航.警告框.弹出框等更多功能. 组件和插件的区别? 插件:一个功能,比如js文件 组件:html css js 组件包含插件 面 ...

  9. 使用log4net做应用程序全局日志记录保存在数据库中

    几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题.经验表明,日志记录往往 ...

  10. 【转】Deep Learning(深度学习)学习笔记整理系列之(五)

    9.2.Sparse Coding稀疏编码 如果我们把输出必须和输入相等的限制放松,同时利用线性代数中基的概念,即O = a1*Φ1 + a2*Φ2+….+ an*Φn, Φi是基,ai是系数,我们可 ...