主键(primary key):又叫主键约束,是表中的一个或多个字段,它的值用于唯一标识表中的某一条记录。
1
特点:
---单一字段创建主键
字段名称 数据类型 primary key
---单、多字段主键
primary key(字段名称,)---但不常用
---删除主键
alter table 表名 drop primary key;
12345678
主键的建立原则:
唯一键(unique key):又叫唯一约束,其保证在一个字段或一组字段里的数据与表中其他行的数据相比是唯一的。
1
特点:
---创建唯一键
字段名称 数据类型 unique key
---添加唯一键并且自定义名称
alter table 表名 add unique key 唯一键名称(字段,)
---删除唯一键
alter table 表名 drop index 唯一键名称;
注意:与主键的删除略有不同
123456789
自增长(auto increment):当对应的字段不给值或null的时候,系统会自动触发**从当前字段中已有的最大值执行+1操作**,得到一个新的值。
1
特点:
---添加自动增长
字段名称 数据类型 auto_increment
---删除自增长
alter table 表名称 modify 字段名称 数据类型;
注意:使用此方法不光清除了自增长,只留下键
---修改自增长值
alter table 表名称 auto_increment = 值
---修改步长
set auto_increment_increment = 值
123456789101112
空属性用null表示,在mysql中允许使用列设置为null或者not null
1
---设置 null / not null属性
字段 数据类型 NULL/NOT NULL
注意:并非所有字段都需要设置not null,主键默认就是not null,一般情况下建议使用not null,如果实在没有值则可以使用默认值代替(默认值可以使用占用空间很小的数据)
123
默认值(default):如果插入数据,某个;列没有数据,则使用默认值填充。
1
---设置默认值
字段名称 数据类型 default '值';
12
列描述(Comment):就是注释。
1
---设置列描述
字段名称 数据类型 comment '描述';
注意:在设置完列描述后要使用**show create table 表名称;**来查看。
123
---all查询所有
select all 列名 from 表名
---distinct去重复(一般情况下不适用耗性能)
select distinct 列名 from 表名
12345
where子句用于规定选择的标准,写法:select 字段 from 表名 where
having与where相似,但having发生在内存中
limit是用来限制结果数量的。
1
---从第一条开始的查询n条数据
select 字段 from 表名称 limit 数据量;
---从起始数+1开始查询n条数据
select 字段 from 表名称 limit 起始数,偏移量;
12345
---asc 升序(默认) desc 降序
---除了可以使用单一字段进行排序外,还可以添加第二个字段进行多字段排序,中间使用','进行隔开
select 字段 from 表名 order by 字段名 排序方式,字段名 排序方式;
注意:尽量不要使用
12345
例子:select count(*),字段名 from 表名 group by age;
12
以某张表为主,取出里面的所有记录,然后每条与另外一张表进行连接,不管能不能匹配上条件,最终都会保留。能匹配,正确保留;不能匹配,其他表的字段都置空 NULL。
1
---外连接分为两种
left join:左外连接,以左表为主
左表 left join 右表 on 左表.字段=右表.字段
right join:右外连接,以右表为主
左表 right join 右表 on 左表.字段=右表.字段
注意:限定条件使用on关键字
12345678
内连接[inner] join:从左表中取出每一条记录,去右表中与所有的记录进行匹配,匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留。
1
左表 [inner] join 右表 on 左表.字段 = 右表.字段;
注意:内连接可以没有连接条件即没有on之后的内容,这个时候系统会保留所有结果,比较浪费资源不建议这样使用。优先使用内连接。
123
---起别名
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;
1234
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。