MySQL数据的增删改查(crud)

本文结构

一、增加 create

二、修改 update

三、查询 retrieve(简单查询,下篇详细展开)

四、删除 delete

首先,创建简单的classes数据表和略微复杂的students数据表(id name age gender cls_id birthday),以便接下来的操作。

create table classes
(
id int primary key auto_increment,
name varchar(20)
);
create table students
(
id int unsigned not null auto_increment primary key,
name varchar(20),
age tinyint unsigned default 0,
gender enum("男","女","保密") default "保密",
cls_id int unsigned,
birthday date default "2000-09-09"
);

一、增加

1.1 全列插入(插入的数据个数和类型与字段一一对应)

--insert [into] 表名 values(...)
--主键字段 可以用 0 null default 来占位
--向classes表中插入“刺客班”的三种方式 insert into classes values(0, "刺客班");
insert into classes values(null , "刺客班");
insert into classes values(default, "刺客班");

1.2 部分插入

--insert into 表名(列1,...) values(值1,...)
insert into students (name, gender) values("阿狸", 1);

1.3 多行插入,一次插入多个,逗号隔开

insert into students (name, gender) values("赏金", 2),("泰隆", 1);
insert into students values(null, "盲僧", 20, 1, null, default),
(null, "牛头", 20, 1, null, default);

二、修改

--update 表名 set 列1=值1, 列2=值2... where 条件;
update students set gender=2; --更改所有的gender值
update students set gender=1 where name="盲僧"; --更改所有name=”盲僧“的项,不能唯一确认 --update students set gender=1 where id=1, 3, 5, 6, 7, 9; --这样写不行,会报错
update students set gender=1 where id=1; --可以唯一确认
update students set age=30,gender=1 where id=8; --一次修改同个id的多个信息

三、查询(简单查询,下篇详细展开)

3.1 查询所有列

--select * from 表名;  * 代表全部
select * from students; --一般数据少的时候可以用,对大量数据不适用

3.2 根据一定条件查询

select * from students where name="盲僧";  --查询所有name=盲僧的信息
select * from students where id<3;

3.3 查询指定列

--select 列1,列2,...from 表名; (如只想查同学的性别)
select name, gender from students; --由此可以理解*代表 所有的列 --可以使用as为列或者表指定别名
--select 字段 as 别名, 字段 as 别名 from 数据表 where ...;
select name as "姓名", gender as "性别" from students; --字段的顺序 由命令中的先后顺序决定
select gender as "性别", name as "姓名", id as "序号" from students;

四、删除

4.1 物理删除(真删,数据来之不易,慎用!)

--delete from 表名 where 条件
delete from students -- 清空数据表,整个students中的数据全部删除
delete from students where name="盲僧";
--此时如果再增加一个信息,id会等于此时的auto_increment值,而不是去补充已删除的值,除非指定
--切记好马不吃回头草,删了就不要再用,否则增长到相同id的时候会崩

4.2 逻辑删除(推荐!)

--思路为:用一个字段表示 这条信息是否已经不能再使用了
--给students添加一个is_delete字段 bit类型
alter table students add is_delete bit default 0;
--比如6号盲僧想在某网站注销信息,这时候网站悄悄假删信息,操作是...
update students set is_delete=1 where id=6;
--查看假装删除的内容(注销的用户)...在is_delete字段会有一个特殊符号
select * from students where is_delete=1;
--此时,以下命令的表格中不会再显示6号盲僧,(假装)删除成功!
select * from students where is_delete=0;

