[SQL] SQL语句注意事项

语法:

  1. SQL可以单行或者多行书写,以分号结尾
  2. SQL可以使用空格/缩进来增强语句的可读性
  3. 不区分大小写,但是关键字建议使用大写,这也是一个良好的习惯。
  4. 注释:单行注释:  -- 或者 # ,#是MySQL特有的,建议统一使用--
  5.             多行注释: /*   */

分类:

  1. 数据定义语言: 用来定义数据库对象(数据库,表,字段)
  2. 数据操作语言:用来对数据库表中的数据进行增删改
  3. 数据查询语言: 用来查询数据库中表的记录
  4. 数据控制语言: 用来创建数据库用户、控制数据库的访问权限。

数据库:

  1. 数据库创建时,使用utf8mb4的好处是在数据库中有的字符占4个字节而使用utf8作为字符集时就会导致错误。

表:

字符串:

  • 时间日期已经字符串需要用单引号括起来。

外键:

  • 外键所关联的必须要是唯一约束或者主键,总而言之必须唯一,确保数据的一直性和完整性质。
  • 如果直接删除关联的子表是可以直接删除的。
  • 在删除父表时,如果父表中的记录在子表中找不到这条记录,即使是默认的外键约束行为也可以删除父表的这条记录。

多表查询:

  • 一般我们说的多表查询都涉及外键和父子表之间的关系。
  • 比如一对多:一般前面指的是父表后面指的是子表。
  • 对于三张表的查询,至少有两个连接条件。
  • 下面是多表查询的两大类。

内外连接以及自连接区别:

  • 对于内外连接主要就是join 有没有left和right有的话就是外连接,只是join就是内连接
  • 如果join的两张表是同一张表那就是自连接
  • 联合查询的两张表字段数量和类型都必须保持完全一致。所以它也属于子查询的一类。

子查询:

  • 嵌套的select语句
  • 外面的可以是增删改查任何一个语句。

别名:

  • 对于SQL的执行顺序,第一步就是表名列表,对于一些较长的表明我们查找时可以先起别名。
  • 由于DQL语句的执行顺序第一步就是表名列表,起了别名后就不能再用原来的表名了。
  • 自连接查询必须起别名。

on子句和where子句

  • 对于on子句:在执行表连接(如 JOIN)时应用。在连接操作时应用,决定哪些记录会被连接在一起。优先级较高。它决定了两个表之间的匹配条件。
  • where子句:在连接操作完成后应用。

去重

  • distinct: 它之后的所有列组合起来都完全相同时才会认为重复。

事务:

  • 如果上一个事务我们没有rollback和commit然后直接begin开启了下一个事务,这时候未提交的事务会被主动提交。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值