一、增删改

SELECT * from student;
SELECT * from classinfo;-- 添加:insert
-- 1.确定表 2.确定列 3.每个列对应的值
-- 第一种 (不确定列名):要求值的顺序必须和原表列的顺序一致
INSERT into student values(17,'张力','男','78787878','1999-01-01',1);-- 错误写法
-- INSERT into student values('李丹',18,'男','78787878','1999-01-01',1);
-- 违反了外键约束
-- INSERT into student values(18,'李丹','男','78782434','1999-01-01',5);
-- 违法了主键约束
-- INSERT into student values(1,'小新','女','78782344','1999-01-01',2);-- 学号是一个自增的,代表学号不要显示的指定值,可以让学号自己增长
-- 不支持自增
-- INSERT into student values('张明','男','7878','1999-01-01',1);-- 第二种方式:确定列名 :要求值的顺序必须和列的顺序一致(建议)
INSERT into student(name,stuid,phone,sex,cid,birthday)VALUES('小新',18,'232323','女',1,'2001-01-01');-- INSERT into student(name,stuid,phone,sex,cid,birthday)
--              VALUES(18,'小孔','232323','男',1,'2001-01-01');-- 支持自增
INSERT into  student(name,phone,sex,cid,birthday)VALUES('小峰','4335','男',1,'2000-01-02');-- 支持一次性添加多条数据
INSERT into  student(name,phone,sex,cid,birthday)VALUES('小黑','35363','男',1,'2000-01-02'),('小红','35252','男',1,'2000-01-02');create table stu1(
stuid int not null,
stuname VARCHAR(50),
sex VARCHAR(2)
)charset=utf8;drop table stu1;
-- 复制数据
INSERT into stu1(stuid,stuname,sex)
select stuid,name,sex from student;-- UPDATE 修改一定要加上where条件,不加where条件会把当前
-- 表中字段对应的值都改成了新值,where条件一般是主键
-- 1.把学号是1的学员姓名改为张三
update student SET `name`='张三' where stuid=1;
-- 一次性修改多个列的值
update student set `name`='张大山',sex='女' where stuid=3;-- 违反了主键约束
-- update student set stuid=3 where stuid=1;
-- 违反了外键约束
-- update student set cid=5 where stuid=1;-- 删除 DELETE 一定加上where条件 一般是主键
-- 删除学号是18的学员信息
DELETE from student  where stuid=18;-- 删除表:把表结构和表数据全删了
DROP table student;

二、单表查询


-- 查询:select
-- 1.查询所有学生信息
select * from student;-- 2.查询所有学生信息,显示学号,姓名,手机号
select stuid,`name`,phone  from student;-- 3.查询学生在那些班级中,显示班级编号
-- DISTINCT:对指定列的值去重
select DISTINCT cid from student;-- 4.对所有学生所有科目的成绩在5分,显示加分前的成绩
-- 和加分后的成绩
-- 可以给列起别名  as
select socre,socre+5 FROM score
select socre as 加分前的成绩 ,socre+5 "加分后的成绩" FROM scoreselect * from student;
select * from score;-- where :对查询结果进行筛选
-- 5.查询学号是1的学生信息
select * from student where stuid=1;-- 6.查询姓名是李四,性别是女的学员信息
select * from student where name='李四' AND sex='女';-- 7.查询成绩在70-80之间的学生成绩和学号
select socre,stuid from score WHERE socre>=70 and socre<=80;
-- BETWEEN.. and:两个值之间,包含两个值 同等于>= <=
select socre,stuid from score where socre BETWEEN 70 AND 80;
-- 查询成绩不在70-80之间的学生成绩和学号
select socre,stuid from score where socre not BETWEEN 70 AND 80;-- 8.in():代表一个集合,查询结果只要满足in集合里面其中一个元素值,
-- 就为真,就把该数据查询出来
-- 查询成绩是85或者69或者83的学生成绩和学号
select socre,stuid from score where socre in(85,69,83);
select socre,stuid from score where socre not in(85,69,83);select * from student;
-- like :喜欢  像    模糊查询
-- %:代表多个字符
-- 9.查询姓张的学生信息
select * from student where name like '张%';
-- 查询学生姓名以四结尾的学生信息
select * from  student where name like '%四';
-- _:代表一个字符
select * from student where name like '张_';
select * from student where name like '张__';-- 查询学生姓名包含字母m的学生信息
select * from student where name like '%m%';-- is null:字段为空就查询出来
select * from score where stuid is null;
select * from score where stuid is not null;-- and:并且,查询结果满足所有的条件才为真
-- 查询性别是男,班级编号是1的学生信息
SELECT * from student where sex='男' AND cid=1;-- or:或者,查询结果满足其中一个 就为真
-- 查询成绩是85或者69或者83的学生成绩和学号
SELECT socre,stuid from score WHERE socre=85 OR socre=69 OR socre=83;

