开始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.mzph.cn/news/56850.shtml

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

相关文章

SAP-FI-会计凭字段替代OBBH

会计凭证替代OBBH 业务&#xff1a;文本必须等于某个字段的值&#xff0c;例如凭证日期 关闭确认功能&#xff0c;输入OBBH 双击“替代”进入功能配置&#xff0c;或者用GGB1&#xff0c;用GGB1的功能更多。 点击行项目&#xff0c;点击“新建替换”保存 点击新建YXL7331,点击…

生态经济学领域里的R语言机器学(数据的收集与清洗、综合建模评价、数据的分析与可视化、数据的空间效应、因果推断等)

近年来&#xff0c;人工智能领域已经取得突破性进展&#xff0c;对经济社会各个领域都产生了重大影响&#xff0c;结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c;目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

Android开发Demo:TextView同时显示图片和文本、同时显示多种颜色

一、预期效果 1、在一个Android TextView控件之中&#xff0c;同时显示文本和图片&#xff0c;如下图所示&#xff0c;文本之间掺夹着一张或多张图片。 2、在一个Android TextView控件之中&#xff0c;同时显示多种颜色&#xff0c;如下图所示&#xff0c;一条文本显示了两种不…

常见API架构介绍

常见API架构介绍 两个服务间进行接口调用&#xff0c;通过调用API的形式进行交互&#xff0c;这是常见CS架构实现的模式&#xff0c;客户端通过调用API即可使用服务端提供的服务。相较于SPI这种模式&#xff0c;就是服务端只规定服务接口&#xff0c;但具体实现交由第三方或者自…

AcWing 898. 数字三角形 (每日一题)

大家好 我是寸铁 希望这篇题解对你有用&#xff0c;麻烦动动手指点个赞或关注&#xff0c;感谢您的关注 注意 像数组下标出现i-1的&#xff0c;在循环的时候从i1开始。 关于0x3f3f3f3f和Integer.MAX_VALUE 0x3f3f3f3f:1061109567 Integer.MAX_VALUE:2147483647 在选用Integ…

(四)k8s实战-服务发现

一、Service 1、配置文件 apiVersion: v1 kind: Service metadata:name: nginx-svclabels:app: nginx-svc spec:ports:- name: http # service 端口配置的名称protocol: TCP # 端口绑定的协议&#xff0c;支持 TCP、UDP、SCTP&#xff0c;默认为 TCPport: 80 # service 自己的…

win10电脑记事本在哪里?电脑记事本如何查看字数?

在日常工作中&#xff0c;我们会遇到许多需要记录的信息和事项&#xff0c;而使用电脑记事本工具可以帮助我们方便地保存、管理这些内容。无论是记录工作会议的要点、制定工作计划&#xff0c;还是记录灵感和创意&#xff0c;电脑记事本都是非常实用的工具。 那么win10电脑记事…

springboot服务注册到Eureka,端口总是默认8080,自己配置端口不生效

这段时间接手了一个公司的老项目&#xff0c;用的是SpringCloud&#xff0c;在我用的时候突然发现有一个服务&#xff0c;注册到Eureka后&#xff0c;界面显示的端口和实际Ribbon调用的实例端口是不一致的&#xff0c;后来我自己写了个端口获取了一下所有的实例信息&#xff0c…

卷积神经网络——中篇【深度学习】【PyTorch】【d2l】

文章目录 5、卷积神经网络5.5、经典卷积神经网络&#xff08;LeNet&#xff09;5.5.1、理论部分5.5.2、代码实现 5.6、深度卷积神经网络&#xff08;AlexNet&#xff09;5.6.1、理论部分5.6.2、代码实现 5.7、使用块的网络&#xff08;VGG&#xff09;5.7.1、理论部分5.7.2、代…

第59步 深度学习图像识别:误判病例分析(TensorFlow)

基于WIN10的64位系统演示 一、写在前面 本期内容对等于机器学习二分类系列的误判病例分析&#xff08;传送门&#xff09;。既然前面的数据可以这么分析&#xff0c;那么图形识别自然也可以。 本期以mobilenet_v2模型为例&#xff0c;因为它建模速度快。 同样&#xff0c;基…

基于LOF算法的异常值检测

目录 LOF算法简介Sklearn官网LOF算法应用实例1Sklearn官网LOF算法应用实例2基于LOF算法鸢尾花数据集异常值检测读取数据构造数据可视化&#xff0c;画出可疑异常点LOF算法 LOF算法简介 LOF异常检测算法是一种基于密度的异常检测算法&#xff0c;基于密度的异常检测算法主要思想…

windows下Mysql安装配置教程

Mysql下载 在官网下载mysql community Server https://dev.mysql.com/downloads/mysql/ 可以选择下载压缩包或者MSI安装程序 使用压缩包安装 MySQL 压缩包安装通常需要以下步骤&#xff1a; 1. 下载 MySQL 安装包 你可以从 MySQL 官网上下载适合你系统的 MySQL 安装包&am…

nvm安装electron开发与编译环境

electron总是安装失败&#xff0c;下面说一下配置办法 下载软件 nvm npmmirror 镜像站 安装nvm 首先最好卸载node&#xff0c;不卸载的话&#xff0c;安装nvm会提示是否由其接管&#xff0c;保险起见还是卸载 下载win中的安装包 配置加速节点nvm node_mirror https://npmmi…

Linux学习之DNS服务的原理

DNS服务一些理论 域名系统&#xff08;Domain Name System&#xff0c;DNS&#xff09;是互联网的核心应用服务&#xff0c;可以通过IP地址查询到域名&#xff0c;也可以通过域名查询到IP地址。 FQDN&#xff08;Full Qualified Domain Name&#xff09;是完全限定域名&#xf…

c#写的端口监听,程序退出后,再次运行提示端口占用,且进程不存在

我用c#写了一个监听29999端口,进程结束后再次启动发现端口被占用&#xff0c;但是运行netstat -ano | findstr 29999找到进程ID后&#xff0c;却没有这个进程 经查询这个监听29999进程虽然没了&#xff0c;但是要找到他的父进程&#xff0c;把父进程关闭了才可以&#xff0c;参…

使用Tampermonkey(篡改猴)向页面注入js脚本

一、Tampermonkey 简单介绍 Tampermonkey是一款浏览器插件&#xff0c;适用于Chrome、Microsoft Edge、Safari、Opera Next 和 Firefox。他允许我们自定义javascript给指定网页添加功能&#xff0c;或修改现有功能。也可以用来辅助调试&#xff0c;或去除网页广告等。 官网地…

【ES6】—【新特性】—Symbol详情

一、一种新的原始数据类型 定义&#xff1a;独一无二的字符串 二、 声明方式 1. 无描述声明 let s1 Symbol() let s2 Symbol() console.log(s1, s2) // Symbol() Symbol() console.log(s1 s2) // falsePS: Symbol 声明的值是独一无二的 2. 有描述的声明 let s1 Symb…

java八股文面试[java基础]——异常

自定义异常&#xff1a; 异常Exception 是指程序运行时&#xff0c; 由于输入错误、网络、程序逻辑等原因导致运行时出现的问题。出现异常时&#xff0c;程序会暂时中断执行&#xff0c;并根据产生异常的原因&#xff0c;创建对应异常类型的异常对象&#xff0c;并抛出给JVM捕…

【C语言进阶(8)】自定义数据类型1:结构体

文章目录 前言Ⅰ 结构体的声明和定义⒈结构体声明⒉结构体定义⒊特殊的声明 Ⅱ 结构体的自引用Ⅲ 结构体初始化Ⅳ 访问结构体成员Ⅴ 结构体内存对齐⒈结构体内存对齐规则⒉分析结构体大小⒊嵌套结构体内存大小⒋内存对齐存在的原因 Ⅵ 修改默认对齐数Ⅶ 结构体传参 前言 C 语言…

围棋与育种

最近因为娃子报名了围棋课&#xff0c;我本着交一次课学两个人的态度&#xff0c;入门围棋&#xff0c;买了些书&#xff0c;听了些课&#xff0c;有所得。学了两个多月&#xff0c;现在6级水平&#xff0c;了解了基本的攻杀技巧&#xff0c;会判断输赢。 下面截图是今天的一盘…