学海无涯,不要过早为自己定界

这篇文字主要是对自己一个前端学习数据库MYSQL的笔记做了一些整理温习!

更为详细的 数据库MYSQL介绍

更好的 数据库MYSQL的入门

这篇文章主要写了

1.数据库MYSQL的可视化操作

2.基本上会遇到的所有SQL语句

我还准备了SQL语句练习库  在下载安装Navicat后,可通过Navicat将它导入数据库,然后对照着我的笔记敲敲学学!

数据库可视化软件------Navicat


数据库里边存放的是表,表与表之间是有关联的,而且可以对表进行相关操作(增,删,改,查);
 
表格的代表记录(一条数据)
代表字段属性
主键能唯一的代表某一条记录的列(或者叫字段)主键不能重复
外键:表中的某一列的值是别的表的主键的值,该列就叫外键
( 设置外键时要注意2个表的这俩列,必须类型保持一致,且一张表外键的值,必须在另一张表里有)
MySQL常用的俩种表格类型
MyISAM 强调的速度   不支持外键 也不支持事务
InnoDB  稳定性 支持外键     也支持事务!(5.2以上默认InnoDB)
工具创建数据库

选好名字,字符集,最后一个不用管。

Navicat 操作mysql数据库是可视化的,即你对数据库的一些操作都是可见的,十分简单,个人认为,对我们这种初学着十分方便


 

数据库的导入和导出
  
