前端学习数据库MYSQL

时间:2023-07-17 22:18:20

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

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

更为详细的 数据库MYSQL介绍

更好的 数据库MYSQL的入门

这篇文章主要写了

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

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

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

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


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

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

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


 

数据库的导入和导出
  前端学习数据库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则将表中所有记录删除;
前端学习数据库MYSQL
这段命令将h5class表中 id为15的记录;
查询记录
select 字段名1,字段名2.../* form 表名[where 条件];
前端学习数据库MYSQL
这段代码将查询teacher表中name为侯晋龙的记录的cid和classname;
前端学习数据库MYSQL
这段代码将查询teacher表中的所有记录;
前端学习数据库MYSQL
select 字段名1 as 别名1,字段名2 as 别名2 ... form 表名[where 条件]; 给字段重命名
前端学习数据库MYSQL
自定义字段
列的操作
修改字段
update 表名 set 字段名1=‘值1’,字段名2=‘值2’........... [where 条件 ]; 如果没where则将表中所有该字段的值改变
前端学习数据库MYSQL
这段代码将h5class表中所有id>4的记录的cid字段的值改为2;
select查询 之[where条件 ]   同样适用于update更新和delete删除
前端学习数据库MYSQL
xsb表
前端学习数据库MYSQL
在xsb表中查询所有age>=20的记录;    一定范围
前端学习数据库MYSQL
在xsb表中查询所有age不等于20的记录; 不等于 !=
前端学习数据库MYSQL
在xsb表中查询所有age不等于20的记录;    不等于 <>
and与
前端学习数据库MYSQL
在xsb表中查询所有19<=age<=20的记录的xm和age字段;          
   闭合区间
前端学习数据库MYSQL
在xsb表中查询所有19<=age<=20的记录的xm和age字段;  
  &&(并且)或 and 或 between.. and..
or或
前端学习数据库MYSQL
在xsb表中查询所有szx='计算机系'和szx='信息系'的记录;      
倆个区间  
前端学习数据库MYSQL
在xsb表中查询所有szx='计算机系'和szx='信息系'的记录;
  ||(或者 )或 or 或 in()
前端学习数据库MYSQL
在xsb表中查询所有szx='计算机系'和szx='信息系'的记录;     
not取反
前端学习数据库MYSQL

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

前端学习数据库MYSQL
在cjb表中查询所有不在 80>=cj<=90的记录;
前端学习数据库MYSQL
在xsb表中查询所有不属于szx='计算机系'和szx='信息系'的记录;
前端学习数据库MYSQL
在xsb表中查询和张海的szx相同的记录;   通过in可将一个查询结果当作另一个查询的条件
   
通配符                                                                
前端学习数据库MYSQL

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

前端学习数据库MYSQL
在xsb表中查询xm的第一个字是王的名字总过只有2个字的记录的xm,sex,age  - ’一个字符
前端学习数据库MYSQL
在xsb表中查询xm的中有一个小字的记录的xm,sex,age          ‘%’零个或多
Mysql 限制行数查询
limit m,n          m(位置从0开始 不写默认0)n(要显示的条数)   在网页中的分页需要用到这条命令。
前端学习数据库MYSQL

没写limit

前端学习数据库MYSQL
前端学习数据库MYSQL
Mysql 查询排序
(order by 字段名【asc(升序不写默认)/desc(降序)】)
前端学习数据库MYSQL

表cjb

前端学习数据库MYSQL
 查询cj最高的前三个
前端学习数据库MYSQL
前端学习数据库MYSQL
查询 cj在80到95之间 最高的一个
小结:select */字段名/count(字段名/*) from 表名 where 条件() order by 字段名 [asc/desc] limit [m],n
 
整合数据
统计
统计记录个数 count(*/字段)
 前端学习数据库MYSQL
统计总分数 sum(字段)
前端学习数据库MYSQL
统计cjb 中课程是c02的总成绩
计算平均数 avg();
计算课程“c01”的学生的考试平均成绩。
select avg(成绩) from 成绩表 where 课程号='c01'  
max/min 最大最小
前端学习数据库MYSQL
课程号位c02的cj最大值
分组group by
select sex from xsb where group by order by limit  顺序
前端学习数据库MYSQL
 
统计男生女生分别有多少人
前端学习数据库MYSQL
先按性别分组然后计算人数
前端学习数据库MYSQL

 完整版                                                                    

前端学习数据库MYSQL

 统计学习每门课程的人数

前端学习数据库MYSQL

单独查kch='c01'的课程的人数
前端学习数据库MYSQL
 查询人数>=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.主键       (最关注的表写在左边);
前端学习数据库MYSQL

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

前端学习数据库MYSQL

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

前端学习数据库MYSQL
从通过学生表与成绩表的学号(xh)的关联查出李勇的总分数
前端学习数据库MYSQL
关联 学生表和成绩表通过xh关联 成绩表和课程表通过kcm关联,然后查询kcm为vb的学生的xm,age,cj,kcm 然后按降序排序