MySQL增删改查操作基础

1. 数据库基础操作

1.1 显示当前数据库

show databases;

1.2 创建数据库

create database (if not exists)数据库名;

使用 if not exists 判断系统是否存在当前欲创建的数据库,如果存在就不创建;

1.3 使用数据库

use 数据库名;

1.4 删除数据库

drop database(if exists) 数据库名;

数据库删除后,里面的表和数据会全部被删除,这是一个比较危险的操作,要尽量避免;

2. 表操作

2.1 查看表结构

desc 表名;
在这里插入图片描述

2.2 创建表

create table book(
	--注释:增加字段说明
	name varchar(20),
	author varchar(20),
	price int(11),
	type varchar(50)
);

这里需要注意的是,与常见的编程语言不同,SQL中创建表是变量名在前,数据类型在后;

2.3 删除表

drop table(if exists) book;
删除表会丢失表中的数据信息,与删除数据库操作相比同样危险;

3. 新增(Create)

insert into 表名(指定列) values (values_list...);

2.1 单行数据插入

第一条 insert 是全列插入,每一个字段都赋了值,此时注意values_list的数量和顺序必须要和定义表时的数量顺序一致;
第二条 insert 是指定列插入,只对指定列赋值,而第四个字段 type 没有指定,所以默认为NULL
在这里插入图片描述

2.2 多行数据插入

全列插入 多行数据:在这里插入图片描述
指定列插入 多行数据:
在这里插入图片描述

4. 删除(Delete)

delete from 表名 where ...;
如果不指定where条件则会删除全部数据,也是一个危险操作。在这里插入图片描述

Q:删除表中数据和删除表的两个操作的区别?

举个例子,我们用零食来表示表中的数据,用箱子来表示表。

  • 删除表:drop table [表名];
    表示删除这个表,表中的记录以及表都不存在了。可以理解为零食和箱子都没有了。
  • 删除数据:delete from 表名 where ...;;
    表示删除表中的数据,但表还在。好比把箱子中的零食全部倒出去了,但是箱子还在。

5. 修改(Update)

update 表名 set 表达式 where ...;
下面我们看几个例子。

  • 将申论的作者修改为 奋笔考公;
    在这里插入图片描述
  • 将name = 1这本书的价格改为90,type类型改为教材;
    在这里插入图片描述

Q:select和update的区别?

select查询语句中我们讲过可以将查询到的结果以为别名显示在临时表中,这段数据并没有存储在相关表中,只是临时做个查看,可以理解为一次性操作;而update是真实修改了相关表中的数据,在后续对该表进行操作都是在已经修改的基础上进行的。

6. 查询(Retrieve)

5.1 全列查询

select * from 表名;
在这里插入图片描述
但是通常情况下不建议使用全列查询,因为查询的列越多,意味着需要传输的数据量越大;

5.2 指定列查询

select 列名... from 表名;
在这里插入图片描述

5.3 查询字段为表达式

select 表达式... from 表名;
在这里插入图片描述
此时 price+10 这个查询结果只是一个临时表,不会影响磁盘的数据,实际上数据并没有发生改变;

5.4 别名查询

select 表达式 as 别名 from 表名;

将查询到的结果以别名显示在临时表中;在这里插入图片描述

5.5 去重查询

select distinct 列名 from 表名;
使用distinct关键字对指定列数据进行去重操作,同样也可以指定多个列操作;在这里插入图片描述

5.6 排序查询

select 列名 from 表名 order by ...;
使用distinct关键字对指定列数据进行去重操作,同样也可以指定多个列操作;

在这里插入图片描述
ASC表示升序排列
DESC表示降序排列,其中,系统默认为升序
在这里插入图片描述
可以同时对多个字段进行排序查询,排序优先级按照编写顺序执行,先按照第一列排序,第一列相同,再按照第二列排序,依次往后执行;
在这里插入图片描述

5.7 条件查询where

常见运算符及其说明总结

运算符说明
=相等,NULL= NULL —> NULL
<=>相等,NULL<=> NULL —> 1
between a and b范围匹配,a <= value <= b --> 1
in如果时option中的任一个 --> 1
NULL是NULL
IS NOT NULL不是NULL
like模糊匹配,%表示匹配任意多个字符(包含0个字符); _表示匹配任意一个字符
and多个条件表达式都为1 --> 1
or任意一个条件表达式为1 --> 1
not条件为1 --> 0
  • 查询价格在60以上或40以下,并且书名是西游记的所有书籍信息:
    在这里插入图片描述
  • 查询价格在40到60之间的所有书籍信息:
    在这里插入图片描述
  • 查询价格是40或60或66的所有书籍信息:
    在这里插入图片描述
  • 查询书名中以 ’西‘ 开头的所有书籍信息:

在这里插入图片描述

  • 查询书名中以 ’西‘ 开头且长度为两个字符的所有书籍信息:
    在这里插入图片描述

模糊查询 like 小结:

  1. LIKE’西%’ : 将搜索以字符 ‘西’ 开头的所有字符串(如 西游记、西域);

  2. LIKE’%记’ : 将搜索以字符 ‘记’ 结尾的所有字符串(如 西游记);

  3. LIKE’%游%’ : 将搜索在任何位置包含 ‘游’ 所有字符串(如 西游记);

  4. LIKE’西_’ : 将搜索以字符 ‘西’ 开头的长度为2的所有字符串(如 西域);

5.8 分页查询limit

假设表book有12条记录,如下图所示,
按 [price]升序 进行分页,设置每页 4条记录,分别显示 第1,2,3页。
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 4 OFFSET 0;

  • OFFSET表示从某行开始记录,那么上式表示输出按照price从小到大排列后的前四行(从第0行开始,数4个结束)数据。

在这里插入图片描述
同样的上图表示从第4行开始数4个数据,即输出按照price从小到大排列后的4~8行数据。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# VS2012 86系统 mysql-5.5.27-win32 功能:利用动软代码生成器 从 数据库表或者视图中生成 的三层结构代码 实现 数据增删。 如果可以,请下载资源中 修 的动软代码生成器 C#模板生成 1、由于之前使用 动软生成 java 网页源码,比较成功,此处编写C#程序时沿用,感觉更加适合。 2、直接调用动软的相关dll和生成的三层代码,可以较快的实现增删操作。 3、由于一些dll版本的问题及动软生成器自身的一些不完善,产生了一些问题并找了挺久,所以把可以实现的版本发布出来共享。 前提: 使用的是 mysql数据库时才可能会出现以下问题 问题: 1、MySql.Data.dll 必须是5.6.1以上版本,否则会出现 “向信号量添加给定计数将导致其超出它的最大计数” 的问题。 2、动软代码生成时,必须增加该命名空间 using MySql.Data.MySqlClient; 3、动软代码必须修 “工具”-“选项”弹出窗 后,点击 ”代码生成设置“-”字段类型映射“-”参数符号“中删除 mysql @,添加mysql ? 4、如果不修3的设置,在增删时 参数设置会失败。 5、mysql保存或者修时,中文会出现乱码,这时必须 在DbHelperMySQL类的 连接字中增加Charset=utf8;即 protected static string connectionString = "Server=localhost;User Id=root;Password=root;Persist Security Info=True;Database=mnzfz;Charset=utf8;"; 6、如果要在局域网中远程访问,请 修 mysql 权限:grant select,update,insert,delete on *.* to 'root'@'192.168.0.1' identified by "123456";

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值