Mysql基础语法DDL、DML、DQL

DDL:

  • DDL(Data Definition Language)数据定义语言
  • 用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
DML语句操作关键字
添加INSERT INTO 表名 (字段名) VALUES (值);
修改UPDATE 表名 SET 字段名=新的值;
删除DELETE FROM 表名;
查询SELECT * FROM 表名;
含义SQL语句
查询所有的数据库SHOW DATABASES;
查询当前正在使用的数据库SELECT DATABASE();
使用数据库USE 数据库名;
查询某个数据库的定义信息SHOW CREATE DATABASE 数据库名;
创建数据库CREATE DATABASE 数据库名;
判断是否存在并创建数据库CREATE DATABASE IF NOT EXISTS 数据库名;
创建数据库并指定字符集(编码表)CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 编码;
判断数据库不存在再创建数据库并指定字符集CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET 编码;
修改数据库字符集ALTER DATABASE 数据库名DEFAULT CHARACTER SET 新字符集;
删除数据库DROP DATABASE 数据库名;
如果数据库存在再删除数据库DROP DATABASE IF EXISTS 数据库名;

演示:

-- 查询所有的数据库	
SHOW DATABASES;-- 查询当前正在使用的数据库	
SELECT DATABASE();-- 使用数据库	
USE db1;-- 查询某个数据库的定义信息
SHOW CREATE DATABASE db1;-- 创建数据库	
CREATE DATABASE db2;-- 判断是否存在并创建数据库	
CREATE DATABASE IF NOT EXISTS db2;-- -- 创建数据库并指定字符集(不指定的话默认的是UTF-8)
CREATE DATABASE db4 CHARACTER SET utf8;-- 判断数据库不存在再创建数据库并指定字符集	
CREATE DATABASE  IF NOT EXISTS db3  CHARACTER SET utf8;-- 修改数据库字符集	
ALTER DATABASE db1 CHARACTER SET utf8;-- 删除数据库	
DROP DATABASE db3;-- 如果数据库存在再删除数据库
DROP DATABASE IF EXISTS db3;
含义SQL语句
查看数据库中的所有的表SHOW TABLES;
查看表结构DESC 表名;
查看创建表的SQL语句SHOW CREATE TABLE 表名;
查看数据表信息SHOW TABLE STATUS FROM 数据库 LIKE 表名;
创建表CREATE TABLE 表名(列名 数据类型 约束,列名 数据类型 约束);
快速创建一个表结构相同的表CREATE TABLE 表名 LIKE 其他表;
直接删除表DROP TABLE 表名;
判断表是否存在并删除表DROP TABLE IF EXISTS 表名;
添加表一列ALTER TABLE 表名 ADD 字段名 字段类型;
修改列类型ALTER TABLE 表名 MODIFY 字段名 新类型;
修改列名ALTER TABLE 表名 CHANGE 老字段名 新字段名 类型;
删除列ALTER TABLE 表名 DROP 字段名;
修改表名RENAME TABLE 表名 TO 新表名;
修改表名ALTER TABLE 表名 RENAME TO 新表名;
修改表的字符集ALTER TABLE 表名 DEFAULT CHARACTER SET 新字符集;

演示:

-- 查询表
SHOW TABLES;-- 查询表结构
DESC student;-- 查看创建表的SQL语句	
SHOW CREATE TABLE student;-- 查看数据表信息
SHOW TABLE STATUS FROM db1 LIKE 'student';-- 创建数据表
CREATE TABLE student2(
id INT,
name VARCHAR(20),
age TINYINT,
address VARCHAR(100)
);-- 判断是否存在并创建数据表
CREATE TABLE  IF NOT EXISTS student2(
id INT,
name VARCHAR(20),
age TINYINT,
address VARCHAR(100)
);-- 快速创建一个表结构相同的表	
CREATE TABLE student3 LIKE student;-- 显示表的相关信息
SHOW TABLE STATUS FROM db1 LIKE 'student';-- 删除数据表
DROP TABLE student2;-- 判断表是否存在并删除表	
DROP TABLE IF EXISTS student2;-- 添加表中的列
ALTER TABLE student ADD Test VARCHAR(20);-- 修改列的类型
ALTER TABLE student MODIFY Test INT;-- 修改列名	
ALTER TABLE student CHANGE Test Test2 VARCHAR(20);-- 删除列
ALTER TABLE student DROP Test2;-- 修改表名
RENAME TABLE student TO student2;-- 修改表的字符集
ALTER TABLE student2 DEFAULT CHARACTER SET utf8;

