Mysql基础(下)

MySQL最基础的增删查改命令 MySQL增删改查 阅读详情

一、SQL语言

1、 概述

SQL:Structure Query Language(结构化查询语言),SQL被美国国家标准局(ANSI)确定为关
系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。
各数据库厂商都支持ISO的SQL标准,普通话
各数据库厂商在标准的基础上做了自己的扩展,方言
SQL 是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,查询内容,更新内容,
并删除条目等操作。
Create, Read, Update, and Delete 通常称为CRUD操作。

2、SQL语句分类

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。
  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)增删改。
  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。
  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)查询。
    注意:sql语句以;结尾
    mysql中的关键字不区分大小写

3、 DDL操作数据库

  • 创建
    CREATE DATABASE语句用于创建新的数据库:
    编码方式:gb2312,utf-8,gbk,iso-8859-1
//create database 数据库名
CREATE DATABASE mydb1;
//create database 数据库名 character set 编码方式
CREATE DATABASE mydb2 character SET GBK;  
//create database 数据库名 set 编码方式 collate 排序规则
CREATE DATABASE mydb3 character SET GBK COLLATE gbk_chinese_ci;
  • 2 查看数据库
    查看当前数据库服务器中的所有数据库
show databases;

查看前面创建的mydb2数据库的定义信息

//show create database 数据库名;
Show CREATE DATABASE mydb2;
  • 3 修改数据库
alter database 数据库名 character set 编码方式
  • 4 删除数据库
    drop database 数据库名
DROP DATABASE mydb3;
  • 5 其他语句
    查看当前使用的数据库
Select database();

切换数据库: use 数据库名

USE mydb2;

4、DDL操作表

CREATE TABLE语句用于创建新表。
语法:

CREATE TABLE 表名(
列名1 数据类型 [约束],
列名2 数据类型 [约束],
列名n 数据类型 [约束]
);

说明:表名,列名是自定义,多列之间使用逗号间隔,最后一列的逗号不能写
[约束] 表示可有可无

  • 其他表操作
    删除表:drop table 表名;
    当前数据库中的所有表:show tables;
    查看表的字段信息:desc 表名;
    增加列:alter table 表名 add 新列名 新的数据类型;
    修改列:alter table 表名 change 旧列名 新列名 新的数据类型
    修改表名:alter table 旧表名 rename 新表名;
    查看表格的创建细节:show create table 表名;

5、DML操作

DML是对表中的数据进行增、删、改的操作。不要与DDL混淆了。
主要包括:INSERT 、UPDATE、 DELETE
小知识:
在mysql中,字符串类型和日期类型都要用单引号括起来。
空值:null

  • 插入操作:INSERT:insert into 表名(列名) values(数据值);
    – 注意:1多列和多个列值之间使用逗号隔开 2.列名要和列值一一对应
    – 非数值的列值两侧需要加单引号
    常见错误: Data too long for column ‘stusex’ at row 1
    – 添加数据的时候可以将列名省略->当给所有列添加数据的时候
    – 此时列值的顺序按照数据表中列的顺序执行
    – 同时添加多行:insert into 表名(列名) values(第一行数据),(第二行数据),(),();
    – 注意:列名与列值的类型、个数、顺序要一一对应。
    参数值不要超出列定义的长度。
    如果插入空值,请使用null
    插入的日期和字符一样,都使用引号括起来。

  • 修改(更新)操作:UPDATE:
    语法:UPDATE 表名 SET 列名1=列值1,列名2=列值2 ... WHERE 列名=值

  • 删除操作:DELETE:
    语法 : DELETE from 表名 【WHERE 列名=值】
    DELETE 删除表中的数据,表结构还在;删除后的数据可以找回
    TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表。
    删除的数据不能找回。执行速度比DELETE快。

6、DCL

  • 创建用户:create user 用户名@指定ip identified by 密码;
  • 指定IP才能登陆:create user 用户名@客户端ip identified by 密码;
  • 用户授权:
