学到mysql的时候非常的快,感觉前面的没有很巩固,还是要复习前面的博客

常见的数据库

MySQL , Oracle , SQL Server , SQLite , DB2 , …

  • SQL Server 微软的 中小型关系型数据库
  • MySQL 中小型的关系型数据库
  • Oracle 大型的关系型数据库
  • 数据库管理系统(DataBase Management System)

关系型数据库:具有行和列这种二维表结构的数据库
非关系型数据库: NOSQL 用键值关系来存储数据 类似 json

  • 数据库的安装
  • 数据库的卸载
    1.可以使用第三方的卸载软件来卸载
    2.在控制面板里面常规卸载
    2.1.停止后台服务 电脑–右键–管理—服务—mysql–右键停止掉
    2.2.卸载
    2.3.清除残留文件 C:\ProgramData\MySQL 把这个MySQL文件夹删除

数据库的概念

  • 数据库(DataBase,简称DB)
  • 概念:放在计算机内有组织,可共享大量数据的仓库
  • 作用:保存,并且能安全管理数据(增删改查),减少数据的冗余

MySQL介绍

  • 概念:是现在流行的开源的的,免费的,关系型数据库
  • 历史:由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。
  • 特点:
    免费,开源数据库
    小巧,功能齐全
    使用便捷
    可运行Windows或Linux操作系统
    适用于中小型公司或者是大型网站

安装

链接数据库

首先在dos命令下打开,net start myslq,然后登陆 mysql -u -p

几个基本的数据库操作命令

update user set password =password (‘123456’)where user =‘root’;
flash privilegs ;刷新数据库
show databases;显示所有的数据库
use dbname;打开某个数据库
show tables;显示mysql数据库中的所有的表
describe user;显示表mysql数据库中user表的列的信息
create databases name;创建数据库
use databasesname;选择数据库

exit ;退出mysql
?命令关键词:寻求帮助
#表示注释
/**/表示多行注释

结构化分类

DDL(data definition language):数据定义语言,用来定义数据库对象:库,表,列等;
DML(data manipulation language ):数据库操作语言,用来定义数据库记录(增,删,改);
DCL(data control language):数据控制语言,用来定义访问权限和安全级别;
DQL(data query language):数据查询语言,用来查询记录(数据),

DDL:创建 表对象修改列名

创建数据库:create database ; 数据库名字
查询所有的数据库:show databases;
删除:drop database 数据库名字
修改数据库编码:alter database 数据库名字 character set=‘gbk’;
查看建库语句:show create database 数据库名字

建表 删除表 对表头进行操作

切换库: use mydb;
查看库下面所有的表 show tables;
查看表结构 desc 表名;例如: desc student;

  • 常见的数据类型

  • 字符串类型
  • 日期和时间型数值类型
  • 数据表类型
    MySQL数据表的常见类型:MyISAM,InnoDB,HEAP,BOB,CSV等…
    常见的MyISAM与InnoDB类型

创建表

create table 表名(列名 数据类型,列名2 数据类型2(长度),…);
案例

# 目标 : 创建一个school数据库
# 创建学生表(列,字段)
# 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
# 创建表之前 , 一定要先选择数据库CREATE TABLE IF NOT EXISTS `student` (`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',`sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',`birthday` datetime DEFAULT NULL COMMENT '生日',`address` varchar(100) DEFAULT NULL COMMENT '地址',`email` varchar(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8#查看数据库的定义
show create databases sholl;
#查看数据表的定义
show create table sstudent;
#显示表结构
dese student;
#设置严格检查模式(不能容错了)
set sql_mode='STRICT_TRANS_TABLES';
列名的命名规范和Java一样,不要拿SQL中的关键字来命名
  • 修改表名
    alter table 旧表名 rename to 新表名;
    alter table student rename to stu;
  • 删除表
    drop table 表名;
表中表头的操作
  • 添加列
    alter table 表名 add(phone varchar(20));
  • 删除列
    alter table 表名 drop(phone);
  • 修改列名
    alter tablie 表名 change 旧列名 新列名(类型);
  • 修改列的数据类型
    alter table 表名 cahnge 旧列名 新列名(类型);
    alter table 表名 modify 列名(新的类型);
  • 查看建表语句
    show create tables 表名;

