Mysql学习之——增删改查语句

这篇具有很好参考价值的文章主要介绍了Mysql学习之——增删改查语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Mysql的增删改查

一、数据库操作

1.查询所有数据库

show databases;

2.使用某个数据库

如果我已经通过show databases知道有a、b、c三个数据库,那我想用数据库a怎么办呢?

use 数据库名;
eg:use a;

3.查询当前使用的数据库

如果我不知道当前数据库,所以想知道这个数据库是哪一个,我该用什么语句呢?0

select database();

4.创建数据库

如果我没有这个数据库,我现在想创建这个database,可以使用:

create database[if not exists] 数据库名 [default charset 字符集][collate 排序规则];

最常见的应用就是,如果一个数据库a不存在,则创建这个数据库,且设置字符集为utf8:

create database a if not exists charset=utf8

5.删除数据库

等到一系列操作做完之后,我想删除这个数据库a,要用什么操作?

drop database [if exists] 数据库名 ;
eg:drop database if exists a;

二、表操作

2.1 表的增删改操作

假如我们通过

·create database if not exists a charset=utf8;#创建数据库a
·use a;#使用数据库a
·select database;#查看当前使用的数据库,确认是在使用数据库a

通过这些操作我们已经创建了一个数据库a,并且在当前数据库了。

但里面还没有表格什么的,没有表格算什么数据库?所以我肯定想创建表,查询表、修改表,删除表。

那接下来就一一看看这些操作吧!

1.创建表格

create table 表名(
	字段 字段类型 COMMENT 字段注释,
	字段 字段类型 COMMENT 字段注释,
	字段 字段类型 COMMENT 字段注释
)[COMMENT 表注释];

eg:create table Person(
	name char(20)    comment '姓名',
	sex    char(2)   comment '性别',
	age    int       comment '年龄'
)

ps:最后一个字段不要逗号,且上述代码中用[]框起来的表示可以有也可以没有,但[]这个符号使用的时候不要加上去哦。

2.修改表格

1)添加字段
如果最开始没有加字段什么的,我现在想增加字段怎么办呢?

ALTER TABLE 表名 ADD 字段名 字段类型 【comment 字段注释】【约束】

eg:alter table a add nickname varchar(20) comment ‘昵称’;

2)修改字段类型(modify )
如果数据库 a中的表Person中的字段name我想修改一下字段类型,改为varchar(20),可以使用以下操作:

alter table 表名 modify 字段名 新字段类型(长度)

3)修改字段名和字段类型(change)
如果这个表中的某个字段名字和类型都不对,那么我们就直接change一下:

alter table 表名 change 旧字段名 新字段名 新字段类型 新字段类型 [comment 注释][约束];
eg:ALTER TABLE Person CHANGE name studentname VARCHAR(20) COMMENT ' 学生姓名';

PS:数据库不区分大小写,缺失有有点乱哈!

4)删除字段
如果这个字段我不想用呢?我如果想要删除该怎么做呢?

ALTER TABLE 表名 DROP 字段名;

eg:ALTER TABLE Person DROP name;

3.删除表格

最后表格不想要了,怎么删除表格呢?

DROP TABLE [IF EXISTS] 表名;
eg: DROP TABLE  IF EXISTES Person;

三 数据操作(DML)

如果我有了数据库,数据库中有表格,那么怎么操作数据库中的数据呢?想要增加数据,修改数据吗,删除数据,以及最最最重要的查询数据(又tm给我去看视频,学习啊,去给我学习啊!)

3.1 添加数据(INSERT)

给某几个字段添加数据(没有添加的自然就是null了)

INSERT INTO 表名 (字段1,字段2,...)VALUES	(value1,value2,...);

给所有字段添加数据

INSERT INTO 表名 VALUES(value1,value2,...);

批量添加数据
INSERT INTO 表名 (字段1,字段2,…)VALUES (value1,value2,…),
(value1,value2,…),

(value1,value2,…) ;

3.2 修改数据(UPDATE)

更新某些字段的信息

UPDATE 表名 SET 字段1=value1,字段2=value2,字段3=value3 where 条件;

这个其实已经涉及到查询了,where,where玩的花了我现在还真是把握不住啊!

3.3 删除数据(DELETE)

删除指定数据:

DELETE FROM 表名 WHERE 条件;

删除所有数据

DELETE FROM 表名;

还有一个删除所有数据的但是要慎用的:

TRUNCATE TABLE 表名;

我猜TRUNCATE 还可以TRUNCATE DATABASE 数据库名;

3.4 查询数据(SELECT)

