zoukankan      html  css  js  c++  java
  • 浅谈数据库的相关知识

    1.   建表:建表的时候要注意给一个主键,通常我们都是将id设置为主键(只有一个主键),这样的话可以唯一标识某一行记录,不会出现张冠李戴的错误。当我们将ID设成主键的时候,要注意不能为null,且要将这个字段设置为自增!!!如果忘了设置自增的话,那么往数据库插入数据的时候会插不进去,且程序也会报错。

    2.  有关索引:很多人都知道优化SQL语句查询需要用到索引,但惭愧的是刚参加工作的时候,连建立索引都不会。。。

           正常建表的时候我们是在字段那一列中操作,如下图是建立的四条索引。这里要注意的是,为了优化查询速度,我们通常在“索引类型”这里选择的是Normal,这个表示普通索引。Unique表示的是唯一索引,在这里我选择的三个字段所建成的唯一索引。举例:现在有表中有一条数据,那三个字段分别为“11856355,上海,https://www.baidu.com/”,那么如果后续有一条数据那三个字段也是“11856355,上海,https://www.baidu.com/”的话则无法插入,不管其他的字段是否一致;但是如果这时候有一条数据它的这三个字段为“11856355,北京,https://www.baidu.com/”,则这条数据可以插入。其实也就可以理解为MD5加密中的参数一样,有一个参数不同则会导致结果不同。唯一索引的作用就是为了防止在向数据库中插入数据的时候出现数据重复的情况。其实我在想主键有一个作用就是它将ID作为了唯一标识,这样我们没法插入一条相同ID的数据,所以我个人理解这时候主键也可以认为是一个唯一索引。

         

    3、事件

         大家通常都会使用闹钟的功能来提醒自己每天需要起床的时间,那么在使用数据库的时候,不知道大家会不会想到说我想在某天的几点执行一条SQL语句。那么这时候就提到了事件这个东西。新建一个事件,在“定义”里面写上需要你想要执行的SQL语句,而我们可以在“计划”中设计我们想要这条SQL语句执行的时间,给定一个初始时间,多久执行一次,给定一个结束时间(可有可无)。

         

           当我们用不到这个事件的时候,我们可以删除这个事件。但是如果说以后我们又需要用到这条SQL的时候,又要再建一个事件,为了偷懒我们可以改一下事件里的状态就好了。事件开启是ENABLE,关闭是DISABLE。

         

         新建一个数据库:名字根据需要;字符集选择标红的那个;排序规则不用管。

        

     4、 常用SQL语句

          (1) 查询数据库事件的状态:show variables like 'event_scheduler',如果返回的是off表示当前是关闭状态,如果是on当前已经开启状态。

          (2) 开启事件的SQL:set global event_scheduler = on

          (3) 将数据库中某个字段根据当前日期来更新:set “字段”= REPLACE(CONVERT(varchar(10), GETDATE(), 20), '-', '') , status=0

          (4) 基本的SQL语句:

               查询语句:select * from 表名 where 查询条件;

               查询表中数据量:select count(0)/count(*) form 表名 (where 查询条件)

               修改语句:update 表名 set 字段=? where 查询条件(修改多个字段值中间加英文的逗号即可)

               删除语句:delete from 表名 where 需要删除的数据

               插入语句:insert into 目标数据表(字段1,字段2,字段3) select 字段1,字段2,字段3 form 源表  (插入某些字段);insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表,保证所有字段跟字段类型保持一致)

               根据某个字段分别查询有多少数据量:SELECT 字段名,COUNT(0) from 表名 GROUP BY 字段名

  • 相关阅读:
    解决vmware Invalid memory setting (sched.mem.min)
    PostgreSQL教程
    rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法
    使用厂商MIB库查找设备OID值 并实施监控的方法
    【交换机】我司交换机上常用的一些MIB以及对应的OID说明
    CentOS6.8-minimal安装gnome桌面 安装NVC远程桌面连接
    LINUX新建和增加SWAP分区
    Caused by: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWo
    类与对象
    Volley框架源代码分析
  • 原文地址:https://www.cnblogs.com/shitechnology/p/13261138.html
Copyright © 2011-2022 走看看