DML修改表的结构,给表进行增删改查

  • 插入数据:
    insert into 表名 (把表头插进去,插入全部的话表头可以省略)value(‘值是字符串类型的话就用单引号引起来’,double类型的要一致,timestamp’可以指定格式’/null(默认));

  • 删除表中的所有行:
    delete from 表名;
    truncate table 表名;

  • 条件删除
    delete from 表名 表名 where name=’'zhangsan;
    delete from student where name=‘zhangsan’ and birthday=‘2019-08-21 15:44:12’

    delete from student where name=‘zhangsan’ or name=‘wangwu2’ or name=‘wangwu3’;

  • 修改表中的数据:
    (全部改成一样的)
    update 表名 set 字段名=‘新值’,set 字段名=‘新值’ …
    (有针对性的改)
    update 表名 set 字段名=‘新值’ , 字段名=‘新值’ … where 字段名=‘旧值’ and 字段名=‘旧值’;

DQL 查询表中的数据

无条件查询

  • 查询表中的所有的数据
    selete * from 表名;
  • 查询个别字段
    selete name,age(字段名) from 表名;

条件查询 where
=、!=、<>(不等于)、<、<=、>、>=;
BETWEEN…AND; 在什么范围之间
IN(set);
IS NULL;为空
IS NOT NULL 不为空
AND; 并且
OR; 或者
NOT;非

模糊查询

  • 通配符: _ 匹配单个任意字符
    比如: 我要查询姓名是3个任意字符组成的
    select * from student sname like=’___’;(三个下划线)
    例如:我要查询第二个字符是m的
    select * from student where sanme like ‘_m%’;

  • **%**匹配多个任意字符
    例如:我要查询名字中包含m的 select * from student where sname like ‘%m%’;
    例如我要查询名字是a开头的 select * from student where sname like ‘a%’;
    例如我要查询名字是b结尾的 select * from student wher like ‘%b’;

字段控制

  • 修改字段名称:AS(可以山省略)
    例如: select sname as 别名, sage 别名 from student;
    给运算字段起别名:
    例如: select sname as 姓名, (工资+奖金) as 总收入 from student;
    给表起别名:给每一张表起一个别名。简化书写
    例如: select stu.sname, stu.sage from student as stu;
  • 字段运算:
    null参与的运算,结果都为null
    比如 工资 是100 奖金是null 我们让这两个字段运算 那结果就为null
    一般会将null替换为0: ifnull(字段名称,如果是null的替换值) ifnull 是mysql的方言
    所有如果奖金字段为null 一般我们把奖金替换为0
    例如: select sname,(工资+ifnull(奖金,0)) as 总收入from student;
  • 去除重复记录 比如我查询工资是3000的 出现了多条工资为3000 的记录 那我只想展示一条3000的记录 所以可以用 distinct 去除重复记录
    * DISTINCT
    例如: select distinct 工资 from student;

排序order by 默认升序 (sac) desc(降序)

按工资从大到小进行排序
selete * from student order by 工资 asc;
按照工资从小到大进行排序
selete * from student order by 工资 desc;
如果出现多条重复的工资,可以指定第二条排序
selete * from student order by 工资 desc ,奖金desc;

聚合函数

概念:我们可以做纵向运算的函数

  • COUNT():统计个数的.统计不为null的记录的行数
    select count (sid) from student; 或者select count (*) from student;

  • MAX():指定某列的最大值,如果是字符串的话就按照字符串的排运算
    查询工资最大
    selete max(工资) as 最高工资 from student;

  • MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
    例如 查询 最少工资 select min(工资) as 最小工资 from student;

  • SUM():计算指定列的数值和,如果指 定列类型不是数值类型,那么计算结果为0;
    例如 计算总工资 select sum(工资) as 总支出 from student;

  • SUM():计算指定列的数值和,如果指 定列类型不是数值类型,那么计算结果为0;
    例如 计算总工资 select sum(工资) as 总支出 from student;

  • AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
    例如:计算平均 工资 select avg(工资) as 平均工资 from student;

分组查询group by 一般配合聚合函数的使用才有意义

  • 查询的字段:
    1.分组字段本身
    2.聚合函数
  1. 比如:按照部门的编号分组,有三个部门,要查询各个部门的平均工资
    selete 部门编号 avg(工资) from student group by 部门编号;
  • where和having
    where :在分组之前对条件进行限定,没有满足条件的就不能进行分组
    having:在分组之后岁结果集进行删选,没有选上的就不用
    2.我要查询各个部门的平均工资2000的部门
    selete 部门编号 avg(工资) from student group by 部门编号 having avg(工资) >2000;
    3.查询各个部门员工平均工资,大于1500的部门,大于2000的部门
    selete 部门,avg(工资) from student group by 部门编号 where avg(工资)>1500 having avg(工资)>2000;

分页查询:limit