大招来了大招了,查询数据,查询数据的时候条件是非常复杂的。
大概可以分解成

SELECT
	字段列表
FROM
	表名称
WHERE
	条件列表
GROUP BY
	分组字段列表
HAVING
	分组后的条件列表
ORDER BY
	排序字段列表
LIMIT
	分页参数

上面是最基础的,比较复杂的是设置一些别名

SELECT 
	字段1 [AS 别名1],字段2 [AS 别名2],...
FROM
	表名
	;

当然别名也可以直接写不用这个AS

SELECT
	字段1 [别名1],字段2 [ 别名2],...
FROM
	表名
	;

还有不准人家重复的用DISTINCT

	SELECT
		DISTINCT 字段列表
	FROM
		表名
	;

ps:这个DISTINCT后面还要继续学啊!他的用法可不像表面上那么简单。

从我认为比较难的开始入手吧!

一)条件列表

条件列表我觉得最难的就是很多,但是可以分类记忆,比如在数值和字符串是最长使用的,那我们就按照最长使用的来搞。

1)数值类

数值最常见的就是大于 小于 大于等于 小于等于 在什么范围内啊!
再复杂一点就是数值的函数值大于 小于 等于 大于等于 小于等于 在什么范围内啊!
先看最常见的大于 小于 等于 大于等于 小于等于(我好啰嗦啊哈哈哈)
大于小于等于就是常用的那些符号啊!不用记了,不一样的是不等于,在什么连续范围内,在离散范围内,为空,在模糊范围内

比较运算符 功能 备注 示例
!=或<> 不等于 得认识<>,用的时候可以常用!= SELECT * FROM Person WHERE name<>‘张三’;
BETWEEN AND 在连续范围[A,B]内 包括边界 SELECT * FROM Person WHERE age BETWEEN 20 AND 30;
IN(…) 在列举的这些值内 这个可以用数字,但应该是IN(另一个表的筛选结果)当然筛选结果只能有一个字段 SELECT * FROM Person WHERE name IN (‘张三’,‘李四’,‘王五’);
IS NULL 为空 那不得学一下哪些字段可以设为NULL SELECT* FROM Person WHERE sex IS NULL;
like 占位符 模糊匹配 (_匹配单个字符,%匹配任意个字符,[]是正则化花表达式) 找出名字中第一个字是刘的:SELECT * FROM Person WHERE name like ‘刘%’;找出名字是x薇薇的:SELECT * FROM Person WHERE name like ‘_薇薇’;
逻辑运算符 功能 备注 示例
AND && 与运算 SELECT * FROM Person WHERE 条件1 AND 条件2;
OR 或运算
NOT ! 非运算

关于模糊查询中用到正则化表达式的可以先看看这个:https://blog.csdn.net/fanzhi16/article/details/88287745?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169398882416800211537103%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=169398882416800211537103&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-88287745-null-null.142v93control&utm_term=%E6%95%B0%E6%8D%AE%E5%BA%93%E6%A8%A1%E7%B3%8A%E5%8C%B9%E9%85%8D&spm=1018.2226.3001.4187

欸,怎么看下来好像不止用了数值的东西啊。

2)数值的函数类(聚合函数 and 普通函数)
函数 功能 备注 示例
COUNT 统计数量 查询年龄为20的人数:SELECT COUNT(id) FROM Person WHERE
MAX 最大值
MIN 最小值
AVG 平均值
SUM 求和

上面这个是聚合函数,聚合函数是针对每一列的,对一个字段进行聚合,但是如果我们想求几个字段的平均值我们可以直接用加号。
比如有一张学生表Student (学生姓名,语文成绩,数学成绩),查询平均成绩大于60分的所有学生。

SELECT *,(语文成绩+数学成绩)/2 AVRAGE_SCORE FROM Student;

二)分组查询(GROUP BY)

SELECT * FROM 表名 WHERE 条件字段 GROUP BY 分组字段 HAVING 分组后的条件字段;

分组字段我觉得用的时候可以拿一个例子来思考一下就出来的。
比如STUDENT表数据长这样:

	张三 男 20
	李四 女 15
	张武 男 27
	李六 女 18

那如果用

SELECT GENDER,(男表或女表的聚合函数) FROM STUDENT GROUP BY gender;

就可以分成男表和女表;

男表是:
	张三 男 20
	张武 男 27
女表是:
	李四 女 15
	李六 女 18

注意:GROUP BY 前面的SELECT一定要包含分组字段或者分组字段的聚合函数,没有办法把所有的字段(原表的所有字段)都显示出来。

三)排序查询(ORDER BY)

