提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、列属性
    • 1、 主键
    • 2、 唯一键
    • 3、 自动增长
    • 4、 其他属性
  • 二、高级查询
    • 1、select 选项
    • 2、条件限制
      • 2.1 where
      • 2.2 having
      • 2.3 limit
      • 2.4 order by(排序)
      • 2.5 group by
    • 3、连接查询
      • 3.1 外连接
      • 3.2 内连接
      • 3.3 AS
  • 三、结语

一、列属性

1、 主键

主键(primary key):又叫主键约束,是表中的一个或多个字段,它的值用于唯一标识表中的某一条记录。

特点:

  • 一个表中只能有一个主键
  • 主键值必须唯一标识表的每一行
  • 主键值不可重复,也不可为空(NULL)
---单一字段创建主键
字段名称 数据类型 primary key---单、多字段主键
primary key(字段名称,)---但不常用---删除主键
alter table 表名 drop primary key;

主键的建立原则:

  • 主键应是对用户没有意义的
  • 不要更新主键
  • 主键不应包含动态变化的数据,如时间戳等
  • 主键应由计算机自动生成
  • 一般来说就是id,特殊情况除外

2、 唯一键

唯一键(unique key):又叫唯一约束,其保证在一个字段或一组字段里的数据与表中其他行的数据相比是唯一的。

特点:

  • 一张表中可以存在多个唯一键
  • 唯一键所在列中的数据不能重复
  • 唯一键允许该列数据为null,并且可以存在多个(但是不提倡)
  • 与主键的区别:主键唯一,唯一键不唯一,主键不为null,唯一键可为null
---创建唯一键
字段名称 数据类型 unique key---添加唯一键并且自定义名称
alter table 表名 add unique key 唯一键名称(字段,)---删除唯一键
alter table 表名 drop index 唯一键名称;
注意:与主键的删除略有不同

3、 自动增长

自增长(auto increment):当对应的字段不给值或null的时候,系统会自动触发**从当前字段中已有的最大值执行+1操作**,得到一个新的值。

特点:

  • 任何一个字段要实现自动增长必须前提是一个索引(键)
  • 自动增长的字段必须是一个数字(整型)
  • 一张表中只能有一个自动增长
---添加自动增长
字段名称 数据类型 auto_increment---删除自增长
alter table 表名称 modify 字段名称 数据类型;
注意:使用此方法不光清除了自增长,只留下键---修改自增长值
alter table 表名称 auto_increment = 值---修改步长
set auto_increment_increment = 值

4、 其他属性

空属性用null表示,在mysql中允许使用列设置为null或者not null
  • null:当没有给该字段添加任何值的时候就是null,null不能参与运算
  • not null:被设置为not null 的列必须存在
---设置 null / not null属性
字段 数据类型 NULL/NOT NULL
注意:并非所有字段都需要设置not null,主键默认就是not null,一般情况下建议使用not null,如果实在没有值则可以使用默认值代替(默认值可以使用占用空间很小的数据)

默认值(default):如果插入数据,某个;列没有数据,则使用默认值填充。
---设置默认值
字段名称 数据类型 default '值';

列描述(Comment):就是注释。
---设置列描述
字段名称 数据类型 comment '描述';
注意:在设置完列描述后要使用**show create table 表名称;**来查看。

二、高级查询

1、select 选项

---all查询所有
select all 列名 from 表名---distinct去重复(一般情况下不适用耗性能)
select distinct 列名 from 表名

2、条件限制

2.1 where

where子句用于规定选择的标准,写法:select 字段 from 表名 where

2.2 having

having与where相似,但having发生在内存中

2.3 limit

limit是用来限制结果数量的。
---从第一条开始的查询n条数据
select 字段 from 表名称 limit 数据量;---从起始数+1开始查询n条数据
select 字段 from 表名称 limit 起始数,偏移量;

2.4 order by(排序)

---asc 升序(默认) desc 降序
---除了可以使用单一字段进行排序外,还可以添加第二个字段进行多字段排序,中间使用','进行隔开
select 字段 from 表名 order by 字段名 排序方式,字段名 排序方式;注意:尽量不要使用

2.5 group by

例子:select count(*),字段名 from 表名 group by age;

3、连接查询

3.1 外连接

以某张表为主,取出里面的所有记录,然后每条与另外一张表进行连接,不管能不能匹配上条件,最终都会保留。能匹配,正确保留;不能匹配,其他表的字段都置空 NULL。
---外连接分为两种
left join:左外连接,以左表为主
左表 left join 右表 on 左表.字段=右表.字段right join:右外连接,以右表为主
左表 right join 右表 on 左表.字段=右表.字段注意:限定条件使用on关键字

3.2 内连接

内连接[inner] join:从左表中取出每一条记录,去右表中与所有的记录进行匹配,匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留。
左表 [inner] join 右表 on 左表.字段 = 右表.字段;注意:内连接可以没有连接条件即没有on之后的内容,这个时候系统会保留所有结果,比较浪费资源不建议这样使用。优先使用内连接。

3.3 AS

