请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2749|回复: 8

MySQL无痛式入门

[复制链接]

新浪微博达人勋

发表于 2022-7-16 22:37:48 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 15195775117 于 2022-7-17 01:21 编辑

1、为什么用MySQL ?

目前数据库分2类:
  • 【关系型数据库】,属于传统类型,
  • 【非关系型数据库】(=NoSQL),属于新兴类型

MySQL是【关系型数据库】中最流行的,它的好处很多:
开源、免费、跨平台、多用户、多线程、易学、集群强于Oracle、支持多种语言的接口。
淘宝网用的数据库就是MySQL

番外:
NoSQL中缓存数据库Redis很流行,
是常驻内存的数据库,可提高I/O吞吐速度,
适合数据量少、查询频率高的业务,
并不适合海量数据存储。



评分

参与人数 1金钱 +10 收起 理由
特爱吃炸鸡腿 + 10

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2022-7-16 23:08:20 | 显示全部楼层
本帖最后由 15195775117 于 2022-7-16 23:20 编辑

2、MySQL长啥样?

陌生的老熟人

其实,MySQL就是由一堆表格构成的,它看起来就是表格的管理仓库,
如果你会使用Excel,那么MySQL无非是用程序处理多张表格。

灰常简单的结构:库->表->字段+记录

MySQL软件下可以新建多个【数据库】,
每个【数据库】里又新建多个表格,
每个表格需要你定义【字段】,

何谓【字段】?

如下表,名次、姓名、分数就是字段,也就是表格列的头而已!
我们按照字段的顺序,将[1,"张三",92]填入,这叫新增一条【记录】
再将[2,"李四",88]填入,这又是新增一条【记录】。

所以,【字段】是列,【记录】是行。

名次姓名 分数
1张三 92
2 李四 88

特殊的列:主键

我们平时使用Excel表时,第一列是有特殊用途的,经常用来表示这一行的意义,
但是,【数据库表】的第一列一般没有特殊含义,你可以对它填入序号,来表征特殊意义,
其实,列的区分看【字段】,行的区分看【主键】,
【主键】其实就是表中的某一列,只是这一列需要这列的元素不能重复!
例如,第一列是序号的话,它不会重复,这列就可以选定为【主键】,
姓名和分数会重复,所以名称列不可以选为【主键】

图形化界面更像Excel

各类数据库都是有【图形化管理工具】的,
MySQL图形管理工具包括MySQL-Workbench(默认安装),SQLyog,Navicat...
我们可以通过【图形化管理工具】,用键鼠操作,对数据库表进行【增删改查】,这时的感觉就很像Excel了!

数据库如何保存图片与二进制文件?

像图片、视频、.mat、.tiff、.nc、.grib这些文件,是不入库的,
其文件存于他处,数据库中只是保存该文件的路径而已!
所以,依旧是彻头彻尾的表格耳!


密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-7-16 23:50:18 | 显示全部楼层
3、登录MySQL

安装MySQL中,我设置了root密码:AAAAAAAA
新建了用户woodman,密码:BBBBBBBB

在终端登录mysql:


以root登录
以用户woodman登录
本地连接
mysql –uroot -pAAAAAAAA
mysql –uwoodman -pBBBBBBBB
远程连接
mysql –uroot –h10.10.1.32 –pAAAAAAAA
mysql –uwoodman –h10.10.1.32 –pBBBBBBBB

以上,-u后面是用户名,-p后面是密码,-h后面是IP

报错:
ERROR 1130 (HY000): Host 'EX6R7TOJ1KIE7Q2' is not allowed to connect to this MySQL server
网上开启远程的教程:
https://blog.csdn.net/HJULKK/article/details/52563044

退出MySQL
mysql>quit;


密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-7-17 00:50:04 | 显示全部楼层
4、数据库和表的操作

现在,使用SQL语言来操作MySQL

SQL语法特点

  • 不区分大小写,
  • 每句以分号结尾,
  • 注释是双短杠:--drop table table0;
  • 一行写不下,直接换行不妨事,不需要续行符。

常用语句

数据库是MySQL最大单位,进入MySQL后,先查看已存在的数据库:
show databases;

创建自己的数据库mydb:create database mydb;
(删除数据库:drop database mydb;)

然后进入这个数据库:use mydb;
查看数据库中所有表:show tables;

新建表:create table mytable;
删除表:drop table mytable;

查看表字段:describe table0;或desc table0;

查看表中数据:select * from mytable;

改表名:alter table table0 rename table1;

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-7-17 01:08:26 | 显示全部楼层
5、数据操作

无需赘言的基本操作

对于表内的数据,SQL语句有着完全操纵的能力,可以:
增加字段,删除字段,移动字段位置,修改字段属性,插入数据,修改数据、删除数据......

这些操作,我就不写SQL语句了,比较繁琐,
实际业务中,都是通过接口语法来实现的,比如,
Python有MySQL接口包,Java和C#肯定也有各自的接口包,
不会用SQL语言来直接操作,
以下列出一些例子,我们只需要了解下MySQL的处理逻辑:

又一个强大的where

查询:
select direction from table0 where color not in('red','pink','green');

按数字范围查询:
select monster,id from table0 where id not between 2 and 4;

不以b开头:
select monster,id from table0 where not monster like 'B%';

第2个字母是i:
select monster,id from table0 where monster like '_i%';

查询结果倒序显示(默认正序order by id asc):
select monster,id from table0 where monster like '_i%' order by id desc;

以上select的也适用于delete,删除记录:
delete from table0 where monster='bird';

嵌套使用:
select * from table0 where value not in (select value from table1);

在这里,我们发现,强大的where可以跨字段进行选择,
它的功能跟numpy包的np.where和IDL的where函数一样强大实用!







密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-7-17 01:13:26 | 显示全部楼层
6、批处理和函数

批处理

将sql语句逐行写入文本,后缀改为sql,执行之:
mysql> source D:\bat.sql

函数

SQL有【存储过程】和【函数】的概念,这里的【过程】和【函数】跟IDL的一样:
【过程】没有返回值,【函数】有。

新建过程和函数:create procedure,create function
具体怎么写也不用关心,这都是数据库接口来实现。



密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-7-17 01:16:30 | 显示全部楼层
7、好消息:复杂的外键被淘汰了

为什么不要使用【外键】?
  • 在大数量的情况下,使用外键约束会导致很差的性能。一般互联网应用都不要去想外键这种东西了,连表连接查询最好都不要使用
  • 大数据量时进行表的水平切分,像外键约束、触发器、存储过程这些都是禁区
  • 数据完整性是业务的需要,因此得由业务层的应用程序来控制
  • 外键会导致表结构非常混乱,几乎是动都不能去动,一层套一层的外键约束,在表很多的情况下很可能会导致循环约束



密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-7-17 10:02:34 | 显示全部楼层
谢谢分享!!!!!!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-7-18 08:58:28 | 显示全部楼层
赞,增删查改,可以应付百分之九十的需求
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表