DML:

  • DML(Data Manipulation Language)数据操作语言
  • 用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
含义SQL语句
给全部列添加数据INSERT INTO表名 VALUES (值1, 值2, 值3,…);
给指定列添加数据INSERT INTO 表名 (字段名1, 字段名2, 字段名3, …) VALUES (值1, 值2, 值3, …);
不带条件修改数据UPDATE 表名 SET 字段名=;
带条件修改数据UPDATE 表名 SET 字段名= WHERE 字段名=;
不带条件删除数据DELETE FROM 表名;
带条件删除数据DELETE FROM 表名 WHERE 字段名=;
truncate删除表记录TRUNCATE TABLE 表名;

演示:

  • 列名和值的数量以及数据类型要对应,除了数字类其他数据类型的数据都需要加单引号
  • 修改语句中必须加条件,如果不加条件会把所有的数据都修改/删除
-- 默认给全部列添加数据   INSERT INTO表名 VALUES (值1, 值2, 值3,…);
INSERT INTO student VALUES (1, '李白', 100, '王者峡谷');-- 给指定列添加数据   INSERT INTO 表名(列名1,列名2...)VALUES(值1,值2...);
INSERT INTO student (id, name, age, address) VALUES (2, '韩信', 90, '王者峡谷');
INSERT INTO student (id, name) VALUES (3, '露娜');-- 批量添加数据   INSERT INTO 表名 VALUES (值1,值2,...),(值1,值2,...);
INSERT INTO student VALUES (4, '宫本', 80, '王者峡谷'), (5, '猴子', 70, '王者峡谷'), (6, '阿珂', 60, '王者峡谷');-- 不带条件修改数据   修改表中所有adress=王者峡谷的数据
UPDATE student SET address = '野区';-- 带条件修改数据		UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
UPDATE student SET age = 99 WHERE id = 1;
UPDATE student SET name = '韩信', age = 99, address = '王者峡谷' WHERE id = 2;-- 不带条件删除数据	 删除表中所有数据
DELETE FROM student;-- 带条件删除数据   DELETE FROM 表名 WHERE条件;
DELETE FROM student WHERE name = '李白';
DELETE FROM student WHERE id = '2';

DQL:

  • (Data Query Language)数据查询语言
  • 用来查询数据库中表的记录(数据)。关键字:select, where 等
单表数据查询语法:
  • SELECT 字段列表
  • FROM 表名列表
  • WHERE 条件列表
  • GROUP BY 分组字段
  • HAVING 分组后的过滤条件
  • ORDER BY 排序
  • LIMIT 分页
查询全部:
含义SQL语句
查询全部表数据SELECT * FROM 表名;
查询指定字段的表数据SELECT 列名1,列名2,…FROM 表名;
去除重复查询SELECT DISTINCT 列名1,列名2,…FROM 表名;
计算列的值(四则运算)SELECT 列名1 运算符(+ — * /) 列名2 FROM 表名;
查询时进行null的判断SELECT IFNULL 列名(要替换的列,要替换的值)FROM 表名;
起别名查询SELECT 列名 AS 别名 FROM 表名;

演示:

-- 查询全部表数据		 SELECT * FROM 表名;
SELECT * FROM student;-- 查询指定字段的表数据	SELECT 列名1,列名2,...FROM 表名;
SELECT id, name, age FROM student;-- 去除重复查询		SELECT DISTINCT 列名1,列名2,...FROM 表名;
SELECT DISTINCT address FROM student;-- 计算列的值(四则运算)	SELECT 列名1 运算符(+ — * /)列名2 FROM 表名;
SELECT age + 100 FROM student;
SELECT age + 100 FROM student WHERE id = 5;-- 查询时候进行null的判断,用SELECT ifnull 列名(要替换的列,要替换的值)FROM 表名;
SELECT name, IFNULL(age, 0) + 10 FROM student;-- 起别名查询 as可写可不写,不写要空格	SELECT 列名 AS 别名 FROM 表名;
SELECT age AS "年龄" FROM student;
条件查询:

