python数据库-3
约束条件
对表中的数据进行限定,保证数据的正确性,有效性,完整性
约束条件在创建的时候,写在数据类型之后
1.非空约束:not null:该字段不能为空,插入数据的时候必须传入数值。
create table test(
id int,
name char(5) not null);insert into test values(1,'张三');insert into test(name) values('张三');select * from test;desc test;
2.默认值约束:default:在字段插入数据的时候,没有对其进行插入,那么就会将指定的默认值进行填充
默认值必须是选项中有的
create table test(name char(5),gerden enum('男' , '女' , '未知') default '未知'
);insert into test values('王五' , '女');insert into test(name) values('赵六');select * from test;
3.唯一约束:unique :字段值不能重复,唯一的
create table test(card_num int unique,name char(4)
);insert into test values(6228456 , '小明');
insert into test values(6228457 , '小红');select * from test;
4.主键约束:primary key :确保数据唯一且不能为空。
create table test(id int primary key
);insert into test values(440583);
insert into test values(440584);select * from test;
5.自动增加:auto_increment ; 设置自动增加的字段必须设置成为主键 , 默认设置成一个int类型,是从1或者上一条数据的数值开始往后递增1.
create table test(id int primary key auto_increment,name char(5)
);insert into test(name) values('鲁班');insert into test values(10 , '武则天');
insert into test(name) VALUES
('李白'),
('杜甫'),
('白居易');select * from test;
数据更新
1.表数据修改
update test set name='李四' where id=10;
2.表数据删除
create table test(id int primary key auto_increment,name char(5)
);insert into test(name) values('鲁班');insert into test values(10 , '武则天');
insert into test(name) VALUES
('李白'),
('杜甫'),
('白居易');select * from test;update test set name='范仲淹';update test set name='武则天' where id=10;delete from test where id=1;
delete from test;
数据查询
模糊查询
like子句:在where子句中可以使用该语句以及关键字结合实现模糊查询
select * from test where name like '%李四%';select * from test where name like '%李四';select * from test where name like '李四%';select * from test where name like '李_';
%:表示匹配0个或者多个字符(NULL除外)
_:表示匹配任意一个字符(若有多个下划线 , 有几个就表示匹配多少个)
消除重复项
对查询的结果去重 —— distinct
create table test(id int
);
insert into test values
(104),
(104),
(103),
(105),
(104),
(105);select * from test;
select distinct * from test;
排序
在查询中进行排序——order by
排序默认是升序
asc :指定字段进行升序排序
desc:指定字段进行降序排序
在排序中 , 如果出现数据重复 , 那么就会根据字段对应的上一个字段进行排序
create table test(id int,name char(5),age int
);
insert into test values
(3,'试试',15),
(2,'李四',19),
(3,'王五',15),
(4,'赵六',20),
(5,'吕七',10),
(6,'赵九',11);select * from test order by age desc;
select * from test;select * from test where age>15;
select * from test where age>15 order by age desc;