Mysql03增删改查

2024-04-15 22:18
文章标签 改查 增删 mysql03

本文主要是介绍Mysql03增删改查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Sql – DML、DQL
DML 数据操作语言
 insert - 插入数据
 update - 修改数据
 delete - 删除数据

DQL 数据查询语言
 select

insert - 插入数据
 insert into tb2 values(值1, 值2, 值3)
 insert into tb2(字段3,字段2) values(值3,值2)
 insert into tb2 values(…),(…),(…)
 将一个查询的结果,插入到一个表中
Insert into tb2 select * from …
 另一种批量插入数据方式:
将查询结果,直接创建成一张新表
create table tb3 as select …. from 表名

 单引号:两个单 引号转义成一个单引号
Insert into kecheng(name) values(‘I’'m ')
 Sql 注入攻击
…where … password=‘1’ or ‘1’=‘1’

 阻止 sql 注入攻击:
 将用户填写的内容中的单引号,替换成两个单引号
…where … password=‘1’‘or ‘‘1’’=’‘1’

update – 修改数据
 update tb2 set 字段1=值1, 字段2=值2, 字段3=值3 where …
 update tb2 set … where …
order by … limit 5
对指定字段进行排序后,
只修改前5条数据

delete – 删除数据
 delete from tb2 where …
 delete from tb2 where …
order by … limit 5
按指定字段排序,并是删除前 5 行

 清空表:
 delete from tb2;
 truncate table tb2;

select - 查询数据
 select * from tb2;
 select 字段3, 字段1 from tb2;
where 子句
 过滤条件
= 等值过滤
<> 不等过滤

= < <= 比较大小
between … and … >= … and <= …
in(3,78,2,6,1,8) 从指定的一组值中取值
like 字符串模糊查询
% 统配多个字符
_ 统配单个字符
\ 转义符,_ %
not not between and
not in
not like
and 并且
or 或者
is null
is not null null 值过滤

distinct
 去除重复数据
 select distinct job_id from 表名
查询所有job_id的值,去除重复值

 select distinct 字段1,字段2 from ….
去除两个字段组合的重复值

 只在字段列表前出现一次

order by 子句
 排序
 order by 字段1
 order by 字段1,字段2
先按字段1排序,字段1相同时按字段2排序
 asc 升序(默认可以不写)
 desc 降序

order by 字段1 desc
order by 字段1 desc,字段2 asc
 select …(字段名)from…(表名)order by…
 select …(字段名)from…(表名)where…order by…

字段别名
 查询的字段,或表达式结果,可以起别名
 select first_name as fn, salary from …
 select salary*12 as s from ….
 As 可以省略
 where 后面不能使用字段别名
oder by 可以引用别名

select查询结构
select
distinct
from
where
order by
练习

  1.   查询结果插入表
    

– 新建tb2表
use test;
drop table if exists tb2;
create table tb2(
id int primary key auto_increment,
name varchar(20)
)engine=innodb charset=utf8;

               --  查询学生姓名,插入 tb2 表Insert into tb2(name) select name from xuesheng;--  将 tb2 表的数据查询出来,再次插入 tb2Insert into tb2(name) select name from tb2;
  1.   update 测试
    

update xuesheng set age=age+1,banji_id=3
where name=‘王五’;

update xuesheng set age=age+1,banji_id=3
where name=’ 1’ or ‘1’=‘1’; – sql注入

– 年龄最大的2个学生,班级修改成4
update xuesheng set banji_id=4
order by age desc limit 2;
– desc 降续
– limit 2 前两条

  1.   准备测试数据
    

d:\hr_mysql.sql

source 命令:执行sql脚本文件

source d:\hr_mysql.sql 末尾不加分号
show databases; hr库
show tables;

  1.   查询员工表
    

Select * from employees;

Select
employee_id,
first_name,
salary
from
employees;

  1.   薪水大于等于10000的员工
    

select
employee_id,
first_name,
salary
from
employees
where
salary>=10000;

  1.   工种代码(job_id)是 IT_PROG 的员工
    

select
employee_id,
first_name,
salary,
job_id
from
employees
where
job_id=‘IT_PROG’;
– job_id=‘it_prog’; 大小写不敏感

  1.   上司工号(manager_id)是 100 的员工(100的下属)
    

