定义: 

SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一 种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名

SQL语句分类

 一、DDL

1、显示所有库
SHOW DATABASES;

2、创建一个库    CREATE DATABASE 库名;库只能被创建一次

3、删除一个库  DROP DATABASE 库名;

4、使用库    USE 库名;

5、改变字段属性
-- ALTER TABLE 表名 MODIFY 字段名 属性

ALTER TABLE teacher MODIFY money DECIMAL(11,2);

6、修改字段名
-- ALTER TABLE 表名 CHANGE 字段名 新字段名 属性
ALTER TABLE student CHANGE birthday shengri DATE;

7、添加字段
-- ALTER TABLE 表名 ADD 字段名 属性
ALTER TABLE teacher ADD address VARCHAR(30) DEFAULT '陕西';

8、删除字段
-- ALTER TABLE 表名 DROP 字段名;

删除一个字段
ALTER TABLE teacher DROP telephone;

9、修改表名
-- ALTER table 表名 RENAME AS 新表名;

二、DML 

1、新增
INSERT INTO 表名 (字段名1,字段名2……)VALUES(值1,值2……);

&---        INSERT INTO teacher(name,sex,birthday,money,cid)VALUES

('王老大','男','2001-02-02',10000.00,001),('杨老二','男','2003-03-03',88888.00,002);

2、修改
UPDATE 表名 SET 字段名=值,字段名=值 WHERE [子句]

&---         UPDATE student SET name = '杰克逊' WHERE birthday = '2004-04-09';

&---        在一定范围内写修改语句
UPDATE student SET ssex='女' ,classid = 9 WHERE Sid>= 9 AND Sid <=13; 
&---         等价语句    小数据在前,大数据在后
UPDATE student SET ssex='男' ,classid = 9 WHERE Sid BETWEEN 9 AND 13;

3、删除
&---       delete from teacher WHERE name ='周老十';

DELETE FROM student WHERE birthday = '1990-10-01';

三、DQL 

1、SELECT * FROM student;-- (全查)
2、SELECT * FROM student WHERE classid = 1;-- (查找classid是1的人员)

3、-- 根据选择字段查询
SELECT sname,ssex FROM student;

4、-- 给字段起别名(3种方式——    as\''\直接放别名)
-- 一旦起别名了,字段名就是别名
SELECT sname AS '姓名',birthday '生日',ssex 性别 FROM student;

5、-- DISTINCT 去除重复(字段中完全相同的去掉)
SELECT DISTINCT Ssex FROM student;
SELECT DISTINCT ssex,classid FROM student;

6、-- 带条件的查询语句 WHERE
SELECT * FROM student WHERE ssex = '男';
SELECT * FROM student WHERE ssex = '男' AND classid = 1;

7、-- 生日大于1991.01.01的学生
SELECT * FROM student WHERE birthday < '1991-01-01';

8、模糊查询    LIKE

8.1        -- 模糊符号        %    任意多的任意字符
SELECT * FROM student WHERE Sname LIKE '%猴%';

8.2        -- 后模糊    xx%,结果是以xx开头的数据
SELECT * FROM student WHERE Sname LIKE '猴%';

8.3        -- 前模糊 %xx,结果是以xx结尾的数据
SELECT * FROM student WHERE Sname LIKE '%猴';

9、-- IN 在哪个范围内

SELECT * FROM student WHERE Sid IN(2,5,6,7,8,15);

10、-- 没有生日的学生    关键词 IS,不能是null
SELECT * FROM student WHERE birthday IS NULL;
SELECT * FROM student WHERE birthday IS NOT NULL;

 11、聚合函数 

count(字段)    统计个数,COUNT 不统计null

-- 统计表里一共有多少学生
SELECT COUNT(*) FROM student;

-- 统计表里一共有多少女同学
SELECT COUNT(*) FROM student WHERE Ssex = '女';
-- 可以使用常量去统计
SELECT COUNT(1) FROM student WHERE Ssex = '女';
SELECT COUNT('aaa') FROM student WHERE Ssex = '女';
-- 可以使用主键统计
SELECT COUNT(Sid) FROM student WHERE Ssex = '女';

 avg (平均分)

-- 统计所有学生的平均分
SELECT AVG(score) FROM sc;

sum(总数)

-- 所有学生的总成绩
SELECT SUM(score) FROM sc;

max(最高分)

-- 最高成绩
SELECT MAX(score) FROM sc;

min(最低分)

-- 最低成绩
SELECT MIN(Score) FROM sc;

 12、分组 

-- 按照性别分组,男有多少,女有多少
SELECT ssex, COUNT(*) FROM student GROUP BY Ssex;

