当前位置: 首页 > news >正文

MySQL的sql语言分类DML、DQL、DDL、DCL、

MySQL的sql语言分类DML、DQL、DDL、DCL、

 

SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL  

1.数据定义语言DDL(Data Definition Language)

  对象: 数据库和表

  关键词: create alter drop truncate(删除当前表再新建一个一模一样的表结构)

  创建数据库:create database school;

  删除数据库:drop database school;

  切换数据库:use school;

  创建表:create table student(

      id int(4) primary key auto_increment,

      name varchar(20),

      score int(3)

    );

  查看数据库里存在的表:show tables;

  注意:

    varchar类型的长度是可变的,创建表时指定了最大长度,定义时,其最大值可以取0-65535之间的任意值,但记录在这个范围内,使用多少分配多少,

varchar类型实际占用空间为字符串的实际长度加1。这样,可有效节约系统空间。varchar是mysql的特有的数据类型。

    char类型的长度是固定的,在创建表时就指定了,其长度可以是0-255之间的任意值。虽然char占用的空间比较大,但它的处理速度快。

 

  修改表:alter table student rename (to) teacher;

      alter table student add password varchar(20);

      alter table student change password pwd varchar(20);

      alter table student modify pwd int;

      alter table student drop pwd;

  删除表:drop table student;

  查看生成表的sql语句:show create table student;

  查看表结构:desc student;

2.数据操纵语言DML(Data Manipulation Language)   

  对象:纪录(行)

  关键词:insert update delete

  插入:insert into student values(01,'tonbby',99); (插入所有的字段)

     insert into student(id,name) values(01,'tonbby'); (插入指定的字段)

  更新:update student set name = 'tonbby',score = '99' where id = 01;

  删除:delete from tonbby where id = 01;

  注意:

     开发中很少使用delete,删除有物理删除和逻辑删除,其中逻辑删除可以通过给表添加一个字段(isDel),若值为1,代表删除;若值为0,代表没有删除。

     此时,对数据的删除操作就变成了update操作了。

  truncate和delete的区别:

    truncate是删除表,再重新创建这个表。属于DDL,delete是一条一条删除表中的数据,属于DML。

 

3.数据查询语言DQL(Data Query Language)

  select ... from student where 条件 group by 分组字段 having 条件 order by 排序字段

 

  执行顺序:from->where->group by->having->order by->select

  注意:group by 通常和聚合函数(avg(),count()...)一起使用 ,经常先使用group by关键字进行分组,然后再进行集合运算。

     group by与having 一起使用,可以限制输出的结果,只有满足条件表达式的结果才会显示。

  having和where的区别:

    两者起作用的地方不一样,where作用于表或视图,是表和视图的查询条件。having作用于分组后的记录,用于选择满足条件的组。

4.数据控制语言DCL(Data Control Language)  

  数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视,用户,权限,事务等。

  grant:授权,rollback:回滚。commit:提交。

 

转载于:https://www.cnblogs.com/16795079a/p/10445262.html

相关文章:

  • 在IIS上部署ASP.NET Core项目出现错误 500.19
  • poj 1088(dfs+dp)
  • flutter的key在widget list的作用以及必要性
  • 深入 Nginx 之配置篇
  • 干货!手把手教你打造自己的seo生态资源,让排名不在是梦想
  • Mayor's posters(线段树+离散化)
  • yum安装openstack
  • Python学习笔记_读Excel去重
  • [LOJ161] 仙人掌计数
  • 打造性感好用的 VS Code 编辑器
  • 性能测试性能分析
  • JAVA 集合(个人总结)
  • 华为云:实现高可用的负载均衡web集群
  • 又火了,小米MIX 3在堪称设计界的奥斯卡荣获2019德国iF设计奖
  • 排序(1):冒泡排序
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 〔开发系列〕一次关于小程序开发的深度总结
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Centos6.8 使用rpm安装mysql5.7
  • create-react-app做的留言板
  • Javascript编码规范
  • JavaScript函数式编程(一)
  • Material Design
  • Python 反序列化安全问题(二)
  • 前端相关框架总和
  • 浅谈web中前端模板引擎的使用
  • 算法系列——算法入门之递归分而治之思想的实现
  • 赢得Docker挑战最佳实践
  • 优化 Vue 项目编译文件大小
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • (SpringBoot)第七章:SpringBoot日志文件
  • (六)c52学习之旅-独立按键
  • (六)软件测试分工
  • (七)c52学习之旅-中断
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • ./configure、make、make install 命令
  • .equals()到底是什么意思?
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [ffmpeg] av_opt_set 解析
  • [Java][Android][Process] 暴力的服务能够解决一切,暴力的方式运行命令行语句
  • [Kubernetes]2. k8s集群中部署基于nodejs golang的项目以及Pod、Deployment详解
  • [linux time命令学习篇] time 统计命令执行的时间
  • [NYOJ 536] 开心的mdd
  • [python] RRT快速拓展随机树
  • [Python学习笔记]Requests性能优化之Session