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

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Redis事务与数据持久化方式

《Redis事务与数据持久化方式》该文档主要介绍了Redis事务和持久化机制,事务通过将多个命令打包执行,而持久化则通过快照(RDB)和追加式文件(AOF)两种方式将内存数据保存到磁盘,以防止数据丢失... 目录一、Redis 事务1.1 事务本质1.2 数据库事务与redis事务1.2.1 数据库事务1.

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

不删数据还能合并磁盘? 让电脑C盘D盘合并并保留数据的技巧

《不删数据还能合并磁盘?让电脑C盘D盘合并并保留数据的技巧》在Windows操作系统中,合并C盘和D盘是一个相对复杂的任务,尤其是当你不希望删除其中的数据时,幸运的是,有几种方法可以实现这一目标且在... 在电脑生产时,制造商常为C盘分配较小的磁盘空间,以确保软件在运行过程中不会出现磁盘空间不足的问题。但在

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

Mybatis拦截器如何实现数据权限过滤

《Mybatis拦截器如何实现数据权限过滤》本文介绍了MyBatis拦截器的使用,通过实现Interceptor接口对SQL进行处理,实现数据权限过滤功能,通过在本地线程变量中存储数据权限相关信息,并... 目录背景基础知识MyBATis 拦截器介绍代码实战总结背景现在的项目负责人去年年底离职,导致前期规

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)