grant 权限1,权限2,........,权限n on
数据库名.* to 用户名@IP; 给指定用户授予指定指定数据库指定权限
例:
grant select,insert,update,delete,create on
chaoshi.* to 'test456'@'127.0.0.1';
grant all on . to 用户名@IP 给指定用户授予所有数据库所有权限
例:
grant all on *.* to 'test456'@'127.0.0.1'
  • 用户权限查询:
show grants for 用户名@IP;
例:
show grants for 'root'@'%';
  • 撤销用户权限:
revoke 权限1,权限2,........,权限n on 数据库名.* from 用户名@IP;
例:
REVOKE SELECT ON *.* FROM 'root'@'%' ;
  • 删除用户:
drop user 用户名@IP;
例:
drop user test123@localhost;

7、DQL数据查询

DQL数据查询语言(重要)
数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。
查询返回的结果集是一张虚拟表。
查询关键字:SELECT
语法: SELECT 列名 FROM 表名 【WHERE --> BROUP BY–>HAVING–> ORDER BY】

SELECT  要查询的列名称
FROM  表名称
WHERE 限定条件 /*行条件*/
GROUP BY grouping_columns /*对结果分组*/
HAVING condition /*分组后的行条件*/
ORDER BY sorting_columns /*对结果分组*/
LIMIT offset_start, row_count /*结果限定*/
  • 简单查询
    查询所有列:SELECT * FROM 表名;
    查询指定列:SELECT 列名,列名,列名 FROM 表名;
  • 条件查询
    条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:
    =、!=、<>、<、<=、>、>=; BETWEEN…AND; IN(set); IS NULL; AND;OR; NOT;
例如:查询学号为S_1001,S_1002,S_1003的记录 列名 in (列值1,列值2)
SELECT * FROM stu WHERE sid IN ('S_1001','S_1002','S_1003');
  • 模糊查询
    当想查询姓名中包含a字母的学生时就需要使用模糊查询了。模糊查询需要使用关键字LIKE。
    语法: 列名 like ‘表达式’ //表达式必须是字符串
    通配符:
    _(下划线): 任意一个字符
    %:任意0~n个字符,‘张%’
  • 字段控制查询
    (1)去除重复记录
    去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就存在相同的
    记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记录,需要使用
    DISTINCT:SELECT DISTINCT sal FROM emp;
    (2)查看雇员的月薪与佣金之和
    因为sal和comm两列的类型都是数值类型,所以可以做加运算。如果sal或comm中有一个字段不
    是数值类型,那么会出错。
    comm列有很多记录的值为NULL,因为任何东西与NULL相加结果还是NULL,所以结算结果可能会出
    现NULL。下面使用了把NULL转换成数值0的函数IFNULL:
SELECT *,sal+IFNULL(comm,0) FROM emp;

(3)给列名添加别名
在上面查询中出现列名为sal+IFNULL(comm,0),这很不美观,现在我们给这一列给出一个别名,为

total:`SELECT *, sal+IFNULL(comm,0) AS total FROM emp;`

注:as可以省略

  • 排序
    语法: order by 列名 asc/desc
    //asc 升序 desc 降序 默认不写的话是升序
    多列排序:当前面的列的值相同的时候,才会按照后面的列值进行排序:
 order by 列名,列名 asc/desc
  • 聚合函数
    聚合函数是用来做纵向运算的函数:
    COUNT(列名):统计指定列不为NULL的记录行数;
    MAX(列名):计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
    MIN(列名):计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
    SUM(列名):计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
    AVG(列名):计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

(1) COUNT
当需要纵向统计时可以使用COUNT()。
查询emp表中记录数:SELECT COUNT(*) AS cnt FROM emp;
查询emp表中有佣金的人数:SELECT COUNT(comm) cnt FROM emp;
注意,因为count()函数中给出的是comm列,那么只统计comm列非NULL的行数。

(2) SUM和AVG
当需要纵向求和时使用sum()函数。
查询所有雇员月薪和:SELECT SUM(sal) FROM emp;
统计所有员工平均工资:SELECT AVG(sal) FROM emp;