---起别名
select student.name,parent.name,parent.age... from student join parent on student.id=parent.student_id;select st.name,pa.name,pa.age... from student as st join parent as pa on st.id=pa.student_id;

三、结语

九天阊阖开宫殿,万国衣冠拜冕旒。王维《和贾舍人早朝大明宫之作》

MySQL初级篇(二)相关推荐

  1. mysql 基础篇(二) 账号、权限管理

    mysql 基础篇(二) 账号.权限管理.备份与还原 建立账号密码: Grant all on test.* to "cj"@"localhost" ident ...

  2. mysql为什么用b加树_为什么MySQL要用B+树?聊聊B+树与硬盘的前世今生【宇哥带你玩转MySQL 索引篇(二)】...

    为什么MySQL要用B+树?聊聊B+树与硬盘的前世今生 在上一节,我们聊到数据库为了让我们的查询加速,通过索引方式对数据进行冗余并排序,这样我们在使用时就可以在排好序的数据里进行快速的二分查找,使得查 ...

  3. MySQL初级篇——常用SQL语句(大总结)

    文章目录: 1.数据库的相关操作 1.1 连接数据库 1.2 创建数据库 1.3 查看数据库有哪些 1.4 查看指定的数据库 1.5 删除指定的数据库 1.6 使用数据库(很重要) 1.7 用户的创建 ...

  4. Python学习日记(三十四) Mysql数据库篇 二

    外键(Foreign Key) 如果今天有一张表上面有很多职务的信息 我们可以通过使用外键的方式去将两张表产生关联 这样的好处能够节省空间,比方说你今天的职务名称很长,在一张表中就要重复的去写这个职务 ...

  5. android mvp 登录,Android MVP(初级篇二、登陆案例)

    这篇文章仅仅是一个初识MVP的小白登陆项目总结,关于MVP知识点本片文章先不谈,通过本篇文章能简单应用达到效果即可. 效果: (XML我没写Edittext,就一个Button应付了,吐司是响应成功后 ...

  6. MySQL初级篇——存储过程、存储函数的相关概念及应用举例

    文章目录: 1.什么是存储过程? 2.存储过程操作相关SQL 3.存储过程实操SQL 4.存储函数操作相关SQL 5.存储函数实操SQL 6.存储过程.存储函数的优缺点 1.什么是存储过程? 含义:存 ...

  7. MySQL初级篇——视图的相关概念及应用举例

    文章目录: 1.浅谈数据库对象 2.什么是视图? 3.视图操作相关SQL 4.视图实操SQL 5.视图的优缺点 1.浅谈数据库对象 2.什么是视图? 视图一方面可以帮我们使用表的一部分而不是所有的表, ...

  8. MySql初级篇:入门mysql这一篇就够了(bushi)

    文章目录 数据库与数据库概念 关系型(RDBMS)与非关系型(非RDBMS)数据库管理系统 设计原则 1.表.记录.字段 2.表的关联关系:**一对一.多对多.一对多**.自我引用 MySQL数据库是 ...

  9. MySQL初级篇 | 修改MySQL密码的四种方法(适合初学者)

    ✅作者简介:大家好我是@每天都要敲代码,希望一起努力,一起进步!

最新文章

  1. idea main java.lang.ClassNotFoundException
  2. Leetcode 剑指 Offer 57 - II. 和为s的连续正数序列 (每日一题 20210809)
  3. python基础之循环与迭代器
  4. 【AI基础】OpenCV,PIL,Skimage你pick谁
  5. Visual C++设计UDP协议通讯示例
  6. c#中的非托管资源释放 (Finalize和Dispose)
  7. 【收藏】批量导出docker镜像
  8. pytorch实现Dropout与正则化防止过拟合
  9. 弱电施工流程及规范(二)
  10. mysql btree面试_java面试题:你了解mysql的B+TREE索引吗?
  11. 神经网络的迭代次数有可能被计算出来吗?
  12. Flask的Jinjia2模板
  13. Linux:Linux下进程间通信方式的学习
  14. 关于Android方向传感器的终极解释
  15. 【毕业设计】 大数据二手房数据爬取与分析可视化 -python 数据分析 可视化
  16. 【Python可视化展示】-多维数据可视化分析
  17. 对计算机接口提出的新要求吗,2017年秋微机原理与接口技术
  18. 手动build unity3d的docker镜像
  19. OpenGL 实现 RGBA 转 I420
  20. Ubuntu16.04强制关机再进入系统出现死机的问题

热门文章

  1. NBUT-2019-ICPC训练赛
  2. 如何进行MySQL主从复制与读写分离的配置
  3. 非985 非211二本生的万字面试经历流水账
  4. 什么PDF在线压缩器好用,怎么操作?
  5. css3字体闪烁炫酷,css3 scale动画 字体、输入框等会闪烁,怎么解决?
  6. 国产化7K325T板卡学习资料: 基于国产化Ch-7K325T 的 FMC接口PCIe卡 国产化板卡
  7. springboot整合ueditor上传图片配置(JSP)从新建项目开始
  8. 电子台账之财务报表:自动匹配财务指标名称
  9. POJ 3470 Walls 已翻译
  10. 新能源汽车充电硬件接口标准