MySQL数据库 | 数据表的增删改查的更多相关文章

  1. MySQL数据库之表的增删改查

    目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...

  2. Mysql数据库和表的增删改查以及数据备份&恢复

    数据库 查看所有数据库 show databases; 使用数据库 use 数据库名; 查看当前使用的数据库 select database(); 创建数据库 create database 数据库名 ...

  3. MySQL数据库2表的增删改查

    目录 一.数据表(文件): 1.1增 1.2查看表内数据 1.3改 1.4删除列表 1.5查看库内列表及表结构 1.6复制表结构 二.列类型:(*********) 2.1数字 2.2字符串 2.3时 ...

  4. Mysql数据库二:表的增删改查

    ----建表CREATE TABLE emp( id int PRIMARY key auto_increment, name char(10) , birthday DATE , salary FL ...

  5. MySQL数据库与表的增删改查

    1.值库管理 1.1 查询所有值库 show databases; 1.2 创建一个值库 create database 值库名称 default character set 编码格式名称; 1.3 ...

  6. Mysql数据表的增删改查

    ---恢复内容开始--- Mysql数据表的增删改查 1.创建表   语法:CREATE TABLE 表名(字段1,字段2,字段3.......) CREATE TABLE `users` ( `us ...

  7. 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

    一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...

  8. AngularJS中使用$http对MongoLab数据表进行增删改查

    本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load ...

  9. C# - VS2019 通过DataGridView实现对Oracle数据表的增删改查

    前言 通过VS2019建立WinFrm应用程序,搭建桌面程序后,通过封装数据库操作OracleHelper类和业务逻辑操作OracleSQL类,进而通过DataGridView实现对Oracle数据表 ...

随机推荐

  1. markdown转成word或者pdf

    利用typora软件 1.登陆官网下载软件 官网地址:https://typora.io/ 点击download 根据自己的电脑下载64位或者32位 2.安装软件 安装界面如下: 3.转换 3.1首先 ...

  2. Pycharm的项目文件名是红色的原因及解决办法

    今天在继续学习Python时,打开Pycharm后,发现有一个项目下的项目文件名是红色的,如下图: 刚开始我以为是我升级 Pycharm导致的,但我并没有急着去解决,因为并不会影响我执行代码等.当我修 ...

  3. adb -- cannot connect to x.x.x.x:5555“由于目标计算机积极拒绝,无法连接”

    原因 安卓系统未打开adb网络调试功能 通过USB方式连接到安卓系统设置即可 解决 先通过USB线连接 adb devices 能看到所连接的设备情况下 adb root 权限提权 adb shell ...

  4. Java(三)String类

    一.String类初始化方法 1.初始化一个空字符串 String str=new String();//这里调用了String的无参构造方法 2.初始化一个有值的字符串 String str1=&q ...

  5. 使用IntersectionObserver制作滚动动画以及其他记录

    前言 最近在重做公司项目的主页,正好新来了个UI,整个都重新设计了一下,动画还挺多的.我之前没有怎么玩过这些,踩了挺多坑,最后找到了目前而言最合适的方法,现在做一个记录. 需要把原来的主页从项目中抽出 ...

  6. jQuery---html方法和text方法

    html方法和text方法 //html:innerHTML text:innerText console.log($("div").html());//<h3>我是标 ...

  7. R语言函数化学习笔记3

    R语言函数化学习笔记3 R语言常用的一些命令函数 1.getwd()查看当前R的工作目录 2.setwd()修改当前工作目录 3.str()可以输出指定对象的结构(类型,位置等),同理还有class( ...

  8. CSS的文本样式

    CSS的文本样式 1.颜色 2.文本对齐方式 3.首行缩进 4.行高 5.装饰 1. 文本位置 居中: text-align: center; 靠左: text-align: left; 靠右: te ...

  9. win10驱动签名禁用与启动

    禁用:https://jingyan.baidu.com/article/624e74594dbc8d34e8ba5aa6.html?qq-pf-to=pcqq.c2c 启用或恢复:https://z ...

  10. [Agc001A/At1979] BBQ Easy - 贪心

    要准备N组食物, 他有2N的食材, 需要两两组成一个食物, 食物的价值是两食材中较小的那个. 问最大总价值是多少 ---------- 考虑到\(ans = (sum - delta)/2\),只需要 ...