• MySQL的增删改查语句以及数据库设计的三大范式


    数据库设计的三大范式:

      1.列的原子性,即列是不可再分的

      2.表里的每一列都应该与主键有关系,

      3.表里的每一列都应该与主键有直接关系,

      当使用自增长列不满足2、3范式,是特殊例子,只用在解决较为复杂的问题

    SQL的增删改查:

      一、添加数据, insert into 表名 values(添加的内容)  ,添加的内容每项用逗号隔开,注意事项:

        字符串和字符需要加单引号,布尔型添加0或1不带引号

        datetime类型按照格式 '2018-01-02 11:34:45'来添加,也要加单引号

        整数型,小数型不用加引号

        表里有几列就要添加几个数据,如果有空数据,则要指定添加数据的列 insert into 表名(要添加数据的列) values() 

        SQL语句里不区分大小写

        自增长列添加数据直接给0,会自动增长

      二、修改数据

        update 表名 set 列名=修改的值 where 可以锁定需要修改项的条件

        如果数据库中的数据时数字类型,想要数据加1的方法   update 表名 set 列名=列名+1 where 条件 

      三、删除数据

        delete from 表名 where 要删除数据的锁定条件

      四、查询数据,简单查询

        1.查询某一张表中的所有数据

        select * from 表名

        2.查询指定列

        select 指定列名1,指定列名2 from 表名

        3.给列指定显示名称

        select 列名 as '指定名称' from 表名 

        4.条件查询

        select * from 表名 where 条件 

          条件可以添加or表示或 以及and表示并

        5.模糊查询(关键字查询)

        select * from 表名 where 列名 like '_关键字%' 

          _表示一个字符,%表示n个字符

        6.排序查询(以某一列的顺序排列)

        select * from 表名 order by 列名 desc

          默认为升序排列(从小到大往下排列),desc表示降序排序(从大到小往下排列)

          列名后追加列名表示追加列名为第二排列顺序

        7.去重查询

        select distinct 列名 from 表名 

        8.分页查询

        select * from 表名 limit 5,5 

          前一个5表示跳过5条,后一个5表示取5条,合起来即每页5条信息

        9.统计查询(聚合函数)

          (1)数据条数  select count(*) from 表名

          (2)最大值、最小值  select max(列名) from 表名 取最大值  select min(列名) from 表名 取最小值

          (3)取平均值  select avg(列名) from 表名

        10.分组查询

        select 列名,count(*) from 表名 group by 列名  按照某一列分组

        select 列名 from 表名 group by 列名 having count(*)  按照分组查询每一组的条数   having后可以直接跟条件

        11.范围查询

        select * from 表名 where 列名 between 60 and 80  查询数值在60到80之间的数据

        12.离散查询 

        select * from 表名 where 列名 in(1,5,8,9)  表示查询数值为1,5,8,9这四个数的数据

        高级查询

          (1)联合查询(行的扩展),是纵向扩展

          select 列名 from 表名1

          union

          select 列名 from 表名2

          (2)连接查询( 连接查询),是横向扩展

          select * from 表名1,表名2 where 表名1.列名=表名2.列名       

          再把*换成想要的列名,列举列名时注意两张表中重名的列名要带上表名如 表名.列名 ,不重名的列名可以不加表名,

          (3)子查询,特点是子查询的结果作为父查询的条件使用

          无关子查询:子查询和父查询没有关系,子查询拿出来可以单独执行

          相关子查询:子查询和父查询互相依赖,不能单独拿出来执行,子查询用到了父查询的内容,利用查询的读取顺序,子查询直接使用卡住的父查询的内容,如

            select * from 表名1 a where 列名1>(select 列名1 from 表名1 b where b.列名2= a.列名2)

            相关子查询可以处理一下较为复杂的问题

          

        

          

  • 相关阅读:
    前端常见跨域解决方案(全)
    小程序动画wx.createAnimation
    判断对象是否有某个属性
    占位符
    vue起航——搭建脚手架
    微信小程序-携带参数转发分享页面
    JS获取地址栏参数
    微信小程序wx:if vs hidden
    小程序websocket(心跳连接)
    初识websocket
  • 原文地址:https://www.cnblogs.com/zxbs12345/p/8176545.html
Copyright © 2020-2023  润新知