1.SQL查询
1. distinct:不显示字段的重复值
2. 注意:
distinct和from之间所有字段值都相同才会去重
3.示例
1. sanguo 表中有哪些国家
select distinct country from sanguo;
select distinct country,sex from sanguo;
2.查询表记录时做数学运算
1. 运算符: + - * / %
2.示例:
1.查询表记录时所有英雄攻击力翻倍
select name ,gongji*2 ,gongji from sanguo;

2.嵌套查询(子查询)
1.定义:把内层的查询结果作为外层的查询条件
2.语法:
select … from 表名 where 字段名 运算符(select …)
3.示例:
1.把攻击值小于平均攻击值的英雄名字和攻击值查出来
select name,gongji from sanguo where gongji<(select avg(gongji) from sanguo);
2.找出每个国家攻击力最高的英雄的名字和攻击值
select name,gongji from sanguo where (country, gongji) in (select
country,max(gongji) from sanguo group by country);

3.多表查询
1.两种方式
1.不加where条件(笛卡尔积)
select t1.name,t2.name from t1,t2;

    2.加where条件select 字段名列表 from 表1,表2 where 条件;3.示例:查询省,市 详细信息select sheng.s_name,city.c_name from sheng,city where sheng.s_id=city.cfather_id;查询省,市,县详细信息select sheng.s_name,city.c_name,xian.x_name from sheng,city,xian where sheng.s_id=cfather_id and xfather_id=c_id;

4.连接查询
1.内连接(inner join)
1.语法结构
select … from 表1 inner join 表2 on 条件 inner join 表3 on 条件;
2示例:
1.查找省,市详细信息
select sheng.s_name,city.c_name from sheng inner join city on sheng.s_id=city.cfather_id;
2.查找省,市,县详细信息
select sheng.s_name,city.c_name,xian.x_name from sheng inner join city
on sheng.s_id=city.cfather_id inner join xian on xian.xfather_id=city.c_id;

2.外连接1.左连接(left jion)1.以左表为准显示查询结果2.右连接(right join)1以右表为主显示查询结果select ... from 表1 inner /left /right join 表2 on 条件;

5.约束
1.非空约束(not null)
1.不允许该字段的值为null

2.默认约束(default)1.插入记录时,不给该字段赋值,则使用默认值示例:create table t2(id int, name varchar(20) not null,sex enum("M" ,"F","S") not null default "S");

6.索引
1.定义
对数据库表的一列或者多列的值进行排序的一种结构(BTree方式)
2.优点
加快数据的检索速度
3.缺点
1.占用物理存储空间
2.当对表中的数据更新时,索引需要动态维护,占用系统资源,降低数据维护速度

4.索引示例1.开启运行时间检测mysql>   set profiling=1;2.执行查询语句(没有索引)select name from t1 where name="Lucy=88888";3.在name字段创建索引create index name on t1(name);4.再执行查询语句(有索引)select name from t1 where name="Lucy=88888";5.对比执行时间6.关闭:set profiling=0;

7.索引分类
1.普通索引(index) &&唯一索引(unique)
1.使用规则
1.可设置多个字段
2.约束 普通索引:约束 key标志:MUL ,null
  唯一索引:字段值不允许重复,可为NULL UNI
3.把经常用来查询的字段设置为索引字段
2.创建表创建
create table 表名(… index(name),index(age),unique(phnum),unique(cardnum));

    3已有表创建create  index 索引名 on 表名(字段名);create  unique index 索引名 on 表名(字段名);4.查看索引1.desc 表名;  --> key标志2.show index from 表名\G;5.删除索引drop index 索引名 on 表名;2.主键(primary key)  && 自增长 ( auto_increment)1.使用规则1.只能有1个字段2.约束: 字段值不允许重复,且不能为null3.KEY标志: PRI 4.通常设置编号id为主键,能唯一锁定1条记录2.创建表时创建create table 表名(id int primary key auto_increment,...);3.已有表创建alter table 表名 add primary key(id);指定自增长值从100开始create table t3(id int primary key auto_increment,name varchar(20)) auto_increment=100;4.删除1.先删除自增长alter table 表名 modify id int;2.删除主键alter table 表名 drop primary key;
3.外键(foreign key)1.定义: 让当前表字段的值在另一个表的范围内选择2.语法foreign key (参考字段名)references 主表(被参考字段名)on delete 级联动作on update 级联动作3.使用规则1.主表,从表参考字段数据类型要一致2.主表被参考字段:主键4.示例1.缴费信息表(财务)id      姓名        班级        缴费金额1       唐伯虎      AID08       3002       秋香        AID08       2002.学生信息表(财务)stu_id          姓名                缴费金额123       create table jftab(id int primary key, name varchar(20) not null,class char(5) default "AID" ,money smallint);insert into jftab values(1,"唐伯虎","AID08",300),(2,"秋香","AID08",200);create table bjtab(stu_id int ,name varchar(15),money smallint,foreign key(stu_id) references jftab(id)on delete cascadeon update cascade);insert into bjtab values(1,"唐伯虎",300);insert into bjtab values(3,"王八蛋",300);  报错4.删除外键1.查看外键名show create table bjtab;2.删除处理alter table 表名 drop foreign key 外键名;alter table bjtab drop foreign key bjtab_ibfk_1;5.在已有表中添加一个外键alter table 表名 add foreign key(stu_id)references jftab(id)on delete set nullon update set nullconstraint 外键名alter table 表名 add  constraint 外键名  foreign key(stu_id)references jftab(id)on delete set nullon update set null6.级联动作1.cascade数据级联删除,更新(参考字段)2. set null从表有相关联记录,删除,更新,从表字段值设置为null3.restrict(默认)从表有相关联记录,不让主表删除,更新

