MySQL数据库列属性和高级查询

主键的介绍使用
# 第一种用法
create table primary_test(
id int primary key , # 在定义 id 字段后指定为主键
name varchar ( 20 ),
age tinyint
);
# 第二种用法
create table primary_test1(
id int ,
name varchar ( 20 ),
age tinyint ,
primary key (id) # 单独一行设置 id 为主键
);
复合主键
复合主键是由多个字段所组成的主键,复合主键中多字段的值不能都重复,如果是任意中的一个重复则
没关系。
复合主键特点
除了主键字段由多个字段组成以外,其他主键的特点它都有。但是需要注意,两个字段才是一个主键,
即两个字段组成的组件数据不能相同,而不是其中任意一个。
字段名称 数据类型 PRIMARY KEY
# 第一种用法
create table primary_test(
id int primary key , # 在定义 id 字段后指定为主键
name varchar ( 20 ),
age tinyint
);
# 第二种用法
create table primary_test1(
id int ,
name varchar ( 20 ),
age tinyint ,
primary key (id) # 单独一行设置 id 为主键
);
复合主键的添加
语法格式:
给表中的字段添加复合主键:
删除主键
删除主键也是对表的结构的操作,所以需要使用 alter 以及 drop 进行操作。如下:
示例:
删除 primary_test 表中的主键。
无论什么情况创建的主键,都可以使用 primary 的方式进行删除。可以通过 show index from 表名称
的方式查看表中的 key 名称。
建立主键的原则
一般一张表都会有一个主键,也只有一个主键,但是主键的创建并不是随意创建的,需要符合一下几个
点:
1. 主键应当是对用户没有意义的;
2. 不要更新主键。因为主键除了唯一地标识一行之外,再没有其他的用途了;
3. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等;
4. 主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行
以外的意义。
6.2 唯一键介绍使用
唯一键( unique key 又叫唯一约束,其保证在一个字段或者一组字段里的数据与表中其它行的数据相
比是唯一的。
PRIMARY KEY ( 字段名称 1, 字段名称 2, ...)
create table primary_test2(
id int ,
name varchar ( 20 ),
age tinyint ,
primary key (id,name) # 设置 id name 字段为复合主键
);
唯一键( unique key 又叫唯一约束,其保证在一个字段或者一组字段里的数据与表中其它行的数据相
比是唯一的。
PRIMARY KEY ( 字段名称 1, 字段名称 2, ...)
create table primary_test2(
id int ,
name varchar ( 20 ),
age tinyint ,
primary key (id,name) # 设置 id name 字段为复合主键
);
ALTER TABLE 表名称 DROP PRIMARY KEY ;
alter table primary_test drop primary key ;
唯一键的特点
1. 在一张表中可以存在多个唯一键;
2. 唯一键所在列的数据不能重复;
3. 唯一键允许该列数据为 null ,并且可以存在多个(不参与比较);
唯一键的使用
1 、单一唯一键
语法格式:
创建唯一键有两种形式,
2 、复合唯一键
其含义与主键类似,可以通过多个字段来创建一个唯一键:
注意:复合唯一键中两个字段才是一个唯一键,即两个字段组成的数据不能都相同,如果只是其中一个
相同就没事。
3 、删除唯一键
语法:
示例:
字段名称 数据类型 UNIQUE KEY
-- 第一种用法
create table unique_test(
id int unique key , # 设置 id 字段为唯一键
name varchar ( 20 ),
);
-- 第二种用法
create table unique_test1(
id int ,
name varchar ( 20 ),
unique key (uni) # 设置 id 为主键
);
自增长( auto_increment
当对应的字段不给值或者给 null 时,系统会自动触发从当前字段中已有的最大值执行+ 1 操作,得到一
个新的值。
自增长的特点
1. 任何一个字段要实现自动增长必须前提是一个索引 ( );
2. 自动增长的字段必须是一个数字 ( 整型 );
3. 一张表中只能有一个自动增长。
自增长操作
1 、添加自增长
示例 - 为字段 id 添加主键及自增长:
自增长相关
自增长相关信息可以通过 show variable like ‘%auto_increment%’ 命令查看:
show index from unique_test; # 查看唯一键的名称
alter table unique_test drop index id; # 删除复合唯一键
字段名称 数据类型 AUTO_INCREMENT
create table auto_increment_test(
id int primary key auto_increment , # 设置 id 字段为主键并自增长
name varchar ( 20 )
);
默认值 default ):某种数据会经常性的出现,可以一开始就指定好,在需要真实数据的时候,用户可
以选择性的使用默认值。
建议在创建表的时候,不要设置为 null 。如果设置为 not null ,但是不一定会给该字段添加数据,则可
以使用默认值。
default_test 表中插入数据:
列描述 Comment ):简单的理解为 SQL 的注释。
因为有些时候一个字段的名称无法直观的描述字段的含义,在这个时候需要通过列描述的方式为字段加
上注释 ( 这是一个非常好的建数据表的习惯 )
在创建了该字段之后,并不能直接查看到该信息,需要通过以下命令查看:
create table defualt_test(
name varchar ( 10 ) not null ,
sex varchar ( 20 ) default 'man'
);
# 第一种写法:指定非默认值的字段并传入参数,默认值不管。
INSERT INTO defualt_test (name) VALUES ( ' 新雨 ' );
# 第二种写法:不指定字段,直接传入值,带默认值的字段传入 DEFAULT
INSERT INTO defualt_test VALUES ( ' 新雨 ' , DEFAULT );
create table comment_test(
name varchar ( 20 ) comment 'users name'
);
group by
group by 可以根据一个或多个字段对查询结果进行分组显示。
测试案例:
注:分组过程中如果想查看其他字段,需要让其他字段都必须要使用聚合函数,否则分组会直接报错。
# ============= 运算符方式查询 =============
# 查询 age 字段等于 20 的数据
select * from student_info where age= 21 ;
# 查询 age 字段不等于 20 的数据
select * from student_info where age!= 20 ;
# 查询 age 字段大于 20 的数据
select * from student_info where age> 20 ;
# 查询 age 字段小于 20 的数据
select * from student_info where age< 20 ;
# =============== 范围查询 ===============
# 查询年龄在 1-20 之间的数据( 1 20 都包含)
select * from student_info where age between 1 and 20 ;
# 查询年龄在选项参数之中的数据
select * from student_info where age in ( 18 , 20 , 22 , 24 );
# 使用模糊查询查找 name 字段中包含 ' ' 的数据
select * from student_info where name like '% %' ;
# =============== 逻辑查询 ===============
# 逻辑与:两个条件都要符合才能被查询到
select * from student_info where name= ' 张三 ' and age= 19 ;
# 逻辑或:两个条件符合的任意一个都会被查询到
select * from student_info where name= ' 李四 ' or age= 22 ;
  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值