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

这篇文字主要是对自己一个前端学习数据库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. PHP学习笔记-3

    PHP 数据类型: 字符串.整数.浮点数.逻辑.数组.对象.NULL. JavaScript数据类型: 字符串.数字.布尔.数组.对象.Null.Undefined. 从上面可以看出来,数据类型都是7 ...

  2. js与juery基础知识对比(一)---2017-05-06

    用表格做的,想要对比的内容一目了然,红色部分为重点   js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...

  3. Oracle 12C 新特性之move (非分区表)table online

    以前版本中move table不能够online, move 会引rowid改变使对应的索引失效. 12c 中 alter table move online不会对新事务阻塞同时会自动的维护索引的有效 ...

  4. dubbo 入门

    1 介绍 1.1 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 1.2 说明 DUBB ...

  5. HiveHbase集成实践

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6857891.html 转载请注明出处 简单的说就是可以通过Hive SQL直接对hbase的表进行读写操 ...

  6. OAuth及第三方登录

    现在的生活中运用互联网的有好多地方,我们既要申请微博,申请博客,申请邮箱等等:哪怕登录一个小网址看点东西都要注册登录,不过现在好多了:有了第三方登录,再也不用担心这不够用的脑子整天记忆账号和密码了,只 ...

  7. 18个你可能不相信是用CSS制作出来的东西

    与流行的看法相反,CSS不仅仅是用来提供一个WEB页面的基本风格,以使它看起来更有吸引力.还有很多其他的事情,CSS也可以做的很好.由于它创建动画和交互的能力,CSS集合HTML以及JavaScrip ...

  8. 利用JavaScript数组动态写入HTML数据节点

    如果想要使用数组来写入HTML数据,绝对需要的是一个Key值,由Key来引导遍历数组各项:此外,使用DOM原生方法写入文档,用同一个CSS样式渲染它们,这样可以极大地减少开发时间和减少维护成本,此方法 ...

  9. 《Android进阶》之第三篇 深入理解android的消息处理机制

    Android 异步消息处理机制 让你深入理解 Looper.Handler.Message三者关系 android的消息处理机制(图+源码分析)——Looper,Handler,Message an ...

  10. Greys学习笔记(未完待续)

    Greys介绍 greys-anatomy是一个Java线上诊断工具,取名来自美剧<实习医生格雷>,由菜鸟-杜琨同学开发维护.比我们常用的脚本工具btrace提供更多的功能,greys采用 ...