数据库命令  (不区分大小写,不能中文
SELECT、INSERT、 UPDATE 、DELETE
select  insert   update   delete
 查询    插入     删除     修改
 
mysql -uroot -p密码       进入mysql
库的操作
show databases; 查看所有数据库
create database 名字      创建数据库
use 姓名                  进入数据库 
drop database 名字        删除数据库
表的操作
show tables;     查看所有表格
create table 表名(id int,name varchar(10),age int);   创建表
创建一个姓名(整型)名字(固定10长度字符串类型),年龄(整型)的表格
drop table 名字;          删除表
行的操作
添加记录    []代表可省略;
insert into 表名 values('值1 ','值2 ','值3 '......................)
insert [into] 表名[(列名)] values(值列表);  如果省略了(列名)那么主键的位置必须留下,用空‘’隔开;
 
删除记录
delete from 表名 [where 条件 ];如果没where则将表中所有记录删除;

这段命令将h5class表中 id为15的记录;
 
查询记录
select 字段名1,字段名2.../* form 表名[where 条件];

这段代码将查询teacher表中name为侯晋龙的记录的cid和classname;
 

这段代码将查询teacher表中的所有记录;
 

select 字段名1 as 别名1,字段名2 as 别名2 ... form 表名[where 条件]; 给字段重命名
 

自定义字段
 
列的操作
修改字段
update 表名 set 字段名1=‘值1’,字段名2=‘值2’........... [where 条件 ]; 如果没where则将表中所有该字段的值改变
 

这段代码将h5class表中所有id>4的记录的cid字段的值改为2;
 
select查询 之[where条件 ]   同样适用于update更新和delete删除
 

xsb表
 

在xsb表中查询所有age>=20的记录;    一定范围
 

在xsb表中查询所有age不等于20的记录; 不等于 !=
 

在xsb表中查询所有age不等于20的记录;    不等于 <>
 
 
and与

在xsb表中查询所有19<=age<=20的记录的xm和age字段;          
   闭合区间

在xsb表中查询所有19<=age<=20的记录的xm和age字段;  
  &&(并且)或 and 或 between.. and..
 
 
or或

在xsb表中查询所有szx='计算机系'和szx='信息系'的记录;      
倆个区间  

在xsb表中查询所有szx='计算机系'和szx='信息系'的记录;
  ||(或者 )或 or 或 in()

在xsb表中查询所有szx='计算机系'和szx='信息系'的记录;     
 
 
not取反

在cjb表中查询所有不在80<cj<90的记录;


在cjb表中查询所有不在 80>=cj<=90的记录;

在xsb表中查询所有不属于szx='计算机系'和szx='信息系'的记录;

在xsb表中查询和张海的szx相同的记录;   通过in可将一个查询结果当作另一个查询的条件
   
通配符                                                                

在xsb表中查询xm的第一个字是王的记录的xm,sex,age      模糊查询 like ‘关键字%’


在xsb表中查询xm的第一个字是王的名字总过只有2个字的记录的xm,sex,age  - ’一个字符

在xsb表中查询xm的中有一个小字的记录的xm,sex,age          ‘%’零个或多
 
Mysql 限制行数查询
limit m,n          m(位置从0开始 不写默认0)n(要显示的条数)   在网页中的分页需要用到这条命令。

没写limit

Mysql 查询排序
(order by 字段名【asc(升序不写默认)/desc(降序)】)

表cjb


 查询cj最高的前三个

查询 cj在80到95之间 最高的一个
 
小结:select */字段名/count(字段名/*) from 表名 where 条件() order by 字段名 [asc/desc] limit [m],n
 
整合数据
统计
统计记录个数 count(*/字段)
 
统计总分数 sum(字段)

统计cjb 中课程是c02的总成绩
计算平均数 avg();
计算课程“c01”的学生的考试平均成绩。

select avg(成绩) from 成绩表 where 课程号='c01'  
max/min 最大最小

课程号位c02的cj最大值
 
分组group by
select sex from xsb where group by order by limit  顺序

 
统计男生女生分别有多少人

先按性别分组然后计算人数

 完整版                                                                    


 统计学习每门课程的人数



单独查kch='c01'的课程的人数

 查询人数>=3 的课程;先查询人数 再用having对结果过滤      
 
having与where的区别       having对查询结果进行二次过滤            where对表中记录进行过滤
 
 
  基本书写顺序select */字段名/count(*/字段名 )/sum(字段名 )/mix(字段名 ) from 表名 [where 条件 group by 字段名 having  条件 order by 字段名 limit m,n]; 
 

多表查询
--内联接 inner join    只有当表里边的记录满足on条件时才出现在查询结果
select * from 从表 as c inner join 主表 as z on  c.外键=z.主键
--左外联接 left join   左边不管满足不满足on条件表里记录都会显示在查询结果,右边表满足显示,不满足显示null
select * from 左边 as c left join 右边 as z on  c.外键=z.主键       (最关注的表写在左边);
 

从cjb和kcb通过俩表中kch关联查询cj>90的的记录中的cj,c.kch(相同的加前缀),kcm

从来倆张表中查出所有李勇的记录


从通过学生表与成绩表的学号(xh)的关联查出李勇的总分数

关联 学生表和成绩表通过xh关联 成绩表和课程表通过kcm关联,然后查询kcm为vb的学生的xm,age,cj,kcm 然后按降序排序

前端学习数据库MYSQL的更多相关文章

  1. 数据库学习之MySQL基础

    数据库基础 一.数据库简介 数据库:存放数据的仓库 sql及其规范 sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能 ...

  2. 数据库MySQL学习笔记高级篇

    数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...

  3. 【代码学习】MYSQL数据库的常见操作

    ---恢复内容开始--- ============================== MYSQL数据库的常见操作 ============================== 一.mysql的连接与 ...

  4. MySQL学习-数据库设计以及sql的进阶语句

    1.数据库设计 关系型数据库建议在E-R模型的基础上,我们需要根据产品经理的设计策划,抽取出来模型与关系,制定出表结构,这是项目开始的第一步 在开发中有很多设计数据库的软件,常用的如power des ...

  5. web前端学习路线(含20个真实web开发项目集合)

    目前web前端工程师日均岗位缺口已经超过50000,随着互联网+的深入发展,html5作为前端展示技术,市场人才需求量将呈直线上涨. Web前端工程师的岗位职责是利用HTML.CSS.Java.DOM ...

  6. 前端工程师的mysql笔记

    背景 最近常参与后台php项目,虽说刚毕业时自学过一阵子php和mysql,不过长时间没用也忘差不多了,于是把mysql再温习一遍,前端同学也可以一起学习下! mysql安装以及操作 安装 brew ...

  7. 前端学习 linux —— 第一篇

    前端学习 linux - 第一篇 本文主要介绍"linux 发行版本"."cpu 架构"."Linux 目录结构"."vi 和 v ...

  8. web前端学习部落22群分享给需要前端练手项目

    前端学习还是很有趣的,可以较快的上手然后自己开发一些好玩的项目来练手,网上也可以一抓一大把关于前端开发的小项目,可是还是有新手在学习的时候不知道可以做什么,以及怎么做,因此,就整理了一些前端项目教程, ...

  9. web前端学习就这9个阶段,你属于哪个阶段?

    第一阶段:HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础:Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAsc ...

随机推荐

  1. 学习sql基础注入的方法

    作为一个初学者的我,经学习发现基础真的十分重要, 这个随笔是写给我自己的希望我能坚持住 当然,我也希望对其他人有点帮助 在sql注入的过程中,我越发感觉那些基础函数的重要性 其实我感觉sql注入其实就 ...

  2. Thinkphp模板简单入门

    Thinkphp模板概述: ThinkPHP内置了一个基于XML的性能卓越的模板引擎,这是一个专门为ThinkPHP服务的内置模板引擎,使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签, ...

  3. Docker基于已有的镜像制新的镜像

    1.根据运行的容器制作镜像 #查看所有的容器 docker ps #暂停当前容器 docker pause COTNAINER-ID #将容器运行当前状态提交 docker commit COTNAI ...

  4. python基础--异常,对象和迭代器

    异常处理 面向对象 迭代器和生成器 python异常处理 下面代码触发了一个FileNotFoundError >>> open("notexist.txt") ...

  5. Java 通过先序后序序列生成二叉树

    题目 二叉树的前序以及后续序列,以空格间隔每个元素,重构二叉树,最后输出二叉树的三种遍历方式的序列以验证. 输入: 1 2 3 4 5 6 7 8 9 10 3 2 5 4 1 7 8 6 10 9 ...

  6. 基于express+mongodb+pug的博客系统——pug篇

    很久之前就想自己搭一个博客了,最开始用hexo+github,但是换电脑后总是有些麻烦.后来使用WordPress,但是用WordPress总觉得没什么技术含量,前后端都是人家写好的,而且买的垃圾虚拟 ...

  7. Java学习笔记——浅谈数据结构与Java集合框架(第一篇、List)

    横看成岭侧成峰,远近高低各不同.不识庐山真面目,只缘身在此山中. --苏轼 这一块儿学的是云里雾里,咱们先从简单的入手.逐渐的拨开迷雾见太阳.本次先做List集合的三个实现类的学习笔记 List特点: ...

  8. 深入理解Java虚拟机 自己编译JDK

    获取JDK源码 先明确OpenJDK和Sun/OracleJDK之间,以及OpenJDK 6.OpenJDK 7.OpenJDK7u和OpenJDK 8等项目之间是什么关系,这有助于确定接下来编译要使 ...

  9. 写给Android App开发人员看的Android底层知识(1)

    这个系列的文章一共8篇,我酝酿了很多年,参考了很多资源,查看了很多源码,直到今天把它写出来,也是战战兢兢,生怕什么地方写错了,贻笑大方. (一)引言 早在我还是Android菜鸟的时候,有很多技术我都 ...

  10. 《安卓网络编程》之第三篇 使用Apache接口

    在Android系统中,提供了一下三种通信接口: 标准的Java 接口:java.net Apache接口:org.apache.http Android网络接口:android.net.http 在 ...