1.查询语句编写顺序:SELECT … FROM … WHERE … GROUP BY … HAVING … ORDER BY …

执行顺序:WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

2.select五种子句

  • Where条件查询:使用比较运算

使用 BETWEEN AND, IN, LIKE和 NULL运算

使用逻辑运算符 AND, OR和NOT

  • Group by分组:把字段相同的值分到一个组里面
  • Having筛选:对查询结果进行筛选,针对于查询结果的列起作用
  • Order by排序 asc升序(默认),desc降序
  • Limit [数据的下标(默认0),显示的条数]限制结果条数

3.Having和where的区别

①where针对表中的列发挥作用,查询数据

having针对查询结果中的列发挥作用,筛选数据

②WHERE 在GROUP BY 之前

HAVING 在 GROUP BY 之后

③HAVING 后可使用聚合函数,WHERE不可以

SELECT * from score;
SELECT * from student;-- 分组函数又叫聚合函数
-- avg(列名):求平均值
-- 1.求科目编号是1的平均分
SELECT avg(socre) from score where subid=1;-- 2.max(列名):求最大值  min(列名):求最小值
-- 求科目编号是1成绩的最高分和最低分
SELECT MAX(socre),MIN(socre) from score where stuid=1;-- 3.sun(列名):求和
-- 查询学生编号是1所有科目的总成绩
SELECT SUM(socre) from score where stuid=1;-- count(列名):统计
-- 查询本校一共有多少学生
SELECT COUNT(stuid) from student;-- 分组统计
-- 各科目都已考完,成绩已出来
-- 怎么获取各科目的平均成绩
-- 1.查询哪些科目参加了考试
SELECT DISTINCT subid from score;
-- 2.对每个科目求平均值
SELECT avg(socre) from score where subid=1;
SELECT avg(socre) from score where subid=2;
SELECT avg(socre) from score where subid=2;-- 题目出现各、每肯定是分组
-- 如果使用了分组函数,考虑是否使用分组
-- group by:分组 把字段相同的值分到一个组里面
SELECT avg(socre) from score GROUP BY subid;
-- 如果使用ssqlse需要注意:select后面有几列,在group by后面写几列,聚合函数除外-- 查询出所有成绩加5分,成绩还是小于60分的学号是学生学号
-- where:对查询结果进行筛选,针对于表中真正存在的列起作用,where作用在group by之前
-- having:对查询结果进行筛选,针对于查询结果的列起作用,having作用在group by之后
SELECT stuid,socre+5 成绩加5分 from score where 成绩加5分<60;
SELECT stuid,socre+5 成绩加5分 from score HAVING 成绩加5分<60;
-- sqls的having不能单独用,必须配合group by用,mysql可以单独用-- 查询平均成绩大于70分的各科目的平均成绩
SELECT AVG(socre) from score GROUP BY subid HAVING avg(socre)>70;SELECT * from student;
-- ORDER BY:排序 asc升序(默认),desc降序
-- 查询所有学生信息,根据cid升序排列
SELECT * from student ORDER BY cid;
SELECT * from student ORDER BY cid desc;-- 可以根据多个字段排序
SELECT * from student ORDER BY cid asc,birthday desc;-- limit[数据的下标(默认0),显示的条数]:限制
-- 查询年龄最大的五名学生信息
SELECT * from student ORDER BY birthday asc LIMIT 0,5;
SELECT * from student ORDER BY birthday asc LIMIT 5,5;-- 常用函数
-- 1.获取当前系统的日期和时间
SELECT CURRENT_DATE(),CURRENT_TIME();-- 年月日,时分秒
SELECT NOW(),CURRENT_TIMESTAMP();-- 2.获取字符串的长度
SELECT LENGTH(name) from student;-- 3.拼接字符串
SELECT CONCAT(stuid,'(',name,')') from student;-- 4.大小写转换
SELECT UCASE(name) as 大写,LCASE(name) as 小写 from student;SELECT scoid,socre,IF(socre>=60,'及格','不及格') AS 等级 from score;

