开始MySQL之路—— DDL语法、DML语法、DQL语法基本操作详解

DDL语法

DDL(Data Definition Language) 数据定义语言,该语言部分包括以下内容。

  • 对数据库的常用操作

  • 对表结构的常用操作

  • 修改表结构

对数据库的常用操作

1: 查看当前所有的数据库

show databases;

2:创建数据库

create database if not exists 数据库名称;

create database 数据库名称;

3:选择使用哪一个数据库

use 数据库名称;

4:删除数据库

drop database 数据库名称;

drop database if exists 数据库名称;

5:修改数据库编码

alter database school character set utf8;

对表结构的常用操作-创建表

1:创建表格式

create table [if not exists] 表名(
  字段1 类型[(宽度)] [约束条件] [comment '字段说明'],
  字段2 类型[(宽度)] [约束条件] [comment '字段说明'],
  字段3 类型[(宽度)] [约束条件] [comment '字段说明'],
)[表的一些设置];

创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。

2:数据类型

数据类型是指在创建表的时候为表中字段指定数据类型的,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。

  • 数值类型

  • 日期和时间类型

  • 字符串类型

3:数值类型

create table if not exists student(
   -- 无符号 没有负数
   sid int unsigned,
   name varchar(20),
   gender varchar(20),
   age int,
   birthday date,
   address varchar(20)
);

  • 字符串类型

  • 日期类型

对表结构的其它操作

1:查看当前数据库的所有表

show tables ;

2:查看数据表的创建语句

show create table 数据表名;

3:查看表结构

desc 数据表名;

4:删除表

drop table 数据表表名;

5:修改表结构格式

语法格式

alter  table 表名 add  列名  类型(长度) 【约束】;

例子:

为student表添加一个字段为:系别dept类型为department
alter table student add column dept varchar(20);

6:修改列名和类型

语法格式

修改列名和表名,alter table 表名 change 旧列名 新列名 类型(长度) [约束]

为student表中的dept字段更名为department varchar(30)

alter table student change dept department varchar(30);

7:修改表删除列

语法格式:

alter table 表名 drop 列名;

例如:

# 删除student表中department这列
alter table student drop department;

8:修改表名

语法格式:

rename table 表名 to 新表名;

例如:

# 将表student改名为stu
rename table student to stu

DML语法基本介绍

DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中标的数据几列进行更新。

关键字:

  • 插入Insert

  • 删除delete

  • 更新update

数据插入

  • 语法格式

insert into 表(列名1,列表2,列表3...) values(值1,值2,值3...);// 向表中插入某些
insert into 表 values(值1,值2,值3...);// 向表中插入所有列

例子:

向表中插入所有列

insert into student(sid, name, gender, age, birthday, address,department)
values (1,'tom','男',18,'2000-01-01','郑州','销售部');
​insert into student values (2,'jerry','女',28,'2001-01-01','北京','研发部');

一次性插入多条数据

insert into student(sid, name, gender, age, birthday, address,department)
values (3,'tom1','男',18,'2000-01-01','郑州','销售部'),

           (4,'corky1','女',18,'2001-01-01','北京','法务部');
     
insert into student values (5,'jerry','女',28,'2001-01-01','北京','研发部'),

                                         (6,'yi','男',39,'2002-01-01','上海','研发部');

数据修改

  • 语法格式

update 表名 set 字段名=值,字段名=值...;
update 表名 set 字段名=值,字段名=值... where 条件;

例子:

将所有学生的地址修改为河南
update student  set address='河南';

将id为1的学生的地址修改为河南
update student set address='河南' where id=1;

将id为2的学生的地址修改为北京,成绩修成绩修改为100
update student set address='北京',score=100 where id=2

数据删除

  • 语法格式:

delete from 表名[where 条件];
truncate table 表名 或者truncate 表名

例子:

1:删除sid为3的学生数据
delete from student where sid=3;
2: 删除表所有数据
delete from student;
3:清空表数据
truncate table student;
truncate student;

注意:delete和truncate原理不同,delete只删除内容,而truncate类似于drop table,可以理解为是将整个表删除,然后再创建该表。

实例代码

 

DQL语法概述

  • 概念

    1. 数据库管理系统一个重要功能就是数据查询,数据查询不应只是简单返回数据库中存储的数据,还应该根据需要对数据库进行筛选以及确定数据以什么样的格式显示。

    2. MySQL提供了功能强大,灵活的语句来实现这些操作。

    3. MySQL数据库使用select语句来查询数据。

  • 应用 

基本查询

  • 语法格式