排序查询只需要记住ASC(默认)和DESC(降序非默认)

SELECT * FROM emp ORDER BY 字段1 排序方式1 ,字段2 排序方式2...;

只有当第一个字段的排序一致的时候才会按第二个字段的排序方式进行排序

四) 分页查询 (LIMIT)

SELECT * FROM emp LIMIT 	起始索引,结束索引;

ps:如果其实索引为0,也可以直接文章来源地址https://www.toymoban.com/news/detail-697608.html

SELECT * FROM emp LIMIT 查询条数;  #就可以查询到前10条了。

到了这里,关于Mysql学习之——增删改查语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库增删改查及聚合查询SQL语句学习汇总

    目录 数据库增删改查SQL语句 MySQL数据库指令 1.查询数据库 2.创建数据库 3.删除数据库 4.选择数据库 创建表table   查看所有表 创建表 查看指定表的结构 删除表 数据库命令进行注释 增删改查(CRUD)详细说明 增加 SQL库提供了关于时间的函数:now()  查询 查询表作列与列之间进

    2024年02月09日
    浏览(66)
  • 【MySQL】 MySQL表的增删改查(基础)

    本节目标: CRUD : Create, Retrieve,Update,Delete 新增数据 查询数据 修改数据 删除数据 注释:在SQL中可以使用“–空格+描述”来表示注释说明 CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写 语法格式: 创建案例如下: 代码如下: 结果如下: 代

    2024年02月07日
    浏览(38)
  • MySQL--MySQL表的增删改查(进阶)

    check 聚合查找 count sum average max min 我们这里先构造出多张表 查询lisi同学的成绩 来自student和来自score c 增加名字这一条件 查询所有同学的总成绩以及个人信息 来自score和来自student 查询所有同学的各科成绩以及个人信息 来自student,course和score 简化后的结果如下: 除了上述的

    2024年02月09日
    浏览(31)
  • MySQL--MySQL表的增删改查(基础)

    排序:ORDER BY 语法: – ASC 为升序(从小到大) – DESC 为降序(从大到小) – 默认为 ASC SELECT … FROM table_name [WHERE …] ORDER BY column [ASC|DESC], […]; *** update

    2024年02月09日
    浏览(27)
  • 【MySQL】 MySQL的增删改查(进阶)--壹

    本节目标: 数据库约束 表的关系 NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 DEFAULT - 规定没有给列赋值时的默认值。 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个

    2024年02月07日
    浏览(22)
  • 【MySQL】 MySQL的增删改查(进阶)--贰

    本节目标: 新增 查询 插入查询结果 在一张表中插入另一张表的查询结果 语法为: 举个例子,我们有这样一个student表如下: 接下来我们创建一张用户表,设计有name姓名、email邮箱、sex性别、mobile手机号字段。 需要把已有的学生数据复制进来,可以复制的字段为name、qq_ma

    2024年02月08日
    浏览(20)
  • 【MySQL学习】MySQL表的增删改查操作

    MySQL的 CURD 是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD,他的作用是用于处理数据的基本原子操作。CURD 分别代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。 新增数据的语法: 案例: 插入两条记录,value_list 数量必须

    2024年02月02日
    浏览(37)
  • 【MySQL】MySQL表的增删改查(CRUD)

    ✨个人主页:bit me👇 ✨当前专栏:MySQL数据库👇 ✨算法专栏:算法基础👇 ✨每日一语:生命久如暗室,不碍朝歌暮诗   CRUD : Create,Retrieve,Update,Delete 新增数据 查询数据 修改数据 删除数据 MySQL的工作就是组织管理数据,先保存,保存好了后好进行增删改查 增删改查的

    2024年02月02日
    浏览(40)
  • Mysql的增删改查

      insert into 表名(列名1,列名2,列名3,.....列名n)values(值,值,值,....值) insert into 表名 set 列=值,set 列=值...set 列=值 delete from 表名 delete from 表名 where 列=值 update 表名 set 列=值,列=值,,,列=值 where 列=值 注意: 这里只有一个set,update对应的set只有一个,逗号后边直

    2024年02月15日
    浏览(32)
  • Mysql增删改查(自用)

    SQL语句可以单行或者多行书写,以分号结尾 MySQL不区分大小写,单数建议使用大写 注释使用, 单行注释:-- 或者 # 多行注释: /* 注释内容 */ 数据定义语言,定义数据库对象(数据库、表、字段) 2.1 数据库操作 语句 说明 show databases; 查询所有数据库 select database(); 查询当

    2023年04月25日
    浏览(6)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包