(3) MAX和MIN
查询最高工资和最低工资:SELECT MAX(sal), MIN(sal) FROM emp;

  • 分组查询
    当需要分组查询时需要使用GROUP BY子句,例如查询每个部门的工资和,这说明要使用部分来分组。
    注意:如果查询语句中有分组操作,则select后面能添加的只能是聚合函数和被分组的列名
    查询每个部门的部门编号和每个部门的工资和:
SELECT deptno, SUM(sal) FROM emp GROUP BY deptno;
  • HAVING子句
    查询工资总和大于9000的部门编号以及工资和:
SELECT deptno, SUM(sal)
FROM emp
GROUP BY deptno
HAVING SUM(sal) > 9000;

注:having与where的区别:
1.having是在分组后对数据进行过滤,where是在分组前对数据进行过滤
2.having后面可以使用分组函数(统计函数)
where后面不可以使用分组函数。
WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分
组;而HAVING是对分组后数据的约束。
补充: 多列分组
– 统计出stu表中每个班级的男女生各多少人
select gradename,gender ,count(*) from stu
group by gradename,gender

  • LIMIT
    LIMIT用来限定查询结果的起始行,以及总行数。
    limit 开始下标,显示条数;//开始下标从0开始
    limit 显示条数;//表示默认从0开始获取数据

1.查询5行记录,起始行从0开始

SELECT * FROM emp LIMIT 0, 5;

注意,起始行从0开始,即第一行开始!
2.查询10行记录,起始行从3开始

SELECT* FROM emp LIMIT 3, 10;

如果一页记录为10条,希望查看第3页记录应该怎么查呢?
l 第一页记录起始行为0,一共查询10行; limit 0,10
l 第二页记录起始行为10,一共查询10行;limit 10,10
l 第三页记录起始行为20,一共查询10行; limit 20,10
pageIndex 页码值 pageSize 每页显示条数

limit  (pageindex-1)*pagesize,pagesize;

查询语句书写顺序:select – from- where- groupby- having- order by-limit
查询语句执行顺序:from - where -group by -having - select - order by-limit

MySql基础一之【了解MySql与DBeaver操作MySql】 本篇为MYSQL数据库基础了解系列的第一篇,为对MySQL的了解与DBeaver操作MySQL; 阅读详情

相关推荐

从‘查理复用’到TM52F1363:深入剖析5脚188数码管的驱动原理与避坑指南

本文深入解析了5脚188数码管的驱动原理,重点介绍了查理复用技术如何通过5个IO引脚高效驱动188段显示,并详细探讨了TM52F1363单片机的寄存器配置与驱动实现。文章还提供了常见问题的解决方案和性能优化技巧,帮助开发者避免实际应用中的各种陷阱。

weixin_29159441的博客 481

入职新单位,如何快速熟悉新系统的数据库表和字段?

先整体浏览数据库 如果给了数据库(测试库)可以直接使用sqlYog链接进去(mysql),然后随意浏览表和表的字段 梳理表 通过info信息,查看表的结构,主键,外键,索引 梳理表之间的关系 梳理字段 查看表字段名称、字段类型、备注 技巧:查看字段的常用值,方便了解其特点 SELECT DISTINCT 要查询的字段 FROM user LIMIT 30 1)DISTINCT 用来排除重复值,有些特定值如下拉框的字段、单选框、多选框,就几个值 2)LIMIT 30,限定返回记录条数,有的数据库表随

长安紫薯的专栏 4016

TC275-AutoSAR实战:Davinci Cfg多核OS配置与调试技巧

本文详细介绍了在TC275芯片上使用Davinci Cfg工具进行AutoSAR多核操作系统配置的实战步骤与调试技巧。内容涵盖从导入arxml文件的常见“坑”开始,到配置Det、EcuC、创建多核OS实例、关联OS应用、创建任务与设置优先级调度,最后分享了利用Det日志、调试器多核视图及处理核间通信与缓存一致性等关键调试方法,旨在帮助开发者高效完成复杂车载ECU软件集成。

weixin_29219189的博客 491

数据库基础命令—增删改查