select
[all|distinct]
<目标列的表达式1> [别名],
<目标列的表达式2> [别名]...
from <表名或视图名> [列名],<表名或视图名> [别名]...
[where<条件表达式>]
[group by<列名>
[having<条件表达式>]]
[order by<列名>[asc|desc]]
[limit<数字或者列表>];

  • 简化版语法

select *| 列名 from 表 where 条件

  • 数据准备

创建数据库和表

-- 创建数据库
create database if not exist mydb2;
use mydb2;
-- 创建商品表:
create table product(
pid int primary key auto_increment, -- 商品编号
pname varchar(20) not null , -- 商品名字
price double,  -- 商品价格
category_id varchar(20) -- 商品所属分类
);

  • 添加数据

insert into product values(null,'海尔洗衣机',5000,'c001');
insert into product values(null,'美的冰箱',3000,'c001');
insert into product values(null,'格力空调',5000,'c001');
insert into product values(null,'九阳电饭煲',200,'c001');
insert into product values(null,'啄木鸟衬衣',300,'c002');
insert into product values(null,'恒源祥西裤',800,'c002');
insert into product values(null,'花花公子夹克',440,'c002');
insert into product values(null,'劲霸休闲裤',266,'c002');
insert into product values(null,'海澜之家卫衣',180,'c002');
insert into product values(null,'杰克琼斯运动裤',430,'c002');
insert into product values(null,'兰蔻面霜',300,'c003');
insert into product values(null,'雅诗兰黛精华水',200,'c003');
insert into product values(null,'香奈儿香水',350,'c003');
insert into product values(null,'SK-II神仙水',350,'c003');
insert into product values(null,'资生堂粉底液',180,'c003');
insert into product values(null,'老北京方便面',56,'c004');
insert into product values(null,'良品铺子海带丝',17,'c004');
insert into product values(null,'三只松鼠坚果',88,null);

数据准备

1:创建数据库

create database if not exists mydb2;
use mydb2;

2:创建商品表

create table if not exists product(
   pid int primary key auto_increment,-- 商品编号
   pname varchar(20) ,-- 商品名称
   price double, -- 商品价格
   category_id int -- 商品所属分类
);

​alter table product modify category_id varchar(20);

3:添加数据

insert into product values(null,'海尔洗衣机',5000,'c001');
insert into product values(null,'美的冰箱',3000,'c001');
insert into product values(null,'格力空调',5000,'c001');
insert into product values(null,'九阳电饭煲',200,'c001');
insert into product values(null,'啄木鸟衬衣',300,'c002');
insert into product values(null,'恒源祥西裤',800,'c002');
insert into product values(null,'花花公子夹克',440,'c002');
insert into product values(null,'劲霸休闲裤',266,'c002');
insert into product values(null,'海澜之家卫衣',180,'c002');
insert into product values(null,'杰克琼斯运动裤',430,'c002');
insert into product values(null,'兰蔻面霜',300,'c003');
insert into product values(null,'雅诗兰黛精华水',200,'c003');
insert into product values(null,'香奈儿香水',350,'c003');
insert into product values(null,'SK-II神仙水',350,'c003');
insert into product values(null,'资生堂粉底液',180,'c003');
insert into product values(null,'老北京方便面',56,'c004');
insert into product values(null,'良品铺子海带丝',17,'c004');
insert into product values(null,'三只松鼠坚果',88,null);

  • 简单查询操作

查询所有的商品

select * from product;
select pid,pname,price,category_id from product;

查询商品名和商品价格

select  price,pname from product;

别名查询,使用的关键字是as,(as可以省略的)

表别名
   select * from product as p;
   select * from product p;
   select p.id,u.id from product p,user u;

列表名
   select pname as 商品名,price as 商品价格 from product;

去掉重复值

select distinct price from product;

每一行和每一行都不一样

select distinct * from product;

查询结果是表达式(运算查询):将所有商品加价10元进行展示

select pname,price+10 as 新价格,price from product;

运算符

  • 算数运算符

  • 比较运算符

  • 逻辑运算符

  • 位运算符

位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。

①:算数运算符

算数运算符

select 6+2;
select 6-2;
select 6*2;
select 6/2;
select 6 div 2;
select 6 mod 2;

将所有商品价格+10元
select price+10 as 价格 from product;

将所有商品的价格上调10%
select price*(1+0.1) as 价格 from product;

条件查询

算数运算符

 

代码实现:

查询商品名称为“海尔洗衣机”的商品所有信息
select * from product where pname='海尔洗衣机';

查询价格为800商品
select * from product where price=800;

查询价格不是800商品
select * from product where price <>800;
select * from product where price!=800;
select * from product where not (price=800);