查询语法:

SELECT 列名列表 FROM 表名 WHERE  条件;
符号功能
>大于
<小于
>=大于等于
<=小于等于
=等于
<> 或 !=不等于
BETWEEN … AND …在某个范围之内(都包含)
IN(…)多选一
LIKE 占位符模糊查询 _单个任意字符 %多个任意字符
IS NULL是NULL
IS NOT NULL不是NULL
AND 或 &&并且
OR 或 ||或者
NOT 或 ! 非不是

演示:

-- 查询语法   SELECT 列名列表 FROM 表名 WHERE  条件;
-- 查询年龄大于80的用户信息
SELECT * FROM student WHERE age > 80;-- 查询姓名是韩信的用户信息
SELECT * FROM student WHERE age > 80 AND name = '韩信';-- 查询年龄在60和80之间的用户信息
SELECT * FROM student WHERE age >= 80 AND age <= 100;
SELECT * FROM student WHERE age BETWEEN 80 AND 100;-- 查询id是1,2,3的用户
SELECT * FROM student WHERE id = 1 OR id = 2 OR id = 3;
SELECT * FROM student WHERE id IN (1, 2, 3);-- 查询姓名是null的用户
SELECT * FROM student WHERE name IS NULL;-- 查询姓名不是null的用户
SELECT * FROM student WHERE name IS NOT NULL;-- 模糊查询
-- 查询姓韩的用户  %:多个任意字符
SELECT * FROM student WHERE name LIKE '韩%';-- 查询姓名带虎的用户  _:一个任意字符
SELECT * FROM student WHERE name LIKE '_虎%';-- 查询名字是两个的用户
SELECT * FROM student WHERE name LIKE '__';-- 查询名字带猴的
SELECT * FROM student WHERE name LIKE '%猴%';
聚合函数查询:

聚合函数:将一列数据作为一个整体,进行纵向的计算