select
employee_id,
first_name,
salary,
manager_id
from
employees
where
manager_id=100;

  1.   部门编号(department_id)是 30 的员工(查询30部门的员工)
    

select
employee_id,
first_name,
salary,
department_id
from
employees
where
department_id=30;

  1.   不在 50 部门的员工
    

select
employee_id,
first_name,
salary,
department_id
from
employees
where
department_id<>50;

  1. 查询员工 200

select
employee_id,
first_name,
salary
from
employees
where
employee_id=200;

  1. 查询 1995-1-1年之前入职

select
employee_id,
first_name,
salary,
hire_date
from
employees
where
hire_date<‘1995-1-1’;

  1. 工资小于 3000

select
employee_id,
first_name,
salary
from
employees
where
salary<3000;

  1. 薪水范围[5000,8000]

select
employee_id,
first_name,
salary
from
employees
where
salary between 5000 and 8000;
– salary>=5000 and salary<=8000;

  1. 10 , 20 , 60 , 90 四个部门中所有员工 ( in 过滤)

select
employee_id,
first_name,
salary,
department_id
from
employees
where
department_id in(10,20,60,90);

  1. 查询 first_name 中包含 ar 的员工

select
employee_id,
first_name,
salary
from
employees
where
first_name like ‘%ar%’;

  1. 查询 first_name 第三个字符是 e 的员工

select
employee_id,
first_name,
salary
from
employees
where
first_name like ‘__e%’;

  1. 查询工种(job_id)以 SA 开头的员工

select
employee_id,
first_name,
salary,
job_id
from
employees
where
job_id like ‘sa%’;

  1. 姓名中有 en ,且在80 部门中的员工

select
employee_id,
first_name,
last_name,
salary,
department_id
from
employees
where
(first_name like ‘%en%’
or last_name like’%en%’)
and department_id=80;

  1. 部门 90 中所有员工 ,和工种后缀是 CLERK 的员工

select
employee_id,
first_name,
salary,
department_id,
job_id
from
employees
where
department_id=90 or
job_id like ‘%CLERK’;

  1. 工资小于3000 和 工资大于15000

select
employee_id,
first_name,
salary
from
employees
where
salary not between 3000 and 15000;
– salary<3000 or salary>15000;

  1. 没有上司的人
    manager_id是null值

select
employee_id,
first_name,
salary,
manager_id
from
employees
where
manager_id is null;

  1. 没有部门的员工
    department_id 是null

select
employee_id,
first_name,
salary,
department_id
from
employees
where
department_id is null;

  1. 有提成的员工
    commission_pct不是null值

select
employee_id,
first_name,
salary,
commission_pct
from
employees
where
commission_pct is not null;

  1. 查询 job_id

select distinct job_id from employees;

  1. 查询 department_id,过滤 null值

select distinct department_id from employees
where department_id is not null;

  1. 查询 manager_id,过滤 null值

select distinct manager_id from employees
where manager_id is not null;

  1. 查询 department_id, manager_id 组合,过滤 null值
    select distinct department_id, manager_id
    from employees
    where department_id is not null
    and manager_id is not null;

  2. 薪水从小到大排列
    select
    employee_id,
    first_name,
    salary
    from
    employees
    order by
    salary;

  3. 按部门降序排列,相同部门中,按薪水升序排列
    select
    employee_id,
    first_name,
    salary,
    department_id
    from
    employees
    order by
    department_id desc, salary;

  4. 薪水大于等于 10000 的员工,按姓名排序

select
employee_id,
first_name,
last_name,
salary
from
employees
where
salary >=10000
order by
first_name, last_name;

  1. 查询所有员工,按部门编号升序排列
    相同部门,按first_name升序排列