Mysql--day03相关推荐

  1. 第033层:Java核心知识点面试题之-MySql篇

    1.什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?数据库:英文单词DataBase,简称DB.按照一定格式存储数据的一些文件的组合.顾名思义:存储数据的仓库,实际上就是一堆文 ...

  2. 【数据库1】mysql,DDL/DML,DQL,外键约束,多表/子查询,事务,登陆,连接池,jdbc,redis,crontab,ftp,oracle,数据交换/存储/收集

    文章目录 1.mysql安装:存储:集合(内存:临时),IO流(硬盘:持久化) 1.1 服务端:双击mysql-installer-community-5.6.22.0.msi 1.2 客户端:命令行 ...

  3. MySQL数据库学习教程,从0到入门

    mysql day01课堂笔记 1.什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么? 数据库:英文单词DataBase,简称DB.按照一定格式存储数据的一些文件的组合.顾名思义 ...

  4. 数据库连接池之_c3p0

    C3p0 1,手动设置参数 1 @Test 2 public void demo1(){ 3 Connection connection =null; 4 PreparedStatement prep ...

  5. MySQL_2020.11.05

    MySQL MySQL day01 1.sql.DB.DBMS分别是什么,他们之间的关系? 2.什么是表? 3.学习MySQL主要还是学习通用的SQL语句,那么SQL语句包括增删改查,SQL语句怎么分 ...

  6. (B站动力节点老杜MySQL教程)MySQL课堂笔记-day03.txt

    文章目录 文件来源/资料下载: MySQL课堂笔记-day03.txt 1.约束 1.1.唯一性约束(unique) 1.2.主键约束 1.3.外键约束 2.存储引擎?(整个内容属于了解内容) 2.1 ...

  7. 03 mysql数据查询_MySql学习day03:数据表之间的连接、查询详解

    主键: 关键字:primary key 特点:不能为null,并且唯一. 主键分类: 逻辑主键:例如ID,不代表实际的业务意义,只是用来唯一标识一条记录(推荐) 业务主键:例如username,参与实 ...

  8. salt 启动mysql_saltsack自动化配置day03:服务部署mysql部署

    一.MySQL集群需求分享 1.抽象:功能模块 把基础的写成通用 服务部署也要抽象出来模块 redis内存有的多,有的少,可以config set在线更改 redis 安装.配置.启动 mysql 安 ...

  9. mysql(day03)

    复习 DDL 定义数据 CREATE / DROP / ALTER DML 操作数据据 INSERT / UPDATAE / DELETE DQL 查询数据 SELECT DCL 控制权限 FRANI ...

  10. MySQL 数据库 day-03

    三.常见函数 函数概念:将一组逻辑语句封装在方法体中,对外暴露方法名 好处:1.隐藏了实现细节 2.提高代码的重用性 调用:select 函数名(实参列表)[from 表]: 特点: 1.函数名 2. ...

最新文章

  1. TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器
  2. 计算机三级网络技术打印,全国计算机等级考试三级网络技术历年真题(整理_打印版)...
  3. [原]Asp.net替换不同版本的Dll文件碰到的问题以及解决办法.
  4. 华为鸿蒙系统智能手机_余承东再度确认:鸿蒙系统将适配到华为手机上
  5. mysql linux 数据库文件位置_mysql在linux下修改mysql数据库文件位置
  6. python java混合编程_详解java调用python的几种用法(看这篇就够了)
  7. greenplum配置高可用_0665-6.2.0-如何在CDH中配置HMS高可用
  8. 什么是在JavaScript中扩展错误的好方法?
  9. linux音频声卡 pulseaudio服务
  10. 九宫格拼图小游戏代码html,js实现九宫格拼图小游戏.pdf
  11. java jdom dom4j_实例分析jdom和dom4j的使用和区别
  12. ios 改变图片尺寸_iOS 修改图片尺寸的方法
  13. AF(操作者框架)系列(1)-LabVIEW中的模块化应用概述
  14. Scrapy框架爬取新闻!
  15. java 批量生成条形码,打包zip(springboot)
  16. 高清美图和GIF动图素材网站推荐,拿走不谢!
  17. 2022 IDLE 配置
  18. 基于C语言扫雷游戏的设计与实现
  19. excel查找命令_快速查找Excel功能区命令
  20. 【2020-10-28】DS12C887+驱动

热门文章

  1. arcgis 出图背景_利用ArcGIS做一张quot;三调quot;土地利用现状图
  2. 第一本人工智能教材入驻高中课堂,程序员们要加油了
  3. c语言计算正方体表面积的程序,智能控制程序设计 正方体求体积 项目一任务4:正方体求体积.doc...
  4. Python opencv进行圆形识别(圆检测)
  5. 基于Javaweb高校毕业生实习管理系统 .rar(论文+项目源码)
  6. matlab中的脚本与函数、自相关函数corr,xcorr,corrcoef的应用
  7. 区块链软件开发:区块链颠覆性渐渐开始  2019年需求侧开始涌现出大量需求...
  8. Python使用pymysql库连接MySQL数据库
  9. 富斯,迈克,天地飞4合1接收机说明书
  10. 通过adb命令更改手机屏幕比例