> 文章列表 > python数据库-3

python数据库-3

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;