查询商品价格大于等于60元的所有商品信息
select * from product where price >=60;

查询商品价格在200到1000之间所有商品
select * from product where price between 200 and 1000;
select * from product where price >= 200 and price<= 1000;
select * from product where price >= 200 && price<= 1000;

查询商品价格在200或800的所有商品
select * from product where price=200 or price=800;
select * from product where price=200 || price=800;
select * from product where price in(200,800);

查询含有'裤'字的所有商品
select * from product where pname like '%裤%'; -- %任意字符

查询以‘海’开头的所有商品
select * from product where pname like '海%';

查询第二个字为'蔻'的所有商品
select * from product where pname like '_蔻%';

查询category_id为null的商品
select * from product where category_id is null;

查询category_id不为null的商品
select * from product where category_id is not null;

使用Least求取最小值
select LEAST(10,20,30) as small_number;
select least(10,null,30); -- 如果求最小值有一个null值,不会比较直接null

使用greatest求最大值
select greatest(10,20,30) as big_number ;
select greatest(10,null,30) as big_number ;
如果求最大值有一个null值,不会比较直接null

排序查询

聚合查询

 

 

 

聚合函数--null值得处理

分组查询

 

分页查询

Insert into Select

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

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

相关文章

【项目实战典型案例】05.前后端分离的好处(发送调查问卷)

目录 一、背景二、思路三、过程1、主要的业务逻辑2、解决问题的思路 四、总结五、面向对象的好处 一、背景 以下流程图是给用户发送调查问的整体流程&#xff0c;将不必要的业务逻辑放到前端进行处理。这样导致逻辑混乱难以维护。前后端分离的其中一个目的是将功能的样式放在了…

数据结构 - 线性表的顺序存储

一、顺序存储定义&#xff1a; 把逻辑上相邻的数据元素存储在物理上相邻的存储单元中。简言之&#xff0c;逻辑上相邻&#xff0c;物理上也相邻顺序表中&#xff0c;任一元素可以随机存取&#xff08;优点&#xff09; 二、顺序表中元素存储位置的计算 三、顺序表在算法中的实…

RISC-V公测平台发布 · 在SG2042上配置Jupiter+Octave科学计算环境

简介 JupyterHub是一个开源的共享计算平台&#xff0c;它为每个用户管理一个单独的 Jupyter 环境&#xff0c; 可以用于学生班级、企业数据科学小组或科学研究小组。它是一个多用户中心&#xff0c;可以生成、管理和代理多个单用户Jupyter笔记本服务器的实例。 GNU Octave是一…

视频怎么变成动态gif图?一个方法轻松转换

怎么将视频转换成gif动态图片呢&#xff1f;大家在日常看电影、电视剧&#xff0c;刷短视频的时候想要将其做成gif表情包时&#xff0c;应该如何操作呢&#xff1f;这时候&#xff0c;给大家分享一款操作简单无需下载的视频gif转换&#xff08;https://www.gif.cn/&#xff09;…

Spring相关知识

0、Spring的核心就是AOP和IOC IOC&#xff1a; AOP&#xff1a;AOP&#xff08;Aspect Oriented Programming&#xff09;是面向切面编程&#xff0c;它是一种编程思想&#xff0c;是面向对象编程&#xff08;OOP&#xff09;的一种补充。面向对象编程将程序抽象成各个层次的…

华为数通方向HCIP-DataCom H12-821题库(单选题:41-60)

第41题 以下关于IS-IS协议说法错误的是? A、IS-IS协议支持CLNP网络 B、IS-IS 协议支持IP 网络 C、IS-IS 协议的报文直接由数据链路层封装 D、IS-IS协议是运行在AS之间的链路状态协议 答案&#xff1a;D 解析&#xff1a; 关于IS-IS协议的说法错误是D. IS-IS协议是运行在A…

融媒行业落地客户旅程编排,详解数字化用户运营实战

移动互联网时代是流量红利的时代&#xff0c;企业常用低成本的方式进行获客&#xff0c;“增长黑客”的概念大范围传播。与此同时&#xff0c;机构媒体受到传播环境的影响&#xff0c;也开始启动全行业的媒体融合转型。在此背景下&#xff0c;2015 年神策数据成立&#xff0c;核…

Django(6)-django项目自动化测试

Django 应用的测试应该写在应用的 tests.py 文件里。测试系统会自动的在所有以 tests 开头的文件里寻找并执行测试代码。 我们的 polls 应用现在有一个小 bug 需要被修复&#xff1a;我们的要求是如果 Question 是在一天之内发布的&#xff0c; Question.was_published_recentl…

【VRTK4.0运动专题】轴移动AxisMove(真实身体的移动)

