1 单表练习
DROP DATABASE db_1;
CREATE DATABASE db_1 CHARSET='gbk';
USE db_1;
SHOW VARIABLES LIKE '%char%';
ALTER DATABASE db_1 CHARSET='utf8';
CREATE TABLE student(
sname VARCHAR(4),
sex CHAR(1),
sage INT,
sdy BOOL,
sphoto BLOB,
score FLOAT(4,1),
smoney DECIMAL(9,2),
sbirth DATE
);
DESC student;
ALTER TABLE student CHANGE sbirth sbirthday DATETIME;
ALTER TABLE student DROP smoney;
ALTER TABLE student MODIFY sphoto LONGBLOB(9999);
INSERT INTO student(sname,sphoto) VALUES("韩梅梅",LOAD_FILE("C:/Users/Administrator/Desktop/img/1.jpg"));
SELECT * FROM student;
INSERT INTO student VALUES(
SUBSTRING(REPLACE(UUID(),"-",""),6,4),
IF(RAND()>0.5,'男','女'),
TRUNCATE(RAND()*8+18,0),
RAND()>0.5,
NULL,
TRUNCATE(RAND()*100,1),
CONCAT(TRUNCATE(RAND()*10+1900,0),'/',TRUNCATE(RAND()*12+1,0),'/',TRUNCATE(RAND()*30+1,0),' 10:00:00')
);
SELECT * FROM student;
UPDATE student SET score=score+1 WHERE sex='女';
ALTER TABLE student MODIFY sname VARCHAR(10);
UPDATE student SET sname=CONCAT(sname,'同学');
DELETE FROM student WHERE score < 30;
SELECT * FROM student;
DROP TABLE student;
CREATE TABLE student(
sid INT,
sname VARCHAR(4),
sage INT,
sex CHAR(1),
score FLOAT(4,1),
sbirth DATE
);
INSERT INTO student VALUES(
TRUNCATE(RAND()*10000,0),
SUBSTRING(REPLACE(UUID(),"-",""),6,4),
TRUNCATE(RAND()*8+18,0),
IF(RAND()>0.5,'男','女'),
TRUNCATE(RAND()*100,1),
CONCAT(TRUNCATE(RAND()*10+1900,0),'/',TRUNCATE(RAND()*12+1,0),'/',TRUNCATE(RAND()*30+1,0))
);
SELECT * FROM student;
SELECT NOW() > STR_TO_DATE('2000年01月01日','%Y年%m月%d日');
SELECT * FROM student WHERE sbirth < STR_TO_DATE('1905年01月01日 00:00:00','%Y年%m月%d日 %H:%i:%s');
SELECT sname 名字,SUBSTRING(sname,1,1) 姓 FROM student;
SELECT DISTINCT SUBSTRING(sname,1,1) 姓 FROM student;
SELECT sex 性别, COUNT(*) 人数,MAX(score) 最高分,MIN(score) 最低分
FROM student
GROUP BY sex
SELECT sbirth,MONTH(sbirth),EXTRACT(MONTH FROM sbirth)
FROM student;
SELECT MONTH(sbirth),COUNT(*)
FROM student
GROUP BY MONTH(sbirth)
ORDER BY MONTH(sbirth) DESC;
SELECT * FROM student WHERE sex='男' AND sage IN(20,22,26);
SELECT sage 年龄,COUNT(*) 人数 ,AVG(IFNULL(score,0)) 平均分
FROM student
WHERE score >=60
GROUP BY sage;
SELECT *
FROM student
WHERE score >=60 AND sage >20 AND sex='男' AND sname LIKE '%a%';
SELECT * FROM student WHERE MOD(MONTH(sbirth),12)=MOD(MONTH(NOW())+1,12);
SELECT * FROM student WHERE MONTH(sbirth)=IF(MONTH(NOW())+1=13,1,MONTH(NOW())+1);
SELECT *
FROM student
WHERE sex='女'
ORDER BY score DESC
LIMIT 0,3;
SELECT CONCAT('我叫',IFNULL(sname,'无名'),',今年',IFNULL(sage,0),'岁,考了',IFNULL(score,0),
'分,请叫我',IF(sex='男','帅哥',IF(sex='女','美女','妖精'))) 自我介绍
FROM student;
INSERT INTO student(sid) VALUES(1001);