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

相关文章

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满