数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。SELECTCONCAT(str1,str2,...),列1,列2,...FROM表名WHERE条件。查(1)查明确的列SELECT查询的表中的列1,列2,...FROM表名WHERE条件。SELECT*FROM表1JOIN表2ON表1(从表).外键=表2(主表).主键;SELECT*FROM表1,表2WHERE表1(从表).外键=表2(主表).主键;...

小趴菜的博客 2725

超实用!用ChimeraX对AlphaFold 结果可视化(中): 蛋白结构美化篇

而一般需要的背景颜色是无色(白色),有三种方法可以更改背景颜色,这里我们介绍两种方法,第三种在下一小节中讲解。如果想选中蛋白链中的某一结构区域或者某些位点,可以用Ctrl+Shift+鼠标左键,或在软件窗口中点击。在这个窗口中可以对蛋白的主链、侧链、表面等颜色进行修改,只用在。,即可在右下角看到我们蛋白的序列信息,在这里面直接用鼠标选择要选择的结构域。就会有更多的颜色供我们选择,如果有特定的色号还可以在这个界面继续选择。后面的颜色(②),就可以选择想要的任何背景颜色(③)。就可以选择软件推荐的常用颜色。

m0_63153079的博客 5490

Optisystem软件与Matlab软件的联合数据读取