函数名功能
count(列名)统计数量(一般选用不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值
-- 计算总记录条数
SELECT COUNT(*)  FROM student;-- 获取最大年龄
SELECT MAX(age) FROM student;-- 获取最小年龄
SELECT MIN(age) FROM student;-- 获取所有年龄和
SELECT SUM(age) FROM student;-- 获取地址为王者峡谷用户年龄和
SELECT SUM(age) FROM student WHERE address = '王者峡谷';-- 获取地址为王者峡谷用户平均年龄
SELECT AVG(age) FROM student WHERE address = '王者峡谷';
排序查询:
  • 排序查询:多个排序条件,当前边的条件值一样时,才会判断第二条件

排序方式:

  • ASC:升序
  • DESC:降序
含义SQL语句
排序查询SELECT 列名 FROM 表名 WHERE 条件 ORDER BY 列名1 排序方式1,列名2 排序方式2;
-- 根据年龄升序排序
SELECT * FROM student ORDER BY age ASC;-- 根据年龄降序排序
SELECT * FROM student ORDER BY age DESC;-- 查询手机中的带信的用户,根据年龄升序排序
SELECT * FROM student WHERE name LIKE '%信%' ORDER BY age DESC;-- 按照年龄升序,如果年龄相同,按照id排序 
SELECT * FROM student ORDER BY age ASC, id DESC;
排序查询:
含义SQL语句
排序SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 分组列名 HAVING 分组后条件过滤 ORDER BY 排序列名 排序方式

演示:

-- 按照地址分组,获取每组的年龄和
SELECT address ,SUM(age) FROM student GROUP BY address;-- 年龄大于60的进行分组,按照地区分组,获取每组的年龄和
SELECT address, SUM(age) FROM student WHERE age > 60 GROUP BY address;-- 年龄大于60的进行分组,按照地区分组,获取每组的总年龄,只显示总年龄大于200的
SELECT address, SUM(age) AS getSum FROM student WHERE age > 60 GROUP BY address HAVING getSum > 200;-- 年龄大于60的进行分组,按照地区分组,获取每组的总年龄,只显示总年龄大于200的,并按照总年龄降序排序
SELECT address, SUM(age) AS getSum FROM student WHERE age > 60 GROUP BY address HAVING getSum > 200 ORDER BY getSum DESC;
分页查询:

数据多的时候使用,就像百度去搜东西一样分页显示
LIMIT 当前页数,每页显示的条数

含义SQL语句
分页查询SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 分组列名 HAVING 分组后条件过滤 ORDER BY 排序列名 排序方式 LIMIT 开始索引,查询条数;
语法LIMIT 当前页数,每页显示的条数
-- 当前页 = (当前页数-1) * 每页显示的条数
-- 第一页显示3条数据
SELECT * FROM student LIMIT 0,3;-- 第二页显示3条数据
SELECT * FROM student LIMIT 3,3;-- 第三页显示3条数据
SELECT * FROM student LIMIT 6,3;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UVA 12716 GCD XOR(数论+枚举+打表)

&#xfeff;&#xfeff;题意&#xff1a;给你一个N&#xff0c;让你求有多少组A,B, 满足1< B < A < N, 且 gcd(A,B) A XOR B。思路&#xff1a;首先我们能够得出两个结论&#xff1a; A-B > A%B > gcd(A, B) A xor B > A-B 所以说A xor B > A-B > …

android陀螺仪轨迹,陀螺仪轨迹法长距离管道测量精度实测分析

陀螺仪轨迹法长距离管道测量精度实测分析陀螺仪轨迹法用于非开挖管道的精准坐标与位置测量已被电力与燃气等行业逐步了解与接受&#xff0c;近两年不断被引入到城市地下管线探测及电力与燃气管道验收标准中。由于管道埋于地下往往不能眼见为实&#xff0c;作为一种新的测量方式…

codeforces 558E A Simple Task 线段树

题目链接 题意较为简单。思路&#xff1a; 由于仅仅有26个字母&#xff0c;所以用26棵线段树维护就好了&#xff0c;比較easy。 #include <iostream> #include <string> #include <vector> #include <cstring> #include <cstdio> #include <m…

android新建多个java,Java-如何在Android的警报对话框中添加多项选...

我已经在Android应用程序中创建了“同步”菜单.当我们单击“同步”警报时,打开4个复选框的布局.我想要的是让它们起作用,例如,当我单击15分钟,然后自动取消单击其他选项时.Overridepublic boolean onCreateOptionsMenu(Menu menu){MenuInflater inflater getMenuInflater();in…

Spring IOC详解与配置

Spring&#xff1a; 框架&#xff1a; 具有一定功能的半成品软件&#xff0c;基于框架会节省开发成本 框架作用&#xff1a; 提高开发效率、复用性、编写规范、节约维护成本、解耦底层实现原理 Spring&#xff1a; Spring是分层的JavaSE/EE应用full-stack轻量级开源框架Sprin…

android8.0的蓝牙版本,android o 新特性详解 安卓8.0蓝牙音频增强以及更加可爱的表情包...

android 8.0什么时候推出&#xff1f;有哪些新特色&#xff1f;很多安卓用户非常想知道答案吧&#xff01;不用着急&#xff0c;下面是大麦子小编整理出来的安卓8.0新特性详解&#xff0c;希望可以帮到大家。有媒体近日曝光了有关谷歌Pixel XL 2手机会首发Android 8.0系统。现在…

操作系统介绍

操作系统&#xff1a; 操作系统(Operation System, OS)&#xff0c;是管理计算机硬件与软件资源的计算机程序&#xff0c;同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基…

DOM初级篇

DOM是什么、作用、与javascript&#xff1f; DOM是对HTML文档的访问和操作&#xff0c;对文档的增删改查。 DOM相当于是javascript一个类&#xff0c;这个类中提供了多种操作HTML的方法&#xff0c;也可以说DOM是依附在JavaScript上进行操作的。 一、标签的查找命令&#xff1b…

Activiti工作流的简单介绍

1.概念 工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”&#xff0c;它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息 或任务的过程自动进行&#xff0c;从而实现某个预期的业务目标&#xff0c;或者促使此目标的实现。” 2.…

vs2019开发android应用,VS 2019开发APP(一)界面和代码

1.界面在Resources>layout>目录下的*.xml文件就是界面文件2.关联界面接下来&#xff0c;通过将支持代码插入到 MainActivity 类中来添加代码以关联用户界面。在 MainActivity 类中找到 OnCreate 方法&#xff0c;在其中添加关联按钮代码如下&#xff1a;protected overri…

关于AM335X移植SDIO WIFI的简易教程(转)

最近应一个朋友邀请&#xff0c;帮他移植了SDIO WIFI到3.2版本内核。因为之前已经成功移植了3.14内核&#xff0c;所以整个过程花了一个下午就完成了。话不多说&#xff0c;先交待一下平台&#xff1a; CPU&#xff1a;TI AM3352 600MOS&#xff1a;ubuntu core 12.04 for armS…

oracle 数据库字段html显示正常text显示不全,layui表格字段表格显示不全(自适应)...

本文将为您描述layui表格字段表格显示不全(自适应),具体操作方法:好记性不如烂笔头。本来就是没什么好记得东西&#xff0c;下次再用时已经想不起来了。问题如下&#x1f41f;使用layui表格&#xff0c;表格字段显示不全&#xff0c;如果超出分配的位置&#xff0c;就会显示省略…

使用 VSCode 编写 .NET Core 项目之初体验

注&#xff1a;本文在根据 微软官方文档指导下&#xff0c;根据自己的学习中整理&#xff0c;并不完全照搬文档&#xff0c;但也大体和文档学习路线相似&#xff0c;主要为记录学习过程。 官方学习地址&#xff1a; https://code.visualstudio.com/docs/other/dotnet https://d…

html载入hta文件,HTA文件去除html控件认证和接收命令行参数

一是利用hta 去掉htm的控件验证hta1的代码如下&#xff1a;sample html application oneactivexcontrol.htm代码如下&#xff1a;dim filesystem creates the filesystemobjectset filesystem createobject("scripting.filesystemobject")这样就可以去掉htm的本地验…

sql 同一字段合并

select a.* from (select id,Detail,partId(select cast(partId as char(36)), from (select * from table) as b where b.ida.id for xml path()) ,code from table a group by id,Detail,code) a 转载于:https://www.cnblogs.com/chang1/p/6952715.html

android个人日记本论文,手机app移动开发论文-个人心情日记本的设计实现 毕设论文.doc...

手机app移动开发论文-个人心情日记本的设计实现 毕设论文毕业设计(论文)题 目 个人心情日记本的设计与实现专 业 计算机网络技术班 级 网络学 号姓 名指导教师2016 年 1 月 14 日个人心情日记本【摘要】据准确数据调查&#xff0c;全球人口已超过65亿&#xff0c;其中&#xff…

html模板安装到织梦,织梦网站安装教程 织梦模板通用安装图文教程

织梦模版怎么安装使用呢 下面就把我的经验分享给大家解压文件上传到服务器指定根目录输入主域名访问“例如&#xff1a;//www.jb51.net/install”步骤1&#xff1a;勾选同意协议&#xff0c;点击继续按钮。步骤2&#xff1a;检查系统环境和文件权限&#xff0c;确定权限正确才能…

html循环查询的数据,SQL查询遍历数据方法一 [ 临时表 + While循环]

以下以SQL Server 2000中的NorthWind数据库中的Customers表为例,用 临时表 While循环 的方法, 对Customers表中的CompanyName列进行遍历create table #temp(id int identity(1,1),customer nvarchar(50))declare customer nvarchar(50)declare n intdeclare rows i…

atitit.Sealink2000国际海运信息管理系统

atitit.Sealink2000国际海运信息管理系统 操作手冊 文件夹 第一章 使用说明 第一节 系统登录 双击桌面的系统运行程序图标。进入选择数据库的对话框&#xff0c;如图1&#xff0d;1所看到的。选择对应的数据库后&#xff0c;点击【OK】button或在所选数据库上双击。进入登录身份…

金乡高考成绩查询2021,金乡一中举行2021届高三年级一模成绩分析暨表彰大会!现场颁奖...

集思广益查缺补漏&#xff0c;全力以赴保驾护航。为增强备考紧迫性&#xff0c;提高备考有效性&#xff0c;激发师生积极性&#xff0c;2021年3月22日晚&#xff0c;山东省金乡一中2021届高三年级一模成绩分析暨表彰大会&#xff0c;在文峰楼二楼报告厅召开&#xff0c;本次会议…