-- 每个班有多少学生
SELECT classid,COUNT(*)FROM student GROUP BY classid;

-- 总成绩
SELECT Sid,SUM(score) 总分 FROM sc GROUP BY Sid;

-- 分类合计
SELECT Sid,SUM(score) 总分 ,AVG(score) 平均分,MAX(Score) 最高分,MIN(Score) 最低分,COUNT(Score) 次数 FROM sc GROUP BY Sid;

 13、 HAVING 数据聚合之后的分组;HAVING 不能单独出现,必须要和 GROUP BY 一起出现
-- 平均分大于80分的
SELECT sid,AVG(score) FROM sc GROUP BY Sid
HAVING AVG(Score)>80;
 14、排序 ORDER BY        升序asc\降序desc 

-- 成绩降序(由高到低)
SELECT * FROM sc ORDER BY Score DESC; 15、LIMIT 做分页 

分页公式     (页码——1)*步长,步长,写的是确定值,不是表达式

SELECT * FROM student LIMIT 4,4;

16、多表联查

-- 非等值联查    迪卡尔积(两个集合相乘的结果) from之后多张表表名
SELECT * FROM student,class;

 -- 内联查询
SELECT * FROM student INNER JOIN class ON student.classid=class.classid;

-- 1、先执行虚拟表,第一张的查询结果,作为最大的基础数据表;2、链接class表,复制了之前虚拟表的,进行条件判断拼数据。虚拟表最大结果集是最大表的个数。
-- 2、等值查询,内联查询的选择场景使用。表的数量多、字段名较多。数据量小,表非常多的时候使用等值联查。

内联多张表
-- 查询上过李四老师课程的学生;where写条件

SELECT student.* FROM student  INNER JOIN sc ON  student.Sid=sc.Sid  INNER JOIN course ON  sc.Cid=course.Cid  INNER JOIN teacher ON  course.Tid=teacher.Tid  WHERE Tname='李四';

-- 外联查询    做外联查询,主要查询什么。主表在join的左边,称之为左外联。右外联亦是如此。

-- LEFT JOIN 左外联 主表是student
SELECT * FROM student LEFT JOIN class ON student.classid=class.classid; 

-- RIGHT JOIN 右外联 主表是class
SELECT * FROM student RIGHT JOIN class ON student.classid=class.classid ORDER BY Sid;

 UNION    上下两个结果并成一个虚拟表;union和数据类型无关;union并列的时候,上下两个表之间的字段名数量要一致;union去重复

SELECT * FROM student LEFT JOIN class ON student.classid=class.classid WHERE class.classid=NULL
UNION
SELECT * FROM student RIGHT JOIN class ON student.classid=class.classid WHERE student.Sid=NULL;

 17、WHERE 子查询 

使用where子查询实现 -- 子查询必须要有小括号;结果以主句为主,副句是条件。

查询id最大的一个学生

SELECT * FROM student WHERE Sid=(SELECT MAX(Sid) FROM student);

 18、FROM 子查询 

查询大于3人的班级名称和人数

SELECT classname,a 人数 FROM class LEFT JOIN
(SELECT classid,COUNT(*) a FROM student GROUP BY classid) t1 
ON class.classid=t1.classid WHERE a > 3;
 19、控制sql语句 

IF(expr1,case,expr3)

SELECT tid,tname,IF(tsex=1,'男','女'),tbirthday FROM teacher;

case、when、then、end语句 

-- 第一种,简单case(常量)

SELECT tname,tbirthday,
    CASE tsex
    WHEN 1 THEN '男'
    WHEN 0 THEN '女'
    END 性别,
taddress FROM teacher;

 -- 第二种,搜索case 

查询学生的成绩,
-- 并将大于90分的用A显示,
-- 大于80分的用B显示,
-- 大于70分的用C显示,
-- 大于60分的用D显示,
-- 小于60分的显示不及格

------------------------------------------------语法------------------------------------------

SELECT sname,cname,
    CASE
    WHEN score>=90 THEN 'A'
    WHEN score>=80 AND score <90 THEN 'B'
    WHEN score>=70 AND score <80 THEN 'C'
    WHEN score>=60 AND score <70 THEN 'D'
    WHEN score<60 THEN '不及格'
END 成绩评分
FROM student LEFT JOIN sc on student.sid=sc.sid
LEFT JOIN course ON sc.Cid = course.Cid ORDER BY 成绩评分;

以上便是MySQL中DDL、DML、DQL的使用和实例解析,牢记“增删改查”。