目录 Matlab软件程序编写 Optisystem软件的连接与设置 数据读取结果 Matlab软件程序编写 利用Matlab软件按照下图编写程序,保存为getdata.m文件。 OutputPort1 =InputPort1; fileID=fopen('OSAdata.txt','wt'); fprintf(fileID,'%f\n',OutputPort1.Sampled.Signal); fclose(fileID); Optisystem软件的连接与设置 (以基于线性插值法

Vivian_Chen_的博客 4855

【2023】数据库sql增删改查执行命令汇总(配合详细举例)

关键字: distinct。 只有当所有列的数据都一样,才去重。 语法:select distinct 列名 from 表名; #查询当前有哪些工作岗位。 select distinct job from emp;

weixin_52315708的博客 3108

Android TV远程调试全攻略:从开发者模式开启到ADB连接(附常见问题排查)

本文提供了一份详尽的Android TV远程调试实战指南,涵盖从开启开发者模式、配置网络ADB连接到高效调试与深度排错的完整流程。文章重点解析了通过Wi-Fi进行远程调试的核心步骤,并针对常见的连接失败、授权问题等提供了系统性的解决方案,旨在帮助开发者为Android TV应用开发构建稳定高效的调试环境。

1347

数据库的增删改查

44行修改配置为0.0.0.0。保存退出,重启MySQL。

qq_59605320的博客 3184

最速下降法、牛顿法、拟牛顿法,Python实现高维二次目标函数优化

原理什么的就不说了,只有代码。。。 十元二次目标函数,求极小值点。 1.最速下降法 import random import numpy as np import matplotlib.pyplot as plt from sympy import * def goldsteinsearch(f, df, d, x, alpham, rho, t): flag = 0 a = 0 b = alpham fk = f(x) gk = df(x)

我乐飞的技术博客 2244

AI颠覆市场调研:生成式智能体如何重构商业决策?

AI正在将市场调研从"成本中心"转变为"战略武器"。当企业能够用生成式智能体实时模拟百万级虚拟用户时,传统调研的样本偏差、时间滞后、成本高昂等问题将不复存在。对于开发者而言,这不仅是技术的狂欢,更是参与商业规则重构的历史机遇。行动建议立即体验Simile/Aaru的智能体平台,验证虚拟样本效果参与LLM持续性记忆架构的开源项目(如Memory Llama)关注AI调研API的标准化进程(如Hugging Face的Market Research Toolkit)

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 617

mysql基础学习

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。mysql数据库通过sql来操作数据库 mysql中的注释符 @ # -- (杠杠空格) (注入中经常用到的) /* ..... */ /*! .... */ information_schema mysql 5.0版本之后产生了一个虚拟数据库informat...

渗透之路,攻防之间皆学问 7934

手把手教你用ESP32-S3打造智能聊天机器人-立创实战派

本文将详细介绍如何利用立创ESP32-S3开发板,烧录小智AI程序,快速实现一个功能强大的聊天机器人。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 9925

MySQL 基础命令

MySQL 是一种开源的关系型数据库管理系统(RDBMS),由 Oracle Corporation 开发和维护。它使用结构化查询语言(SQL)进行数据库管理和操作。MySQL 是最流行的数据库系统之一,尤其适用于 Web 应用程序和小型到中型企业的数据库需求。

FHY26828的博客 1567

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【MYSQL】基础知识

错误提示。 数据库的操作:创建数据库、删除数据库 常用数据类型 表的操作:创建表、删除表

追当今朝天骄,忆顾往昔豪杰!!! 9454

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

MySQL基础

数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。MySQL是一个关系型数据库管理系统前世:瑞典MySQL AB公司今生:属于Oracle旗下产品。

qq_62892403的博客 1718

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【MySQL进阶之路】MySQL基础——从零认识MySQL

MySQL是一种网络服务,有客户端和服务端。可以用 which命令查看路径。客户端一般在路径下,服务端一般在(以d结尾的进程一般都是守护进程)路径下。而数据存放的路径可以在/etc/my.cnf配置文件中配置,默认是MySQL是在文件系统的基础上搭建的一套完整的网络服务,用于高效的存储,管理数据。那存储数据用文件就可以了,为什么还要弄个数据库?单纯用文件管理数据有如下缺点文件的安全性并不是很可靠文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便。

2301_79796701的博客 4375

MySQL基础总结

MySQL基础总结

java程序鱼的博客 1万+

【MySQL】MySQL入门基础

MySQL基础入门知识的讲解

大三小白C++进阶之路 1万+

【MySQL】基础入门篇

想必大家在学校也学习过MySQL,可能学的懵懵懂懂,这个板块我们从入门开始,从最新的安装MySQL到学习MySQL语句,一步一步开始,一切都是新的,新的板块新的开始,大家一起努力,一起进步!!!二是一个有组织的集合,用于存储和管理数据的系统。它是一个软件系统,被设计用来存储、检索和管理数据,并提供数据的快速访问和处理。数据库可以被看作是一种特殊的文件系统,但与传统的文件系统不同的是:它能够更加高效的存储和管理大量结构化数据。

AAlykk的博客 2293

【MySQL实战45讲笔记】基础篇——MySQL 的基础架构

我们由一个问题引入对MySQL 基础架构的学习:一条SQL查询语句是如何执行的?

m0_60511809的博客 978

【MySQL架构】MySQL基础架构

MySQL基础架构:连接器、分析器、优化器、执行器、存储引擎

scj1022的博客 1894

MySQL基础篇

在这一章节,我们主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。1.1 数据库相关概念在这一部分,我们先来讲解三个概念:数据库、数据库管理系统、SQLOracle:大型的收费数据库,Oracle公司产品,价格昂贵。MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。

拧之的博客 1482

MySQL基础命令操作

但是有时候我们需要获取表中字段含有某个字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。DDL:数据定义语言,主要针对的是库和表的CRUD(create, read, update, delete)语句。标准的数据库的操作语言,不区分数据库。如果我们想在 MySQL 数据表中读取指定的数据,WHERE 子句是非常有用的。DCL:数据控制语言,主要针对的用户权限,表和库的权限,事务控制等等。如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。主要存储和管理数据。

m0_61570062的博客 879

MySQL基础语法

目录1.简介2.基础语法 1.简介 MySQL 是一种开放源代码的轻量级关系型数据库。 开放源代码:用户可阅读、修改代码。 轻量级:占用资源少,处理数据快速高效。 关系型:数据间为二维关系。 数据库:(Database)是按照数据结构来组织、存储和管理数据的仓库。 2.基础语法 ...

M-oog 的博客 634

MySQL基础知识

清屏:cls MySQL基础 启动MySQL net start mysql 关闭MySQL net stop mysql 登录 mysql -uroot -p 退出 mysql&gt;exit; mysql&gt;quit; mysql&gt;\p; 显示当前服务器...

CBeann的博客 9676
上一篇: Mysql基础(上)
下一篇: Mysql高级(上)
githubbbb
博客等级 码龄7年 2粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值