【数据库】数据库基础

SQL

SQL语言(结构化查询语言)又分为:
DDL(数据定义语言)用来管理库(新建、删除)、管理表(新建表、修改表结构、删除表)
DML(数据维护语言)数据的增删查改
DCL(数据控制语言)  新建一个用户/给拥护授权(管理)

主键和唯一键

  • 主键:用来标识每条记录的唯一字段,每个信息都有主键,用来唯一标识一条信息, 可以是一个字段,可以是多个字段组成(复合主键) 
  • 在 InnoDB 的引擎下,数据在硬盘存储是按照主键的排序方式存储的, 为了避免中间插入主键,通常建议把主键设置成一个永远递增、永不修改的值;
  • 主键不允许为空/主键不允许重复;
  • 每个表上都有一个主键,通常用自增字段作为主键

相似的点:

  •  主键和唯一键都不允许重复

不同点:

  • 主键不允许为空,唯一键允许为空
  • 存储上,数据的存储是按照主键递增顺序保存的,唯一键,看作另外有一套数据结构(比如set里面有唯一的一个key,通过key,可以找到对应的value值)

外键

  • 外键:是为了处理多表之间的约束关系
  • 外键的意义:为了让一张表发生变化,而和它产生关系的另一张表感受到这个变化,就需要增加外键来保持这种关系,也就是说,你删字段的时候,通知别人一声。

主键和索引的区别?

所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致,数据库在设计时,主键起到了很重要的作用。 

区别:

  1. 主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键是一个特殊的索引;
  2. 主键一定是唯一性索引,唯一性索引并不一定就是主键 ;
  3. 一个表中可以有多个唯一性索引,但只能有一个主键;
  4. 主键列不允许空值,而唯一性索引列允许空值。

数据库如何设计表结构?

  1. 确定需求及需求边界
  2. 确定有哪几类数据 (找对象,也就是找明确的实体)
  3. 找关系(一对一、一对多、多对多)
  4. 确定属性(主键、外键)
  5. 确定每个字段的数据类型及其他约束
  6. 可以有优化的进阶部分
                

 关于查询需要注意的点

select后面是筛选列
where子句是筛选行的 
order by 是对前面已经筛选出来的行和列进行一波排序显示  ASC(升序)   DESC(降序)
limit 是对排序后的结果再取一个截断
distinct(列名) 去重

select * from 表名,通常不建议使用select * from 表名进行全列查询,原因是:
            1.查询的列越多,意味着需要传输的数据量越大;
            2.可能会影响到索引的使用(命中问题);
            3.因为查询语句跟表的结构是绑定着的,如果某一天表的结构发生变化,而此时代码没有更改,就会出现一些代码错误,所以不建议select*

 

  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值