MySQL之建库建表增删查改

--  建库
create database Student charset utf8mb4;
-- 查看数据库
show databases;
-- 查看数据库结构
show create database Student;
--  删库
drop database Student;

-- 建表
CREATE TABLE students (
   id INT PRIMARY KEY auto_increment,
   sn INT UNIQUE,
   name VARCHAR(20) DEFAULT 'unkown',
   qq_mail VARCHAR(20),
   classes_id int,
 FOREIGN KEY (classes_id) REFERENCES classes(id)
);
-- 删表
DROP TABLE students;

----------------------  插入
-- -- 将学生表中的所有数据复制到用户表
insert into test_user(name, email) select name, qq_mail from Student;
-- 按照属性顺序  全部插入
INSERT INTO student VALUES (101, 10001, '孙悟空', '11111');
-- 多行数据指定插入
INSERT INTO student (id, sn, name) VALUES
 (102, 20001, '曹孟德'),
 (103, 20002, '孙仲谋');
 
-------------------   修改
-- 将exam_result表中 孙悟空同学的数学成绩变更为 80 分
UPDATE exam_result SET math = 80 WHERE name = '孙悟空';

-------------------  删除
DELETE FROM exam_result WHERE name = '孙悟空';
-- drop 作用于表 视图   而delete 作用于属性值或元组

-------------------  查询
SELECT * FROM students;
select id, sn , name from students;
-- 去重查询
select distinct math from exam_result;
-- 条件查询
select id, sn , name from students where 条件;
-- 范围查询,成绩在[80,90]的同学及语文成绩
SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;
SELECT name, chinese FROM exam_result WHERE chinese >= 80 AND chinese <= 90;
-- % 匹配任意多个(包括 0 个)字符
SELECT name FROM exam_result WHERE name LIKE '孙%';-- 匹配到孙悟空、孙权
-- _ 匹配严格的一个任意字符
SELECT name FROM exam_result WHERE name LIKE '孙_';-- 匹配到孙权
-- 带有排序的查询
select distinct math from exam_result order by math desc;
-- desc 降序  asc 升序

-- 分组查询
select id, sn , name,classes_id  from students group by classes_id;
-- 显示平均工资低于1500的角色和它的平均工资
select role,max(salary),min(salary),avg(salary) from emp group by role 
having avg(salary)<1500;
-- 常见聚合函数
-- COUNT    返回数据的数量
-- SUM      返回数据的总和,不是数字没意义
-- AVG      返回数据的平均值,不是数字没意义
-- MAX      返回数据的最大值,不是数字没意义
-- MIN      返回数据的最小值,不是数字没意义

-- 内连接
-- 查询“许仙”同学的 成绩
select sco.score from student stu inner join score sco on stu.id=sco.student_id
and stu.name='许仙';
-- 或者
select sco.score from student stu, score sco where stu.id=sco.student_id and
stu.name='许仙';

-- 外连接
-- “老外学中文”同学 没有考试成绩,也显示出来了
select * from student stu left join score sco on stu.id=sco.student_id;
-- 对应的右外连接为:
select * from score sco right join student stu on stu.id=sco.student_id;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值