MySQL基础练习02

CREATE DATABASE db4;
USE db4;
CREATE TABLE student(
id INT,
sname VARCHAR(30),
age INT,
sex VARCHAR(6),
address VARCHAR(100),
math INT,
englishi INT
);
DESC  student;
DROP TABLE student;

-- 添加数据
INSERT INTO student(`id`,`sname`,`age`,`sex`,`address`,`math`,`englishi`) 
VALUE
(1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65);
SELECT * FROM student;
-- 按照数学成绩排名,如果数学成绩一样,则按照英语成绩排名
SELECT * FROM student ORDER BY math DESC,englishi DESC;
-- 聚合函数,进行纵向的计算
-- 统计有多少个学生
SELECT COUNT(id) AS 学生人数 FROM student;
-- 统计英语成绩有多少个 ,排除了null值,没有把null值的这一列数据,计算进去
SELECT COUNT(englishi) FROM student; -- 7 
-- 改写统计英语成绩有多少个
SELECT COUNT(IFNULL(englishi,0)) FROM student; -- 8
-- 计算最大数学成绩
SELECT MAX(math)AS 数学成绩 FROM student;
-- 计算最小数学成绩
SELECT MIN(math) FROM student;
-- 计算数学成绩的总和
SELECT SUM(math) FROM student;
-- 计算数学成绩的平均分
SELECT  AVG(IFNULL(math,0)) FROM student;
-- 按照性别分组,分别查询男,女童鞋数学的平均分
SELECT sex,AVG(math)
FROM
student
GROUP BY sex;
-- 按照性别分组,分别查询男,女童鞋数学的平均分以及人数
SELECT sex,AVG(math),COUNT(id)AS 人数 FROM student GROUP BY sex;
-- 按照性别分组,分别查询男,女童鞋数学的平均分以及人数,要求低于70分的人,不参与分组
SELECT sex,AVG(math),COUNT(id)AS 人数 FROM  student WHERE math > 70 GROUP BY sex;
-- 按照性别分组,分别查询男,女童鞋数学的平均分以及人数,要求低于70分的人,不参与分组,分组之后选择人数大于2个的
SELECT sex,AVG(math),COUNT(id)AS 人数 FROM  student WHERE math > 70 GROUP BY sex HAVING 人数>2;
-- 每页显示3条数据  公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数
SELECT * FROM student LIMIT 0,3;
SELECT * FROM student LIMIT 3,3;
SELECT * FROM student LIMIT 6,3;
-- 非空约束
CREATE TABLE stu (
	id INT PRIMARY KEY AUTO_INCREMENT ,-- 添加主键 自增
	sname VARCHAR(30) NOT NULL, -- 非空
	phone_number VARCHAR(30) UNIQUE -- 唯一
);

DESC stu;

-- 删除表中的非空约束
ALTER TABLE stu MODIFY NAME VARCHAR (30);
-- 创建完表之后,添加非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(30) NOT NULL;
-- 删除唯一约束   注意:unqiue
ALTER TABLE stu DROP INDEX  phone_number;
-- 创建表之后,添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(30) UNIQUE;
-- 删除主键
ALTER TABLE stu DROP PRIMARY KEY; -- 注意: 删除主键和唯一需要用drop
-- 添加主键
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
-- 删除自动增长
ALTER TABLE stu MODIFY id INT;
-- 添加自动增长
 ALTER TABLE stu MODIFY id INT PRIMARY KEY AUTO_INCREMENT;
  -- 省略主键方式添加数据
 INSERT INTO stu VALUES(NULL,'古力娜扎','12345678910');
 INSERT INTO stu(sname,phone_number) VALUES ('宋吉吉','125678912');

-- 批量添加数据
INSERT INTO stu(sname,phone_number) VALUES
 ('宋吉吉','1234567812'),
 ('马蓉','1234567913'),
 ('老王','1234567914');
 SELECT * FROM stu;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值