day62 创建新表 修改及删除表中数据 单表查询 where的运算符

本文主要是介绍day62 创建新表 修改及删除表中数据 单表查询 where的运算符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

创建新表

根据现有表创建新表添加数据

        create table 新表名

        select 列名 from 现有表

删除表

        drop table 表名

在创建新表时,仅保留原表结构,不保留数据

        create table 新表名

        select 列名 from 现有表

        where 1=2;

吧现有表数据添加到已存在新表中

        insert into 新表名(列名列表)

        select 列名列表 from 新表

修改表中数据

        update 表名 set 列名=新值,列名=新值 【where 条件】

        where修改条件,仅修改满足条件的数据

        where条件不写,表述修改所有条件

修改所有学生年龄+1

        update student set stu_age =stu_age+1;

修改邮箱为为空的学生邮箱为‘mysql@136.com’

        update student set email = 'mysql@136.com'

        where email is null;

修改年龄在18-22的女同学年龄-1

        update student set age = age -1

        where age between 18 and 22 and sex =‘女’;

修改所有姓张的同学的年龄=18

        update student set age = 18

        where name like ‘张%’;

删除表中数据

        delete from 表名 【where 条件】

删除表中所有年龄小于20的男同学

        delete from student where age<20 and sex='男';


-- 2 删除表中电话为空的女同学

        delete from student where stu_sex = '女' and stu_phone is null;
-- 3 删除年龄大于22的男同学
        delete from student where stu_sex ='男'
and stu_age <20;
        -- 4 删除所有姓'宋'的男同学

        delete from student where stu_sex ='男'
        and stu_name ='宋';

-- 5 删除所有同学

        delete  from student  ;

截断表

        truncate table 表名

问:delete from 表名 和 truncate table 表名区别?
 共同点:都是删除表中所有的数据

不同点:

      1)  delete from 表名,删除后的数据可以回滚

        truncate table 表名,删除后完全不存在

        2)如果删除表中有自增字段,delete不影响

        truncate时自增列初始化

        3)truncate 不能删除主外键中的主表数据

        delete能删除主外键关联中的主表数据(需要先删除外键引用表中的所有数据)

单表查询

        select 列名列表 --列名之间使用,分隔

        from 表名

       【 where】 查询条件

        【group by 】分组列

       【 having 】分组后筛选

        【order by】 排序列

注意事项:

       1 查询结果不在数据库存储,查询结果为结果集,以表结构显示

        2给列起别名

                语法:

                        列名 【as】别名

查询所有含所有列的值

        select * from emp;

查询部分列的值(投影查询)

 查询员工的编号,姓名,职位,工资,年薪

        select empno,ename,sal,sal*12 as yearSal from emp

查询员工的编号,姓名,职位

        select empno ,ename,sal from emp

        select empno as 部门编号,ename as 名字,sal as 薪水 from emo;

where子句

        运算符

        1)赋值语句 =

        2)算术运算符 + - * / %

        3)比较运算符 =       !=        any  all   some

SOME修饰符:SOME修饰符与ANY修饰符具有相同的含义,因为它们可以互换使用。有些数据库系统中,SOME修饰符只是ANY的别名。

SELECT * 
FROM employees
WHERE salary > ANY (SELECT salary FROM salaries WHERE job_title = 'Manager');
SELECT * 
FROM employees
WHERE salary > ALL (SELECT salary FROM salaries WHERE job_title = 'Manager');

        4)逻辑运算符 not    and      or

                逻辑运算顺序的优先级依次往后 先识别not  然后and  最后 or

                  a  and  b  or  c   会把ab当作整体与c 取or

select empno,ename,job,sal,deptno from emp where deptno in (10,20) and sal >1000;select empno,ename,job,sal,deptno from emp where deptno = 10 or 20 and sal >1000;

sql语句2会把 20 和 sal>1000   当作整体 再 or deptno = 10

select empno,ename,job,sal,deptno from emp where job = 'SALESMAN' or 'CLERK';select empno,ename,job,sal,deptno from emp  where job ='SALESMAN' or job = 'CLERK';

sql语句1会识别错误,得到只有salesman的结果集

        5)sql运算符

                in,   not    in:多者取其一

SELECT *FROM employeesWHERE employee_id NOT IN (SELECT employee_id FROM retired_employees);

                between   and:两者之间 用于数值日期之间区间

                not  between and

                is null , is not null

                like , not like

order排序

order by   asc || desc 降序排序;

常用函数

        1数值函数

        ceil()向上取整

        floor()向下取整

        round(x,y)四舍五入

        truncate(x,y) 截断

        2字符函数

        concat(s1,s2,。。。)多个字符串

        当任何一个值为null结果为null

                select concat(empno,'-',ename) from emp

        low(), upper()

        insert(str,index,len,new str):

                删除 和 替换

                mysql下标从一开始

               select ename,insert(ename,3,2,'') from emp

        instr(str,s)

                从str中查询s第一次出现的下标。无则返回0

                select ename,instr(enmae,'a') from emp

        substr,substring(str,index,len):从str的index处开始提取len个字符

                select ename,substr(ename,index)from emp;

日期函数        日期的默认格式‘yyyy-MM-dd’

        now() 

                select now(),curDate(),curTime()

         查询员工入职日期为1981的员工

                select empno,year(hiredate) from emp where year(hiredate) =1981;

     

   添加员工信息

  

转换函数

        %Y:年  四位                 %y两位

        %m:月                        

        %d:日

        %H:小时  24小时制                      %h 12小时制

        %S:秒                            

        %i:分

   str_to_date

insert into emp(ename,empno,hiredate)

values('天气',1,str_to_date('11-11-2023' ,'%m-%d-%y') ;            

这篇关于day62 创建新表 修改及删除表中数据 单表查询 where的运算符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir