SQL

MySQL的SQL跟许多关系型数据库一样,大同小异,主要分为四种:DDL(Database Definition Language)、DML(Database Management Language)、DQL(Database Query Language)、DCL(Database Control Language)对应了数据库中表的定义操作查询权限控制

  • DDL

数据库定义语言
语法:

创建数据库

 create database  数据库名;(普通写法)create database if not exists 数据库名;(不存在则创建,防止重复创建报错)

删除数据库:

 drop database  数据库名 ;(普通写法)drop database if exists 数据库名;(存在则删除,防止重复删除报错)

使用数据库:

 use 数据库名;select database(); (查看当前使用的数据库是哪个)

查看所有存在的数据库:

 show databases;

创建表:

 create table 表名称(字段名称1 数据类型,......字段名称2 数据类型,字段名称n 数据类型
);
                                           表(具体结构)
字段名1 字段名2 字段名n

删除表:

 drop table 表名;drop table if exists 表名;(存在则删除)

修改表:

 更改表名:alter table 表名 rename to 新的表名;添加字段alter table 表名 add 字段名 数据类型;修改字段的类型alter table 表名 modify 字段名 新数据类型;修改字段名和数据类型alter table 表名 change 字段名 新字段名 数据类型;删除字段alter table 表名 drop 字段名;

查看表的结构:

  desc 表名;
  • DML

数据库操作语言
语句:

添加记录:

  赋予指定字段数据,并添加一条记录:insert into 表名(字段名1,字段名2,字段名3,...) values(值1,值2,值3,...);赋予所有字段数据,并添加一条记录:insert into 表名 values(值1,值2,值3,...);批量添加记录:insert into 表名(字段名1,字段名2,字段名3,...) values (值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...);insert into 表名  values  (值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...);

修改记录:

  update 表名 set 字段名1 = 值1,字段名2=值2,字段名3=值3 where 条件;注:若省略 where 条件,则会将所有记录的对应字段修改。

删除记录:

  delete from 表名 where 条件;注:若省略 where 条件,则会将所有记录都删除。
  • DQL

数据库查询语言
查询语法:

select 字段列表
from 表名列表
where 条件列表
group by 分组字段
having 分组后条件
order by 排序字段
limit 分页限定;

基础查询:

  查询某列数据select 字段名 from 表名;查询多列数据select 字段名1,字段名2,... from 表名;查询所有列数据select * from 表名;去重查询select distinct 字段名 from 表名;起别名select 字段名 as 别名 from 表名;

条件查询:

  select 字段列表 from 表名 where 条件列表;注:如果要判断字段值是否为null不能用=,必须使用 is 关键字模糊查询select 字段列表 from 表名 where 某字段 like 模糊字符串;注:模糊字符串的通配符有%表示多个字符,_表示单个字符。

排序查询:

  select 字段列表 from 表名 order by 字段名1 排序方式,字段名2 排序方式,... 排序方式;注:asc:升序排序  desc:降序排序

分组查询:

  聚合函数:count(字段名) 统计数量 (如要统计表所有的记录,最常用count(*))max(字段名)   最大值min(字段名)   最小值sum(字段名)   求和avg(字段名)   平均分注:null 值不参与聚合函数的计算select 聚合函数(字段名) from 表名;分组查询语法:select 字段列表 from 表名 [where 分组前条件] group by 分组字段名 [having 分组后条件];注:where 与 having 区别在于执行时机不同,且having是对分组后的结果进行过滤,having能对聚合函数进行判断,where不行。分组后,查询的字段列表为聚合函数和分组字段,其他字段无意义.语句执行顺序:where >group by > 聚合函数 > having

分页查询:

  select 字段列表 from 表名 limit 起始索引,最大记录条目数;注:起始索引是从0开始算的(第0条记录)记录条目数是一页现实的记录数量 limit 关键字是 MySQL 特有

多表查询:

 select 字段列表 from 表名1,表名2;注:该语句查询出来的记录个数是 所有表记录的笛卡儿积(就是两个表的数据自由组合的结果)。所以一般 多表查询 都会用上 where 条件判断,去除笛卡尔积出来了无效数据:select 字段列表 from 表名1,表名2 where 条件; 连接查询:内连接:查询两个表中交集的数据外连接:左外连接:相当于查询A表