②mysql数据库(增删改查)相关推荐

  1. Mysql (一)Mysql 数据库增删改查

    mysql数据库增删改查增:create database DBname charset gbk; 删:drop database DBname; 改:alter database DBname ch ...

  2. Java连接Mysql数据库增删改查实现

    Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...

  3. mfc连接mysql增删改查_java实现mysql数据库增删改查

    1.连接数据库: import java.sql.Connection; import java.sql.DriverManager; public class DBConnection { stat ...

  4. MYSQL数据库 增删改查基础语句

    MYSQL数据库 增删改查基础语句 **********************DDL 语句 *********************   ( DDL 是数据定义语言的缩写,简单的说,就是对数据库内 ...

  5. MySQL数据库增删改查常用语句详解

    MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...

  6. python操作Oracle、PostgreSQL,MySql数据库增删改查

    python操作Oracle.PostgreSQL,MySql数据库增删改查,工作中可运行案例,直接上代码,供大家参考. # _*_ coding:UTF-8 _*_#import ServerCon ...

  7. mysql数据库增删改查关键字_MySQL数据库(增删改查语句)

    MySQL数据库(增删改查语句) 一.登录数据库:---->  mysql -uroot -proot;(对应用户名和密码) 二.SQL语句: 数据定义语言DDL  用来定义数据库.表.列,关键 ...

  8. go语言学习第八天==》mysql数据库增删改查、用go语言 客户端(client)发起htttp get请求,post请求,postForm请求,Head请求,Do请求

    go语言学习第八天==>mysql数据库增删改查.用go语言写 客户端(client)发起htttp get请求,post请求,postForm请求,Head请求,Do请求 引包 import的 ...

  9. flask对mysql数据库增删改查_Flask学习(三) - Flask-SQLAlchemy对数据库增删改查

    Flask-SQLAlchemy对数据库增删改查 安装 pip install flask-sqlalchemy 具体不多说了,主要是对数据库进行简单的增删改查,上代码,看注释 @app.route( ...

  10. Golang原生sql操作Mysql数据库增删改查

    Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用. 首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动 ...

最新文章

  1. 有“声”以来,语音如何识别?
  2. 『Balancing Act 树的重心』
  3. linux的/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow
  4. C++语言程序设计上机指导(二级),C++语言程序设计上机指导(二级)
  5. c语言考试常考试卷,c语言面试最必考的十道试题,求职必看!!!
  6. UI控件之(TextField)
  7. logstash之codec插件
  8. 【Maven由浅入深】1.maven初体验
  9. H5 video 播放器demo
  10. malloc 是如何分配内存的?
  11. 台式计算机总是重启,台式电脑总是自动重启,查不出问题!
  12. ppt矩形里面的图片怎么放大缩小_PPT图片如何点击放大
  13. 神仙级控线练习,文艺极简水彩线描简笔画植物:草叶集(二)
  14. Mac--键盘输入的技巧
  15. 青岛科技大学计算机田玉平,控制理论与控制工程;就业怎么样/?博士.
  16. 金价看跌k线图组合图解(孤岛组合)
  17. ad域控服务器如何允许软件安装,AD域服务器实现软件安装部署
  18. 数据脱口秀 | 从小扎到盖茨,哪位科技大佬最可能黑化为大反派?
  19. 手工玫瑰花_布艺玫瑰花的做法教你手工制作布艺玫瑰花的折法图解教程
  20. 中国移动首次出现营收下滑,中国联通和中国电信的策略凑效

热门文章

  1. PC傻瓜式安装黑苹果
  2. OTP-638D2热电堆开发指南
  3. 《灵魂冲浪者》——用坚强的、爱的灵魂迎接挫折
  4. 读《程序员修炼之道》
  5. 安易网上商品交易系统
  6. python 绘制花球_巧手匠心——手作课堂-中国大学mooc-题库零氪
  7. Springboot毕设项目警务人员工作信息系统设计与实现s6ag7(java+VUE+Mybatis+Maven+Mysql)
  8. 听了邹欣副总裁的讲座对ai的理解
  9. dpdk编译安装igb_uio报错 insmod: ERROR: could not insert module igb_uio.ko: File exists 问题
  10. UCloud杨镭:贴近用户需求做研发,将“云”简单化...