文章目录 1、概览2、释义3、属性设置 1、概览 2、释义 “竖直轴”控制的行为“水平轴”控制的行为1Vertical-Slide 滑动Horizontal-Slide 滑动2Vertical-Slide 滑动Horizontal-SmoothRotate 转动3Vertical-Slide 滑动Horizontal-SnapRotate 转动&#xff08;不连续&#xff09…

5G网关如何提升智慧乡村农业生产效率

得益于我国持续推进5G建设&#xff0c;截至今年5月&#xff0c;我国5G基站总数已达284.4万个&#xff0c;覆盖全国所有地级市、县城城区和9成以上的乡镇镇区&#xff0c;实现“镇镇通5G”&#xff0c;全面覆盖了从城市到农村的延伸。 依托5G网络的技术优势&#xff0c;智慧乡村…

Squaretest 1.8.3 安装激活

1. 插件下载 2. 离线安装 3. 插件激活

续1-续3《你的医书是假的!批评付施威的《DDD诊所——聚合过大综合症》

DDD领域驱动设计批评文集 “软件方法建模师”不再考查基础题 《软件方法》各章合集 我写了一篇文章&#xff0c;批评付施威的《DDD诊所——聚合过大综合症》&#xff08;以下简称《DDD诊所》&#xff09;&#xff0c;文章是《你的医书是假的&#xff01;批评付施威的《DDD诊…

vscode调试PHP代码

目录 准备工作ssh的连接以及配置调试 准备工作 1.首先你需要下载一个vscode 2.下载模块 你需要在VScode中去下载我们所需的两个模块PHP Debug以及remote -ssh 3.安装对应版本的xdebug 需要在xdebug的官方去进行分析&#xff0c;选择适合你自己版本的xdebug 去往官方&#x…

ThinkPHP 验证码扩展库的使用,以及多应用模式下,如何自定义验证码校验规则

ThinkPHP 验证码扩展库的使用&#xff0c;以及多应用模式下&#xff0c;如何自定义验证码校验规则 一、安装二、页面使用三、验证码相关配置属性1. 自定义验证码配置2. 自定义验证码&#xff08;一&#xff09;普通验证码3. 自定义验证码&#xff08;二&#xff09;算数验证码4…

MySQL概述,架构原理

一.MySQL简介 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典的MySQL AB公司开发&#xff0c;后被oracle公司收购&#xff0c;MySQL是当下最流行的关系型数据库管理系统之一&#xff0c;在WEB应用方面&#xff0c;MySQL是最好的RDBMS&#xff08;Relational Database Man…

为 LVGL 添加截图功能(lv_100ask_screenshot)

完整的演示视频观看&#xff1a; https://www.bilibili.com/video/BV18r4y1X7MJ 前言 lv_100ask_screenshot 是一个基于 lvgl 的屏幕截图工具。 lv_100ask_screenshot 特性&#xff1a; 可以将LVGL的屏幕对象(全屏)保存为图片文件&#xff1a;lv_scr_act()&#xff0c;laye…

Flask狼书笔记 | 03_模板

文章目录 3 模板3.1 模板基本使用3.2 模板结构组织3.3 模板进阶 3 模板 模板&#xff08;template&#xff09;&#xff1a;包含固定内容和动态部分的可重用文件。Jinja2模板引擎可用于任何纯文本文件。 3.1 模板基本使用 HTML实体&#xff1a;https://dev.w3.org/html5/htm…

基于Ubuntu坏境下的Suricata坏境搭建

目录 Suricata环境安装 第一步、在 Ubuntu 端点安装 Suricata 1、加入Suricata源 2、更新安装包 3、下载SuricataSuricata 第二步、下载并提取新兴威胁 Suricata 规则集 1、在tmp文件夹下载 Suricata 规则集 如果发现未安装curl&#xff0c;使用apt安装即可&#xff1a;…

得帆信息CEO张桐接受21世纪财经深度专访,表示AIGC+低代码将带来生产效率的变革

近日&#xff0c;得帆信息创始人兼CEO张桐接受了21世纪财经深度专访&#xff0c;他表示AIGC低代码的黄金组合&#xff0c;将带来生产效率的变革。 眼下&#xff0c;低代码与AI创新的联接才刚刚开始&#xff0c;也必然会带来生产效率的变革。 在AIGC汹涌的浪潮下&#xff0c;聊…

【软件安装】Python安装详细教程(附安装包)

软件简介 Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计&#xff0c;作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构&#xff0c;还能简单有效地面向对象编程。Python语法和动态类型&#xff0c;以及解释型语言的本质&#xff0c…