limit 0,5,10…
开始记录索引,每个索引显示的条数 (索引都是从0开始)
开始记录索引=(页码-1)*每一页显示的条数
例如:显示第一页,每页显示5条记录:
selete * from student limit 0,5;这是第一页的5条记录
selete * from student limit 1,5,这是第二页的5条记录
selete * from student limit 2,5这是第三页的5条记录

  • oracle:rownum 分页方言
  • sqlserver:top 分页方言

MySQL数据库——day26 数据库安装,卸载,概念,msq的介绍,安装,连接,DDL,DML,DQL模糊查询,字段控制(别名和运算),排序,聚合函数,分组查询(where和having),分页查询相关推荐

  1. Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)

    文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...

  2. 【02】Java进阶:18-MySQL基础、数据库概述、数据库的安装/卸载/启动/登录、SQL概述、DDL操作数据库、DDL操作表、DML增删改查、

    day18-MySql基础 今日内容 数据库概述 数据库安装和卸载 SQL语句 DDL-----操作数据库,操作表 DML-----操作记录(增删改) DQL------操作记录(查) 学习目标 能够 ...

  3. MySQL 的DDL DML DQL DCL细节解析 知道这些就够了

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

  4. 数据库MySQL基础---DDL/DML/DQL

    MySQL基础 数据库简介 数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.可共享的.统一管理的大量数据的集合. 与数据库相关的概念数据 ...

  5. MySQL 数据库 - 通用语法 DDL DML DQL DCL

    目录 数据模型 通用语法及分类 DDL(数据定义语言) 数据库操作 表操作-查询 表操作-创建 表操作-修改 表操作-删除 表操作-数据类型 DML(数据操作语言) DML介绍 DML添加数据 DML ...

  6. MySQL(DDL DML DQL DCL)

    文章目录 服务器 数据库 MySQL: 数据库软件 SQL: 结构化查询语句 DDL: 操作数据库和表 操作数据库 操作表 列数据类型 操作表的语法 DML: 操作表中的数据 where子句运算符 增 ...

  7. Mysql的DDL DML DQL DCL

    m代表长度(1-65) d代表保留少数位(0-30) 整数型 tinyint(m)1字节 取值范围(-128-+127) int(m)4字节 取值范围(大概20几亿) 浮点型 double(m,d)8 ...

  8. dml语句包括哪些_聊聊MySQL基本操作DDL,DML,DQL,DCL

    本篇文章来回顾一下MySQL的基本操作之DDL,DML,DQL,DCL,每种操作都有各自不同的语法,常用的操作汇总如下. 一.DDL-数据定义语言 作用:数据定义语言主要用来定义数据库中的各类对象,包 ...

  9. mysql一样的查询在我本地很快但是线上很慢_MySQL大数据量分页查询方法及其优化...

    MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...

最新文章

  1. Django-restframework 之 Exceptions分析
  2. 6个变态的C语言Hello World程序
  3. 花5分钟过一遍jar包和war包的区别,以后都不会再迷茫
  4. unity3d___UGui中如何创建loading...进度条
  5. json和对象、list互转
  6. python token 访问控制_python 产生token及token验证
  7. 最大似然估计【MLE】与最大后验概率【MAP】
  8. js实现可拖拽的div
  9. python条件语句代码例子_Python 炫技操作:条件语句的七种写法
  10. OpenCV图像处理--EasyPR中文开源车牌识别系统
  11. matlab做信号完整性,关于Matlab的Turbo码仿真研究
  12. C语言程序的语法规范,C语言程序结构和语法规则
  13. 工业循环水过滤浅层介质过滤器(浅层砂过滤器)介绍
  14. ArcGIS Pro地理配准
  15. SageMath使用
  16. 树梅派应用16: 树莓派“瑞士军刀”扩展板教程 V1.X TO V2.X 的适配说明
  17. Linux Shell查找下一个
  18. Python tkinter 保姆级超简易登陆界面教学
  19. [Solved] Can not extract resource from com.android.aaptcompiler
  20. 防火墙——防火墙基础知识

热门文章

  1. 【ConfluxNews】2023.3.20 清华大学罗玫教授带领学生来到 Conflux 参与了“北斗计划”区块链实践课
  2. Maven环境变量配置(3.3.9下载及安装教程)
  3. python性能测试可视化_locust安装及其简单使用----基于python的性能测试工具
  4. thinkphp模板的使用
  5. node数据加密,还不快快点进来?
  6. SOHO果然有巨大收获!
  7. corona group
  8. unity打开Excel/Word/PPT
  9. mp4: stsd/mp4a/esds stsd/avc1/avcc
  10. 企业发展最大的敌人------内耗