MySQL的DDL、DML和DQL的基本语法相关推荐

  1. 【数据库1】mysql,DDL/DML,DQL,外键约束,多表/子查询,事务,登陆,连接池,jdbc,redis,crontab,ftp,oracle,数据交换/存储/收集

    文章目录 1.mysql安装:存储:集合(内存:临时),IO流(硬盘:持久化) 1.1 服务端:双击mysql-installer-community-5.6.22.0.msi 1.2 客户端:命令行 ...

  2. dml语句包括哪些_聊聊MySQL基本操作DDL,DML,DQL,DCL

    本篇文章来回顾一下MySQL的基本操作之DDL,DML,DQL,DCL,每种操作都有各自不同的语法,常用的操作汇总如下. 一.DDL-数据定义语言 作用:数据定义语言主要用来定义数据库中的各类对象,包 ...

  3. MySQL 的DDL DML DQL DCL细节解析 知道这些就够了

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

  4. MySql的初识感悟,以及sql语句中的DDL和DML和DQL的基本语法

    花了将近一周的时间学习了数据库的基本用法,今天总结一下. 一.一些感悟 数据库的定义:数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.可 ...

  5. mysql基础之DML、DQL语句

    课程笔记Day25 DDL语句 DML语句 DQL语句 第一章 DDL语句 第01节 操作数据库 1.创建数据库 简单的创建语法 -- 语法格式: CREATE DATABASE 数据库的名称;-- ...

  6. 数据库MySQL基础---DDL/DML/DQL

    MySQL基础 数据库简介 数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.可共享的.统一管理的大量数据的集合. 与数据库相关的概念数据 ...

  7. Mysql的DDL DML DQL DCL

    m代表长度(1-65) d代表保留少数位(0-30) 整数型 tinyint(m)1字节 取值范围(-128-+127) int(m)4字节 取值范围(大概20几亿) 浮点型 double(m,d)8 ...

  8. MySQL的 DDL和DML和DQL的基本语法

    前言 SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统,同时 ...

  9. MySQL——DDL、DML、DQL、DCL语法总结

    文章目录 通用语法及分类 一.DDL(数据定义语言) 1. 数据库操作 2. 表操作 二.DML(数据操作语言) 1. 添加数据 注意事项 2.删除数据 3.修改数据 注意事项 三.DQL(数据查询语 ...

最新文章

  1. Java关键字this、super使用总结
  2. 电脑文档提示无法连接服务器,提示无法将数据库连接到SQL服务器-工业支持中心-西门子中国...
  3. 每天学点Python之collections
  4. jeecg中excel导出字段判空处理
  5. 华为应用市场AppGallery Connect研习社·直播:百万开发者打造优质应用的奥秘
  6. [科研论文]基于W7100的以太网读卡器的设计与实现
  7. 无法支持python程序的编辑运行和调试_解决pycharm的Python console不能调试当前程序的问题...
  8. 打印出现:You've implemented -[UIApplicationDelegate application:didReceiveRemoteNotification:...
  9. java多线程同步synchronized,浅析Java多线程同步synchronized,javasynchronized
  10. cocostudio学习
  11. python excel 空值_用Python轻松搞定Excel中的20个常用操作
  12. 连线被拒,请检查主机名称和埠号,并确定 postmaster 可以接受 TCP/IP 连线
  13. 古剑奇谭显示服务器维修,《古剑奇谭网络版》角色转服功能说明公告
  14. 单元格内多个姓名拆分成一列_excel一个单元格中有多个名字,怎样拆分这些名字,名字是用空格分开的《excel批量分列》...
  15. mysql timestamp毫秒_MySQL的Timestamp插入丢失毫秒的问题
  16. OpenCV开发笔记(六十五):红胖子8分钟带你深入了解ORB特征点(图文并茂+浅显易懂+程序源码)
  17. php代码运行后空白什么原因,PHP空白页面常见原因及解决方法
  18. Debian添加自启动的两种方式
  19. LVGL笔记(1)-使用《avilib》库播放avi视频(lvgl在windows模拟运行)
  20. contiki学习笔记(一)

热门文章

  1. python导入包的输入法_python使用idle edit编辑器时,中文输入法下遇到r、p、t、y时产生热键冲突...
  2. 云豹app直播源码Android 端获取相册图片功能的具体实现教程
  3. Java 七大设计原则 - 依赖倒置原则/面向接口编程
  4. 论文解析[5] nnU-Net: Breaking the Spell on Successful Medical Image Segmentation
  5. 实例解读奈奎斯特稳定判据
  6. 【数据结构与算法】初识二叉树(下)
  7. Python杨辉三角
  8. vue双向绑定问题,修改数据时改变了原数据
  9. 开放式激光振镜运动控制器(二):ZMC408SCAN激光接口与控制
  10. 数据可视化:世界银行数据(1960-2017)