开始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.mfbz.cn/a/92320.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回归预测 | MATLAB实现SSA-ELM麻雀搜索算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SSA-ELM麻雀搜索算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现SSA-ELM麻雀搜索算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基…

2000-2021年上市公司绿色投资环保投资与营业收入之比数据(原始数据+计算代码+计算结果)

2000-2021年上市公司绿色投资环保投资与营业收入之比数据&#xff08;原始数据计算代码计算结果&#xff09; 1、时间&#xff1a;2000-2021年 2、来源&#xff1a;上市公司年报 3、指标&#xff1a;证券代码、企业名称、年份、管理费用环保投资、管理费用环保投资/营业收入…

第 360 场 LeetCode 周赛题解

A 距离原点最远的点 串中的 “_” 处要么都向左走要么都向右走 class Solution { public:int furthestDistanceFromOrigin(string moves) {int t 0;for (auto x: moves)if (x ! R)t--;elset;int res abs(t);t 0;for (auto x: moves)if (x ! L)t;elset--;res max(res, abs(t…

0821|C++day1 初步认识C++

一、思维导图 二、知识点回顾 【1】QT软件的使用 1&#xff09;创建文件 创建文件时&#xff0c;文件的路径一定是全英文 2&#xff09;修改编码 工具--->选项--->行为--->默认编码&#xff1a;system 【2】C和C的区别 C又叫C plus plus&#xff0c;C是对C的扩充&…

基于React实现日历组件详细教程

前言 日历组件是常见的日期时间相关的组件&#xff0c;围绕日历组件设计师做出过各种尝试&#xff0c;展示的形式也是五花八门。但是对于前端开发者来讲&#xff0c;主要我们能够掌握核心思路&#xff0c;不管多么奇葩的设计我们都能够把它做出来。 本文将详细分析如何渲染一…

WPF基础入门-Class2-样式

WPF基础入门 Class2&#xff1a;样式 1、内联样式&#xff1a;优先度最高 <Grid><StackPanel><!--内联样式优先度高--><Button Background"Red" Height"10" Width"100"FontSize"20"Content"SB">…

Fabric.js 元素选中状态的事件与样式

本文简介 带尬猴&#xff01; 你是否在使用 Fabric.js 时希望能在选中元素后自定义元素样式或选框&#xff08;控制角和辅助线&#xff09;的样式&#xff1f; 如果是的话&#xff0c;可以放心往下读。 本文将手把脚和你一起过一遍 Fabric.js 在对象元素选中后常用的样式设置…

vue2.6及以下版本导入 TDesign UI组件库

TDesign 官方文档:https://tdesign.tencent.com/vue/components/button 我们先打开一个普通的vue项目 然后 如果你是 vue 2.6 或者 低于 2.6 在终端执行 npm i tdesign-vue如果你是 2.7 或者更高 执行 npm i tdesign-vuenaruto这里 我们 以 2.6为例 因为大部分人 用vue2 都是…

【TI毫米波雷达笔记】UART串口外设配置及驱动(以IWR6843AOP为例)

【TI毫米波雷达笔记】UART串口外设初始化配置及驱动&#xff08;以IWR6843AOP为例&#xff09; 最基本的工程建立好以后 需要给SOC进行初始化配置 int main (void) {//刷一下内存memset ((void *)L3_RAM_Buf, 0, sizeof(L3_RAM_Buf));int32_t errCode; //存放SOC初…

软件设计师学习笔记5-流水线技术

目录 1.流水线的概念 2.流水线计算 2.1流水线周期及执行时间 2.2流水线吞吐量 1.流水线的概念 考点&#xff1a;相关参数计算&#xff1a;流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率(后两者的计算中级不考) 流水线是指在程序执行时多条指令重叠进行操作…

Tomcat10安装及配置教程win11

Tomcat10安装及配置教程win11 Tomcat下载链接 Tomcat官网 Tomcat官网地址 https://tomcat.apache.org/ Tomcat的版本列表 点击上图中左侧红框内**Which version?**即可得下图 下载Tomcat 点击上图中左侧红框内红框内tomcat版本即可得下图&#xff0c;下载zip包 解压zip包…

网络安全基础知识

网络安全 1、网络安全的介绍 1.1 什么是网络安全 1.2 什么是信息系统 1.3 信息系统安全三要素 1.4 什么是网络空间安全 fireye攻击地图:https:www.fireeye.com/cyber-map/threat-map.html/. https://cybermap.kaspersky.com 1.5 安全事件分类 1.6 安全事件 勒索加密是黑客攻…

Scikit-Learn中的特征选择和特征提取详解

概要 机器学习在现代技术中扮演着越来越重要的角色。不论是在商业界还是科学领域&#xff0c;机器学习都被广泛地应用。在机器学习的过程中&#xff0c;我们需要从原始数据中提取出有用的特征&#xff0c;以便训练出好的模型。但是&#xff0c;如何选择最佳的特征是一个关键问…

解决MASM32代码汇编出错: error A2181: initializer must be a string or single item

最近用MASM32编程更新SysInfo&#xff0c;增加对IPv6连接信息的收集&#xff0c;使用到了 typedef struct _MIB_TCP6ROW_OWNER_MODULE {UCHAR ucLocalAddr[16];DWORD dwLocalScopeId;DWORD dwLocalPort;UCHAR ucRemoteAddr[16];DWORD …

【腾讯云 TDSQL-C Serverless 产品测评】“橡皮筋“一样的数据库『MySQL高压篇』

【腾讯云 TDSQL-C Serverless 产品测评】"橡皮筋"一样的数据库 活动介绍服务一览何为TDSQL &#xff1f;Serverless 似曾相识&#xff1f; 降本增效&#xff0c;不再口号&#xff1f;动手环节 --- "压力"山大实验前瞻稍作简介资源扩缩范围&#xff08;CCU&…

飞天使-k8s基础组件分析-服务与ingress

文章目录 服务的介绍服务代理服务发现连接集群外服务服务发布无头服务 服务&#xff0c;pod和dns的关系端口转发通过expose 暴露应用服务案例INGRESSMetalLB使用参考文档 服务的介绍 服务的作用是啥&#xff1f; 提供外部调用&#xff0c;保证podip的真实性看看服务解决了什么…

实时同步ES技术选型:Mysql+Canal+Adapter+ES+Kibana

基于之前的文章&#xff0c;精简操作而来 让ELK在同一个docker网络下通过名字直接访问Ubuntu服务器ELK部署与实践使用 Docker 部署 canal 服务实现MySQL和ES实时同步Docker部署ES服务&#xff0c;canal全量同步的时候内存爆炸&#xff0c;ES/Canal Adapter自动关闭&#xff0c…

Modbus转Profinet网关连接三菱变频器博图快速配置

本案例将分享如何使用兴达易控的modbus转profinet网关&#xff08;XD-MDPN100&#xff09;来连接西门子1200系列plc&#xff0c;并实现三菱变频器的485通讯兼容转modbusTCP通信。通过在博图中进行配置&#xff0c;我们可以实现设备之间的连接和通信。 首先&#xff0c;我们需要…

《QT+PCL 第五章》点云特征-PFH

QT增加点云特征PFH 代码用法代码 #include <pcl/io/pcd_io.h> #include <pcl/features/normal_3d.h> #include <pcl/features/pfh.h>int main

自动驾驶感知传感器标定安装说明

1. 概述 本标定程序为整合现开发的高速车所有标定模块,可实现相机内参标定和激光、相机、前向毫米波 至车辆后轴中心标定,标定参数串联传递并提供可视化工具验证各个模块标定精度。整体标定流程如下,标定顺序为下图前标0-->1-->2-->3,相同编号标定顺序没有强制要求…