SQL_创建表,删除表,增删改查
-- 注释
-- 创建表格
-- not null 非空约束,该列数据不可以为空
-- primary key 这一列是主键,全表唯一,不能重复
-- auto_increment 自动增长,不用我们维护
blob 二进制文件,视频,头像,存储的格式选
create table stu(
sno int(5) not null primary key auto_increment,
sname varchar(50) not null,
sage int(3) -- 最后一个不能加,
)
-- 删除表格
-- drop table stu;
-- 添加数据 insert into 表名(字段1,字段2,) values (值1, 值2)
insert into stu (sname, sage) values ('颜兵', 22);
insert into stu (sname, sage) values ('小翠', 32);
insert into stu (sname, sage) values ('花花', 20);
insert into stu (sname, sage) values ('小文', 100);
insert into stu (sname, sage) values ('妈妈', 92);
insert into stu (sname, sage) values ('爸爸', 52);
insert into stu (sname, sage) values ('液压油', 42);
insert into stu (sname, sage) values ('花猪', 32);
insert into stu (sname, sage) values ('xia花猪', 1);
-- WHERE 在原始数据基础上进行筛选
-- 删除数据 delete from 表名where 条件 不加条件就全部删除
DELETE FROM stu WHERE sage = 22;
DELETE FROM stu;
-- 修改数据 UPDATE 表名SET 字段 = 值, (只有一个的时候不加,)字段2 = 值2... WHERE 条件 不加条件就全部修改
UPDATE stu SET sage = 28 WHERE sname = '小文';
UPDATE stu SET sage = 28, sname = '小颜' WHERE sno = 6 ;
-- 查询 * 查所有 (简单查询)
-- 简单查询 select *|字段1, 字段2, 字段3... from xxx
-- 全表查询
select * from 表名;
-- 查某些字段 如:名字,年龄
select sname, sage from stu;
-- 查询时,字段名不好,可以更改
select sname as `姓名`, sage as `年龄` from stu;
-- 带条件的查询语句,where 年龄等于28的信息,筛选
select * from stu WHERE sage = 28;
select * from stu WHERE sage > 28;
-- 不等于: <> !=
select * from stu WHERE sage <> 28;
select * from stu WHERE sage != 28;
-- 查询年龄在28-56之间的人的信息 sage between 28 and 56 从28到56
select * from stu where sage between 28 and 56;
-- 查询年龄是28,32的人的信息
select * from stu where sage in (28, 32);
-- 通过 and 和 or 进行链接
select * from stu where sage = 28 or sage = 32;
-- 查询姓小的人的信息 姓小的 '小%' 名字里带小的 '%小%'
select * from stu where sname like '小%';
-- 登录用户名和密码
select * from stu where username = ? and password = ?;
-- 创建一个学生表
CREATE TABLE stu_new(
sno INT(5) PRIMARY KEY auto_increment,
sname VARCHAR(30),
sgender INT(2),
sage INT(5),
score INT(5),
class varchar(50)
)
-- 插入数据信息
INSERT INTO stu_new (sname, sgender, sage, score, class) VALUES
("赵本山", 1, 65, 90, "一年二班"),
("范伟", 1, 60, 23, "一年二班"),
("小沈阳", 1, 31, 9, "一年一班"),
("沈春阳", 2, 28, 60, "一年一班"),
("严启航", 1, 18, 99, "一年一班"),
("赵四", 1, 38, -9, "一年三班"),
("武则天", 2, 1300, 67, "一年三班");
-- 统计每个班的平均成绩是多少?
-- 聚合函数,sum() 求和 , count() 计数, avg() 平均值 , max() 最大, min() 最小
-- 聚合函数一般和 group by 子句搭配使用
-- group by 分组
-- 根据班级进行分组,相同班级划分到一组,再算分数的平均值
-- 规定,凡事没有放在聚合函数内的东西,都要堆在 GROUP BY 后面
SELECT class, AVG(score) FROM stu_new GROUP BY class;
-- 统计男生女生有多少人?
SELECT sgender, count(*), AVG(score), MAX(score), MIN(score) FROM stu_new GROUP BY sgender;
-- 统计每个班级的男生女生多少人?
SELECT class, sgender, count(*) FROM stu_new GROUP BY class, sgender;
-- 对统计结果进行筛选, 计算完结果后筛选, HAVING 条件
-- 统计出平均成绩合格的班级
SELECT class, AVG(score) FROM stu_new GROUP BY class HAVING AVG(score) >= 60;
-- 排序
SELECT * FROM stu_new ORDER BY score ASC; -- 默认 小到大
SELECT * FROM stu_new ORDER BY score DESC;
-- LIMIT 分页 从那开始取,取多少条 (n-1)*数据量
-- LIMIT (n-1)* pagesize, pagesize
SELECT * FROM stu_new LIMIT 3; -- 显示(取)前3条数据
SELECT * FROM stu_new LIMIT 3, 3; -- 显示(取)从第几条开始取,取多少条数据

浙公网安备 33010602011771号