MySQL筑基篇之增删改查操作详解

目录
  • 一、增加表中数据
    • 1、无自增列时
    • 2、有自增列时
  • 二、删除表中数据
    • 1、使用delete
    • 2、使用truncate
  • 三、修改表中数据
  • 四、*查询操作
    • 1、简单查询
    • 2、条件查询
    • 3、排序

一、增加表中数据

1、无自增列时

1.指定字段添加数据

给表中的部分列添加数据:值的顺序必须跟指定列的顺序保持一致

语法:insert into 表名(列1,列2,...) values(值1,值2,...)

2.默认添加数据

向表中的所有列添加数据:值的顺序必须跟字段顺序保持一致

语法:insert into 表名 values(值1,值2,...)

2、有自增列时

1.对于指定字段的添加

不用指定自增列,语法同无自增列一致

2.对于默认情况的添加

必须手动为自增列赋值或者填上null

例如:insert into t_person VALUES(null,'wangwu',32,'男',150.9')

自增列设置方法:

create table if not exists t_person(
        p_id int primary key auto_increment,-- 主键 自增
        ...
)

关键字:auto_increment

二、删除表中数据

1、使用delete

语法:delete from 表名 [where条件]

删除所有数据,例如:delete from t_person

删除指定数据,例如:delete from t_person where p_id=8

2、使用truncate

语法:truncate table 表名

通过表截断(truncate)的方式删除数据要优于使用delete,原因:

delete是一条一条删除,效率低,而truncate是直接在物理空间中将存放该表数据的空间截断舍弃,效率更快

delete主键会继续删除之前的自增,而truncate会重新开始自增

三、修改表中数据

语法:update 表名 set 列名1=新值,列名2=新值,... [where 条件]

操作整张表,例如:update t_person set age=18

操作部分数据,例如:update t_person set age=28 where p_id=1

第一个例子的含义是把t_person表中所有的age属性改为18,第二个含义是只把p_id为1对应的age改为28

四、*查询操作

查询是数据库基础的重点,拿小本本记上

1、简单查询

1.查询所有列

select * from 表名

2.查询部分列

select 列名1,列名2,... from 表名

可以通过列出所有字段名的方式查询所有列

弊端:书写繁琐

优势:可维护性更高、更灵活、执行效率更快

3.别名

select 列名1 as 别名1,列名2 as 别名2,... from 表名

as关键字可省

select 列名1 别名1,列名2 别名2,... from 表名

表名也可以起别名

别名使用示例:

SELECT employee_id as 员工编号,salary as 工资 from employees
SELECT employee_id 员工编号,salary 工资,first_name,last_name from employees e

4.数学运算

select 列名+数字,列名-数字,列名*数字,列名/数字,列名%数字 from 表名

5.去重

select distinct 列名 from 表名

去重规则可以为多个列,只有当规则中的所有列的信息完全一致时才会去重 :

select distinct 列名1,列名2,... from 表名

6.case when

select 列名1,列名2,
    case
        when 条件1 then 结果2
        when 条件2 then 结果2
        ...
        else 其他结果
    end
from 表名
  • when从上至下判断
  • 每行数据只会执行一个when
  • 类似java中的多重if分支:case开启分支,end结束分支

使用示例:

查询员工id及其工资,并对工资进行评级:工资>10000 高薪,工资>8000 中级,工资>5000 低级,其他 底层

 select employee_id,salary,
        case
            when salary>10000 then '高薪'
            when salary>8000 then '中级'
            when salary>5000 then '低级'
            else '底层'
        end as '薪资等级'
    from employees

7.查询表详情

describe 表名

describe可以简写成desc:

desc 表名

2、条件查询

语法:

select 列名 from 表名 where 条件

1.单条件查询

查询工资>10000的员工信息:

SELECT * from employees where salary>10000

比较的类型为字符串时,对比数据需要加上单引号

mysql默认不区分大小写,如有需求,则在对应位置添加binary关键字

查询first_name为Steven的所有员工信息:

select * from employees where first_name='STEVEN'

区分大小写:

select * from employees where binary first_name='STEVEN'

2.多条件查询

多个条件之间须通过and或者or进行拼接:

and:代表并且,多个条件同时满足,相当于java中的&&

or:代表或者,满足任意一个即可,相当于java中的||

3.区间查询

在区间内

between 最小值 and 最大值

不在范围内

not between 最小值 and 最大值

4.枚举查询

在列举范围内

列名 in(值1,值2,值3,...)

查询员工id为100、105、110的员工信息

select * from employees where employee_id=100 or employee_id=105 or employee_id=110

等价于:

select * from employees where employee_id in(100,105,110)

不在列举范围内

列名 not in(值1,值2,值3,...)

查询员工id不是100、105、110的员工信息

select * from employees where employee_id not in(100,105,110)

5.空值查询

为空时

列名 is null

不为空时

列名 is not null

查询commission_pct为null的员工信息

select * from employees where commission_pct is null

查询commission_pct不为null的员工信息

select * from employees where commission_pct is not null

6.模糊查询

语法:

where 列名 like '值'

%:代表不固定长度,可以为0-n个字符

_:代表一个长度

示例:

查询first_name中包含s的员工信息

select * from employees where first_name like '%s%'

查询firstname中以s开头的员工信息

select * from employees where first_name like 's%'

查询firstname中以s结尾的员工信息

select * from employees where first_name like '%s'

查询firstname中第二个字母为s的员工信息

select * from employees where first_name like '_s%'

3、排序

对查询结果进行指定规则的排序显示

1、单列排序

select 列名 from 表名 order by 列名 asc(升序)|desc(降序)

示例:

根据工资从高到低显示员工信息

select * from employees order by salary desc

根据工资从低到高

select * from employees order by salary asc
select * from employees order by salary

tips: 默认为升序排列

2、多列排序

order by 列名1 asc|desc , 列名2 asc|desc,...

示例:

根据工资从低到高显示员工信息,如果工资相同,根据员工id从高到低显示

select * from employees order by salary asc,employee_id desc

3、where+order by

select 列名 from 表名
 where 筛选条件
 order by 排序条件

示例:

查询工资>10000的员工信息,从高到低显示

select * from employees where salary>10000 order by salary desc

到此这篇关于MySQL筑基篇之增删改查操作详解的文章就介绍到这了,更多相关MySQL增删改查内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mysql增删改查基础语句

    语法 这里是INSERT INTO命令将数据插入到MySQL表的通用SQL语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 要插入字符串类型数据,则需要双或单引号保留到所有的值,例如: "value". 1.从命令提示符插入数据 这将使用SQL 的INSERT INTO命令将数据插入到MySQL表:tutorials_tbl 示例 root@host#

  • Mysql的增删改查语句简单实现

    Mysql的增删改查语句简单实现 增加记录: insert into tablename(...) values(...) //如果增加的记录包括所有的列,则不需要写数据列表 insert into tablename values(...) 删除记录: delete from tablename where condition ; 修改记录: update tablename set xx=xx , xx=xx... where condition ; alter table tablenam

  • MySQL表的增删改查基础教程

    1. 新增(Create) insert into [表名] (字段1, 字段2,....) value (value1, value2, ...); insert into [表名] (字段1, 字段2, ....) values (value1, ...), (value2, ...), (value3, ...); 实例: 创建一个学生成绩表 CREATE TABLE exam_result ( id INT, name VARCHAR(20), chinese DECIMAL(3,1),

  • MySQL 详细单表增删改查crud语句

    MySQL 增删改查语句 1.创建练习表 这里练习表没有满足三范式 第一范式(又称 1NF):保证每列的原子性 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性.满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了. 第二范式(又称 2NF):保证一张表只描述一件事情 满足1NF后要求表中的所有列,每一行的数据只能与其中一列相关,即一行数据只做一件事.只要数据列中出现数据重复,就要把表拆分开来. 第三范式(又称 3NF):保证每列都

  • MySQL筑基篇之增删改查操作详解

    目录 一.增加表中数据 1.无自增列时 2.有自增列时 二.删除表中数据 1.使用delete 2.使用truncate 三.修改表中数据 四.*查询操作 1.简单查询 2.条件查询 3.排序 一.增加表中数据 1.无自增列时 1.指定字段添加数据 给表中的部分列添加数据:值的顺序必须跟指定列的顺序保持一致 语法:insert into 表名(列1,列2,...) values(值1,值2,...) 2.默认添加数据 向表中的所有列添加数据:值的顺序必须跟字段顺序保持一致 语法:insert i

  • Android利用Dom对XML进行增删改查操作详解

    1. 概述 平常我们一般是使用JSON与服务器做数据通信,JSON的话,直接用GSON或者其他库去解析很简单.但是,其他有些服务器会返回XML格式的文件,这时候就需要去读取XML文件了. XML的解析有三种方式,在Android中提供了三种解析XML的方式:DOM(Document Objrect Model) , SAX(Simple API XML) ,以及Android推荐的Pull解析方式,他们也各有弊端,而这里来看看使用DOM的方式. 2. Dom解析 DOM解析器在解析XML文档时,

  • java中JDBC增删改查操作详解

    目录 前言 一.增删改操作 1.1 PreparedStatement介绍  1.2 增删改操作   1.3 测试 二.查操作 2.1 通用对不同表进行一条数据查询操作 2.2 通用对不同表进行多条数据查询操作 总结 前言         在上一篇博客我们介绍了JDBC的概念以及连接数据库的五种方式JDBC概述及数据库连接方式(数据库连接方式推荐使用第五种),那么我们既然连接上数据库了,那就要对数据进行操作了,那么这一篇我们就来介绍常规的增删改 查操作.       我们先看一遍步骤:    

  • Python实现连接MySql数据库及增删改查操作详解

    本文实例讲述了Python实现连接MySql数据库及增删改查操作.分享给大家供大家参考,具体如下: 在本文中介绍 Python3 使用PyMySQL连接数据库,并实现简单的增删改查.(注意是python3) 1.安装PyMySQL PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb.PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库.在使用 PyMySQ

  • python3.6连接mysql数据库及增删改查操作详解

    折腾好半天的数据库连接,由于之前未安装 pip ,而且自己用的python 版本为3.6. 只能用 pymysql 来连接数据库,下边 简单介绍一下 连接的过程,以及简单的增删改查操作. 1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import pymysql #导入 pymysql 如果编译未出错,即表示 pymysql 安装成功 简单的增删改查操作 示

  • express+mongoose实现对mongodb增删改查操作详解

    本文实例讲述了express+mongoose实现对mongodb增删改查操作.分享给大家供大家参考,具体如下: 项目地址:https://github.com/jrainlau/mongoose_crud 写在开头 本文主要分享我如何使用express+mongoose对mongodb实现增删改查操作,感谢cnode社区所有精品文章的帮助,以及@airuikun的开源项目airuikun/mongoose_crud对我的启发. 学习nodejs已经小半个月了,一直琢磨着做一些什么东西出来.由于

  • AJAX实现数据的增删改查操作详解【java后台】

    本文实例讲述了AJAX实现数据的增删改查操作.分享给大家供大家参考,具体如下: 主页:index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></sc

  • Android利用SAX对XML进行增删改查操作详解

    前言 解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析. DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以根据DOM接口来操作这个树结构了. 优点:整个文档读入内存,方便操作:支持修改.删除和重现排列等多种功能. 缺点:将整个文档读入内存中,保留了过多的不需要的节点,浪费内存和空间. 使用场合:一旦读入文档,还需要多次对文档进行操作,并且在硬件资源充足的情况下(内存,CPU). 为了解决DOM解析存在的问题,就出现了SAX解析.其特点为: 优

  • Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连接数据库测试 import pymysql #打开数据库 db = pymysql.connect(host="localhost",user="root",password="root",db="test") #使用cursor

  • Android连接MySQL数据库并进行增删改查操作示例讲解

    1.Android 连接MySQL数据库 public class DBOpenHelper { private static String driver = "com.mysql.jdbc.Driver";//MySQL 驱动 private static String url = "jdbc:mysql://IP:3306/数据库";//MYSQL数据库连接Url private static String user = "root";//用

随机推荐