连接查询(如图所示):

 内连接:查询两个表中交集的数据隐式内连接:select 字段列表 from 表1,表2 where 条件;显示内连接:select 字段列表 from  表1 inner join 表2 on 条件;外连接:左外连接:相当于查询A表的所有数据和交集的数据。select 字段列表 from 表1 left join 表2 on 条件;右外连接:相当于查询B表的所有数据和交集的数据。select 字段列表 from 表1 right join 表2 on 条件;

子查询(嵌套查询):

MySQL之SQL语句(总结)相关推荐

  1. windows下bat处理执行Mysql的sql语句

    这篇文章主要介绍了windows下bat批处理执行Mysql的sql语句,需要的朋友可以参考下 有时候我们需要用bat来定时执行mysql那么就可以参考下面的代码 直接上代码: @ECHO OFF S ...

  2. shell实行mysql语句_【Mysql】shell运行mysql的sql语句_MySQL

    bitsCN.com [Mysql]shell运行mysql的sql语句 shell本身是一种脚本语言,所以不能像java一样通过api去连接数据库.shell还是要借助mysql本身的一些运行脚本才 ...

  3. PHP获取MySQL执行sql语句的查询时间

    PHP获取MySQL执行sql语句的查询时间 1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开 ...

  4. mysql下sql语句 update 字段=字段+字符串

    mysql下sql语句令某字段值等于原值加上一个字符串 update 表明 SET 字段= 'feifei' || 字段; (postgreSQL 用 || 来连贯字符串) MySQL连贯字符串不能利 ...

  5. mysql分析sql语句基础工具 —— explain

    转载自 https://segmentfault.com/a/1190000009724144 立即登录 [笔记] mysql分析sql语句基础工具 -- explain  mysql wateran ...

  6. Mysql中SQL语句不使用索引的情况

    Mysql中SQL语句不使用索引的情况 MySQL查询不使用索引汇总 众所周知,增加索引是提高查询速度的有效途径,但是很多时候,即使增加了索引,查询仍然不使用索引,这种情况严重影响性能,这里就简单总结 ...

  7. mysql数据库语句分类_细数MySQL中SQL语句的分类

    1:数据定义语言(DDL) 用于创建.修改.和删除数据库内的数据结构,如:1:创建和删除数据库(CREATE DATABASE || DROP  DATABASE):2:创建.修改.重命名.删除表(C ...

  8. MySQL的SQL 语句:根据从表记录个数对主表排序

    MySQL的SQL 语句:根据从表记录个数对主表排序 一个主表 news,有字段 nId(自动增长),sName.     记录:     10 name10     13 name13     20 ...

  9. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  10. MySQL 递归 sql语句 WITH表达式实现

    MySQL 递归 sql语句 WITH AS 实现 前言: 这里一般来说需要编一个故事但是我懒 mysql递归CTE: 8.0版本以上才有WITH AS,8.0以下版本的话请绕行----->不是 ...

最新文章

  1. 20175223 《Java程序设计》第十一周学习总结
  2. 多核学习在图像分类中的应用
  3. openstack万兆交换机设置mtu值
  4. sqlyog表添加列_如何用数据透视表求差,而不是求和?
  5. cdh中hdfs非ha环境迁移Namenode与secondaryNamenode,从uc机器到阿里;
  6. java日期处理总结
  7. 项目实施管理之系统演示
  8. 电子计算机工程学,电子计算机工程学荣誉工学士资料.ppt
  9. kubernetes--pod的生命周期管理(PostStart,PreStop)
  10. 12简单推导:切面条
  11. Java之JvisualVM简介
  12. 下载spring源码
  13. Jad批量反编译class
  14. AD7705/TM7705使用注意事项
  15. linux系统支持速达软件吗,速达3000系列常见问题100问
  16. word在线编辑。生成图片。截图。合图。
  17. 外包公司的运作模式和赚钱之道-聊聊IT外包公司
  18. 2018年,给自己加油!
  19. 基于粒子群算法的微电网优化调度应用研究(三、长短期记忆网络和卷积神经网络预测模型)
  20. 2018年中国互联网企业百强榜单

热门文章

  1. BetterZip可以这样用!
  2. 使用Eclipse创建JavaWeb动态网页项目(一)学习使用Servlet
  3. 纳因特机器人综合技能编程模拟器_机器人组装模拟器
  4. 特斯拉不仅造车,还卖起了保险……|一周热闻回顾
  5. 【新能源汽车维修-0525】
  6. 多核、多线程、并发与并行
  7. a href=mailto:的使用总结笔记
  8. R语言提取单点的cru格点数据
  9. mysql批量修改学号位数_mysql批量修改表前缀
  10. 书读少别骗我,QQ等级也能贷款了?