mysql 表 查询语句

DQL :查询语句

排序查询语法:order by 子句

排序方式:ASC : 升序,默认的

DESC : 降序。

注意 :如果有多个排序条件,则当前边得条件值一样时,才会判断第二条件SELECT * from userinfo ORDER BY age ASC,id DESC;

聚合函数:将一列数据作为一个整体,进行纵向计算count:计算个数select count(age) from userinfo; -- 返回个数 这种方式是不会把null计算在内得

select count(ifnull(age,0)) from userinfo; -- 判断是否是null 是的话 按0来计算

select count(8) from userinfo; -- 查询记录 (不推荐)

max:计算最大值select Max(age) from userinfo; -- 计算表中年龄最大得

min:计算最小值select Min(age) from userinfo; -- 计算表中年龄最小的

sum:计算和select sum(age) from userinfo; -- 计算表中所有年龄之和

avg:计算平均值select avg(age) from userinfo; -- 计算表中平均年龄

分组查询:语法:group by 分组字段;

注意:分组之后查询的字段:分组字段,聚合函数

where 和 having的区别?where 在分组之前进行限定,如不符合条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来;

where 条件后面是不可以跟着聚合函数的,having可以进行聚合函数的判断

实现语句-- 根据性别来进行分组,并且查出每个组的平均年龄

select sex,avg(age) from userinfo group by sex;

-- 根据性别来进行分组,查出每个组的平均年龄,并且查出参与平均年龄的人数

select sex,avg(age),count(age) from userinfo group by sex;

-- 根据性别来进行分组,查出每个组的平均年龄,并且查出参与平均年龄的人数 并且过滤掉大于20岁的人

select sex,avg(age),count(age) from userinfo where age>20 group by sex;

-- 同上 并且过滤参与人数小于2的组

select sex,avg(age),count(age) from userinfo where age>20 group by sex having count(age)<2;

分页查询:语法:limit 开始的索引,每页查询条数

公式:(开始的索引-1)*每页查询条数select * from userinfo limit 0,3; -- 第一页

select * from userinfo limit 3,3; -- 第二页

select * from userinfo limit 6,3; -- 第三页

limit 只适用于MySql;每个数据库都有自有的分页方式

约束:概念: 对表中的数据进行限定,保证表中数据的正确性,有效性和完整性;

分类:主键约束:primary key

非空约束:not null

唯一约束:unique

外键约束

非空约束创建表时添加约束CREATE TABLE userinfo(

id:INT,

name:VARCHAR(20) not null -- name 为非空字段

)

创建表完成后在给表中字段添加非空字段ALTER TABLE userinfo MODIFY NAME VARCHAR(20) NOT NULL;

删除非空字段ALTER TABLE userinfo MODIFY NAME VARCHAR(20);

唯一约束:unique,值不能重复创建表时,添加唯一约束CREATE TABLE userinfo(

id INT,

name:VARCHAR(20) UNIQUE

)

创建完成后添加唯一约束 ( 注意:唯一约束字段可以有多个null )ALTER TABLE userinfo MODIFY NAME VARCHAR(20) UNIQUE;

删除唯一约束ALTER TABLE userinfo MODIFY NAME VARCHAR(20) -- 这种写法时错误的

ALTER TABLE userinfo DROP INDEX name -- 这个是正确的

主键约束 primary key注意含义:非空且唯一

一张表只能有一个主键

主键就是表中记录的唯一标识

在创建表时添加主键约束CREATE TABLE userinfo(

id INT PRIMARY KEY, -- 添加主键

name VARCHAR(20)

)

创建表完成后添加主键ALTER TABLE userinfo MODIFY id INT PRIMARY KEY;

删除主键ALTER TABLE userinfo MODIFY id int; -- 这种写法时错误的

ALTER TABLE userinfo DROP primary key; -- 这个是正确的

自动增长概念:如果某一列是int类型的,使用 auto_increment 可以完成自动增长CREATE TABLE userinfo(

id INT PRIMARY KEY AUTO_INCREMENT, -- 添加自动增长

name VARCHAR(20)

)

-- 注意 : 自动增长只跟上一条有关系 例如 上一条是100 下一条就是101

-- 删除自动增长

ALTER TABLE userinfo MODIFY id int;

ALTER TABLE userinfo MODIFY id int auto_increment;

外键约束 foreign key,让表与表产生关系,从而保证数据的正确性语法create table userinfo (

....

外键列,

constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称也就是主键名称)

)

删除外键alter table userinfo drop foreign key 外键列名称

创建表之后添加外键alter table userinfo add constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称也就是主键名称)

级联更新操作alter table userinfo add constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称也就是主键名称) ON update CASCADE ON DELETE CASCADE; -- ON UPDATE CASCADE 级联更新操作 ON DELETE CASCADE 级联删除操作

多表查询

内连接

隐式内连接查询:select * from emp,dept where emp.id=dept.rid -- emp.id 为外键 dept.rid 为主键

select

t1.name,

t1.gender,

t2.name

from

emp t1,

dept t2

where

t1.id=t2.rid;

显示内连接select * from emp inner join dept on emp.id=dept.rid;

select * from emp join dept on emp.id=dept.rid; -- inner 是可选的

内连接查询:1. 从哪些表中查询数据

2. 条件是什么?

3. 查询哪些字段

外连接查询左外连接:select * from emp left [outer] join dept on emp.id=dept.rid; -- [outer] 是可选的

-- 左外连接查询的是左表以及其交集部分右外连接select * from emp right [[outer]] join dept on emp.id=dept.rid;

-- 右外连接查询的是右表以及其交集部分子查询:嵌套查询-- 获取最大年龄的那一条信息

