MYSQL常见问题总结

NO.1.sql语句定义和查询时候的一些问题:

  1. 所有的字段最好不要设置成NULL,可以设置为NOT NULL,为其设置一个默认值,通过DEFAULT xxx

  2. 将字段定义为BIGINT,INT等数字的时候,如果其大于0,那么可以加一个UNSIGNED来修饰,这样就不会有小于0的情况,表示无符号,只有我们认为的大于0的情况存在,没有负数的存在了

  3. 给字段和表添加注释是一个好习惯COMMENT '创建时间',

  4. 在创建数据库的语句之前,最好加上DROP TABLE IF EXISTS xxx表;

  5. 在创建SQL的语句之中,所使用的引号都是单引号---'',而不是双引号

  6. 为了区别SQL语句和我们创建或者查询的字段,可以把SQL保留字,全部大写,自定义的表明,数据等小写

  7. 金额用decimal类型,精确到分;

NO.2.MySQL的字段

  • bigint长度为8个字节
  • int   长度为4个字节
  • tinyint长度为1个字节

  PS: mysql不同类型的int决定了存储的占用的字节数量,而经常使用的tinyint(M):M默认为4,SMALLINT(M):M默认为6,MEDIUMINT(M):M默认为9,INT(M):M默认为11,BIGINT(M):M默认为20。**M表示最大显示宽度,建表若设置了zerofill(0填充),会在数字前面补充0 **。不是可以保存多大的值就保存多大的值,要从逻辑入手,性别就1位,身份证就17位,手机号就11位

NO.3.需要的数据是从多个表之中获取,该如何处理?

  首先我们通过查询语句,将需要的信息,提取出来,此时我们得到了多种信息;

  然后接下来,我们可以创建一个新的domain,里面的字段刚好是所需信息的全部字段,然后使用Mapper查询出来我们要的信息后,在Service层将信息组合,整合出来我们想要的信息;

  比如,Student表和Book表,student(id, name, age, gender, grade, class, school),book(id, book_name, book_price, book_author, book_detail, book_time, book_type)。如果我们想知道学生喜欢的书籍的类型和出版时间,那么可以新建新的domain,student_book(id, name, age, gender, book_name, book_detail, book_time, book_type),将其组合成一个新的domain, 这样处理将会方便很多。

例子:CREATE DOMAIN country_code char(2) NOT NULL;

 

 

 

 

 

 

 参考地址:https://www.cnblogs.com/prayjourney/p/9178131.html

 

posted @ 2020-11-10 11:19  潘潘-Devil  阅读(124)  评论(0)    收藏  举报