浅谈数据库的相关知识

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 字段名

           修复表:repair table 表名

      (5)有关分页

       MySQL中使用limit,例:select * from 表名 where 查询条件 limit 5

       sqlserver中使用top,例: select top 5 * from 表名 where 查询条件 

5、DDL、DML、DCL(参照https://www.cnblogs.com/kawashibara/p/8961646.html)

      DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身以及数据库对象,例如表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。从这里我们可以看到,DDL所站的高度,他不会对具体的数据进行操作。

          DDL的主要语句(操作)

          Create语句:可以创建数据库和数据库的一些对象。

          Drop语句:可以删除数据表、索引、触发程序、条件约束以及数据表的权限等。

          Alter语句:修改数据表定义及属性。

          DDL的操作对象:表

     DML(Data Manipulation Language 数据操控语言)用于操作数据库对象中包含的数据,也就是说操作的单位是记录。

          DML的主要语句(操作)

          Insert语句:向数据表张插入一条记录。

          Delete语句:删除数据表中的一条或多条记录,也可以删除数据表中的所有记录,但它的操作对象仍是记录。

          Update语句:用于修改已存在表中的记录的内容。

          DML的操作对象:记录

     DCL(Data Control Language 数据控制语句)的操作是数据库对象的权限,这些操作的确定使数据更加的安全。

          DCL的主要语句(操作)

          Grant语句:允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限。

          Revoke语句:可以废除某用户或某组或所有用户访问权限

          DCL的操作对象:数据库用户

 

posted @ 2020-07-13 17:41  写字楼间写字员  阅读(165)  评论(0编辑  收藏  举报