select Max(age) from userinfo; -- 查出结果集 例如:56

select * from userinfo where age=56;

select * from userinfo where age=( select Max(age) from userinfo );子查询的结果是单行单列的。子查询是可以作为条件,使用运算符判断-- 查询员工 工资小于平均工资的人

select * from userinfo where salary < ( select avg(salary) from userinfo )子查询的结果是单行多列的-- 查询某两个部门的全部员工信息

select * from userinfo where rid in (select id from userinfo where name="某个部门名称" or name="另一个部门名称";);子查询的结果是多行多列的-- 把子查询当作一个虚拟表

select * from dept t1 ,(select * from emp where join_date>"2011-11-11") t2 where t1.id=t2.rid;

更新完毕

mysql 完整性概念_mysql基础知识相关推荐

  1. mysql注释符号_MySQL基础知识(2021最新版教程)

    一.MySQL简介 MySQL是一种开放源代码的关系型数据库管理系统,使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. MySQL是开放源代码的,因此任何人都可以在General ...

  2. MySQL增删改查基础知识

    前几天学习了MySQL数据库的一些基础知识,了解了后台数据库的一些基础的数据操作:增删改查,对于项目前后台的数据传递有了些概念,总结了一些MySQL的基础语法. 一.数据存储形式发展和数据库作用 根据 ...

  3. 计算机基础知识 基本概念,计算机基本概念与基础知识.ppt

    计算机基本概念与基础知识 学什么? 上网.打字.聊天? 第1章 计算机基本概念与基础知识 1.1 概述 1.2 计算机数据表示 1.3 计算机系统 第一台电子计算机(ENIAC) 1.1.1 计算机的 ...

  4. 计算机网络——基本概念和基础知识

    文章目录 计算机网络--基本概念和基础知识 CN CN分类 CN性能指标 网络连接设备 因特网体系结构 因特网的网际协议IP 套接字 端口 TCP连接 localhost 127.0.0.1 本机IP ...

  5. mysql rollup 排序_MySQL基础实用知识集合(二)

    上期小编给大家汇总介绍了mysql的6个基础的知识点,下面继续给大家分享一下另外7个知识点: 7.什么是死锁?怎么解决? 死锁:两个或多个事务相互占用了对方的锁,就会一直处于等待的状态. 常见的解决死 ...

  6. mysql的知识_mysql基础知识

    mysql基础知识 1. MySQL是一个小型关系型数据库管理系统 2. MySQL的数据类型: 整数型:TINYINT,SMALLINT,INT,BIGINT 小数型:FLOAT,DOUBLE,DE ...

  7. mysql基础题知识基本语句_Mysql基础知识02-基础SQL语句 | 文艺数学君

    摘要这一篇介绍一下关于MySQL的基本操作和常用的命令. 主要会包括, 简单查询:desc; select (distinct)去重; select count(1)统计总数; 进阶查询:限制wher ...

  8. mysql知识测试_MySQL基础知识测试

    SQL基础知识测试 1 . SQL 指的是? Strong Question Language Structured Question Language Structured Query Langua ...

  9. mysql基础测试_MySQL基础知识测试

    SQL基础知识测试 1 . SQL 指的是? Strong Question Language Structured Question Language Structured Query Langua ...

最新文章

  1. Ajax的原理和应用
  2. 31. 如何计算对象已死(引用计数器算法、可达性分析算法)32.对象是否可 GC?33. Minor GC 和 Full GC
  3. 线性结构 —— 分块算法 —— 分块九讲
  4. 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
  5. java类加载配置文件_如何在java类中读取Properties配置文件
  6. Geoserver+postSQL+openlayer实现路径规划
  7. ToStringBuilder、HashCodeBuilder、EqualsBuilder、ToStringStyle、ReflectionToStringBuilder等学习...
  8. dsp+c语言字符串,DSP中常用的C语言关键字
  9. QSettings实现记住密码
  10. xp关机时询问对计算机做什么,XP关机的六个方法
  11. idea Process finished with exit code -1073741819 (0xC0000005)
  12. 【HTML】一个index.html文件,完成三码合一,完成万能打赏码
  13. 872. 叶子相似的树 / 剑指 Offer 33. 二叉搜索树的后序遍历序列 / 剑指 Offer 34. 二叉树中和为某一值的路径 / 剑指 Offer 35. 复杂链表的复制
  14. 蚂蚁金服上市,程序员流下了激动的眼泪
  15. Android-Glide清除缓存图片
  16. 这10道基础Java面试题,虐哭了多少人
  17. 区块链100讲:梅克尔树保障区块链数据不可篡改,想换根就要砍树!
  18. python之禅中文原文_Python之禅及释义
  19. 如何使用Google Apps脚本构建YouTube Uploader Bot
  20. JavaScriptJQuery_jQuery简介

热门文章

  1. san服务器型号,san存储服务器配置
  2. cn域名保护隐私_为什么域名隐私保护如此重要
  3. linux7本地yum安装,RHEL7安装本地离线yum源仓库
  4. notepad怎么运行php程序,notepad怎么运行php程序
  5. c语言学习-有一12个元素的整型数组b,从键盘输入数据,请以每行4个数据各个数据之间空两格的形式输出b数组的12个元素
  6. Unity2020.1新功能探路:光照相关更新
  7. 【Cinemachine智能相机教程】VirtualCamera(四):Noise属性
  8. 带有服务器回调的通用客户端——服务器 DotNet远程处理
  9. 在Pandas DataFrame中重塑数据
  10. Vue学习笔记(五)—— 状态管理Vuex