select
employee_id,
first_name,
salary,
department_id
from
employees
order by
department_id, first_name;

  1. 查询 50 和 80 部门的员工,
    按工资降序排列,工资相同按工种代码排列
    select
    employee_id,
    first_name,
    salary,
    department_id,
    job_id
    from
    employees
    where
    department_id in(50,80)
    order by
    salary desc, job_id;

  2. 姓名连接起来显示
    select
    employee_id id,
    concat(first_name, ’ ', last_name) name,
    salary
    from
    employees;

  3. 查询员工id,first_name,月薪,年薪
    过滤年薪大于等于 100000,按年薪排序
    select
    employee_id,
    first_name,
    salary,
    salary12 s
    from
    employees
    where
    salary
    12>=100000 – 不能使用字段别名
    order by s; – 可以使用字段别名

这篇关于Mysql03增删改查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/907079

相关文章

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

08 增删查功能

划重点: lable 标签keyup:键盘事件标签内添加样式:style使用事件修饰符:preventforEach :遍历 数组indexOf: 可以返回要查询的某个字符串值在整个字符串中首次出现的位置下标findIndex:返回传入一个测试条件(函数)符合条件数组的首个元素的位置splice:向/从数组中添加/删除项目,然后返回被删除后的新的项目数组 黑椒蟹 一对: <!DOCTYPE

JSP的增删改查part2

增加显示数据库表格cdsn的功能 1. 》》对CdsnDao接口和方法,CdsnService接口和方法进行处理,并增加CdsnServlet用于对新建展示页面进行处理 对cdsnDao接口和方法增加 》》接口 //获取cdsn用户数据列表 public List<cdsn> getCdsnList();》》CdsnDaoImpl增加内容//获得数据库所有数据publ

JSP的增删改查part1

运用Myeclisp对数据库进行增删改查 要建立6个库 1).其中dao层用与连接数据库和对数据库进行相关操作; 2).entity层用于存放数据库连接后的实体数据; 3.)service层是在mcv三层模式中新添加一层,能够更加清晰的定义应用程序的边界,需要操作数据的时候,通过service层访问DAO层来实现。

QT QxOrm CRUD增删改查mysql数据库操作

QT QxOrm CRUD增删改查mysql数据库操作 QxOrm 是一个 C++ 库,旨在为 C++ 用户提供对象关系映射 (ORM) 功能。 基于每个类的简单 C++ 设置函数(如 Java 中的 Hibernate XML 映射文件),QxOrm 库提供以下功能: 持久性: 支持最常见的数据库,如 SQLite、MySQL、PostgreSQL、Oracle、MS SQL Server、Mo

ES增删改查内部原理

一、ES查询内部原理 客户端发起请求到集群协调节点coordinate node若是根据docId(不是根据docId查询则根据随机轮询算法,分配到所有分片查询)查询则根据路由算法,找到分片根据随机轮询算法,将请求分摊给主备节点,达到负载均衡的目的各个节点将结果返回给协调节点,由协调节点统一返回数据给客户端 二、ES增删改内部原理 客户端发起创建的请求到集群协调节点coordinate

MyBatis的增删改查基本操作

MyBatis和Hibernate的使用基本一样,区别在于Hibernate在Java代码中实现数据库操作,集成度高;Mybatis在注解或者xml文件中通过配置实现SQL语句,更加灵活 创建使用MyBatis的Java项目 1. 创建并配置 创建Java项目并引入MyBaits的jar文件配置log4j.properties(用于查看执行的SQL语句,日志等) log4j.ro

6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)

目录 一.堆(Heap)的基本介绍 二.堆的常用操作(以小根堆为例) 三.实现代码 3.1 堆结构定义 3.2 向下调整算法* 3.3 初始化堆* 3.4 销毁堆 3.4 向上调整算法*  3.5 插入数据 3.6 删除数据 3.7 返回堆顶数据 四.下篇内容 1.堆排序 2.TopK问题 一.堆(Heap)的基本介绍         了解堆之前我们要简

JAVA调用增删改的存储过程

JAVA调用增删改的存储过程 1、创建添加存储过程 CREATE OR REPLACE PROCEDURE stu_proc(v_id IN NUMBER, v_name IN VARCHAR2, v_age IN NUMBER) ASBEGIN INSERT INTO student(id, sname, age) values (v_id, v_name, v_age);com

华为云征文|Flexus云服务X实例应用,通过QT连接华为云MySQL,进行数据库的操作,数据表的增删改查

引出 4核12G-100G-3M规格的Flexus X实例使用测评第3弹:Flexus云服务X实例应用,通过QT连接华为云MySQL,进行数据库的操作,数据表的增删改查 什么是Flexus云服务器X实例 官方解释: Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负