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

相关文章

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

MySQL底层文件的查看和修改方法

《MySQL底层文件的查看和修改方法》MySQL底层文件分为文本类(可安全查看/修改)和二进制类(禁止手动操作),以下按「查看方法、修改方法、风险管控三部分详细说明,所有操作均以Linux环境为例,需... 目录引言一、mysql 底层文件的查看方法1. 先定位核心文件路径(基础前提)2. 文本类文件(可直

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

MySQL数据目录迁移的完整过程

《MySQL数据目录迁移的完整过程》文章详细介绍了将MySQL数据目录迁移到新硬盘的整个过程,包括新硬盘挂载、创建新的数据目录、迁移数据(推荐使用两遍rsync方案)、修改MySQL配置文件和重启验证... 目录1,新硬盘挂载(如果有的话)2,创建新的 mysql 数据目录3,迁移 MySQL 数据(推荐两

MyBatis-Plus逻辑删除实现过程

《MyBatis-Plus逻辑删除实现过程》本文介绍了MyBatis-Plus如何实现逻辑删除功能,包括自动填充字段、配置与实现步骤、常见应用场景,并展示了如何使用remove方法进行逻辑删除,逻辑删... 目录1. 逻辑删除的必要性编程1.1 逻辑删除的定义1.2 逻辑删php除的优点1.3 适用场景2.

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra