MySQL数据库基本操作
mysql是目前最流行的关系型数据库管理系统,也是在WEB应用方面最好的应用软件之一
MySQL概括
MySQL的默认端口为3306
- MySQL数据库的数据文件存放在/usr/local/mysq1/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“. frm"、" .MYD"和“.MYI"。
- MYD"文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm" 文件在一起。
- ”.MYI"文件也是专属于MyISAM 存储引擎的,主要存放MyISAM表的索引相关信息。对于MyISAM
存储来说,可以被cache的内容主要就是来源于“.MYI"文件中。每一个MyISAM表对应一个“.MYI"文件,存放于位置和“. frm"以及“.MYD”一样。
- MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件( frm, myd,myi)。每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI文件中。
- 另外还有“. ibd"和ibdata 文件,这两种文件都是用来存放Innodb数据的,之所以有两种文件来存放Innodb的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储方式使用“. ibd"文件来存放数据,且每个表一个“.ibd"文件,文件存放在和MyISAM数据相同的位置。如果选用共享存储表空间来存放数据,则会使用ibdata文件来存放,所有表共同使用一个(或者多个,可自行配置) ibdata 文件。
数据的常用类型
| 类型 |
说明 |
| int |
整形(定义整数类型数据) |
| float |
单精度浮点。4字节32位。准确到小数点后六位 |
| double |
双精度浮点。8字节64位 |
| char |
固定长度的字符类型,定义字符类数据,不足的空格补齐 |
| varchar |
可变长度的字符类型 |
| text |
文本 |
| image |
图片 |
| decimal(5,2) |
5个有效长度数字,小数点后面有2位,指定长度数组 |
设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.456,但总个数还以实际为准,即6位。整数部分最大是3位,如果插入数12.123456,存储的是12.1234,如果插入12.12,存储的是12.1200。
decimal (5,2),当输入的数值后的小数位小于两位时,会拿0补全两位;当超过两位时,小数点后第三位是自动进行的四舍五入进第二位
char和varchar的区别
- char(n)若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
- char(n)固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。
- char类型的字符串检索速度要比varchar类型的快。
查看数据库结构
进入数据库
mysql -uroot -p #需要交互
mysql -uroot -p123456 #在历史命令中可查看到,容易暴露密码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1JIu71Z1-1662974044204)(F:\typorase\jpg\268.png)]](https://1000bd.com/contentImg/2023/11/06/110020894.png)
查看当前服务器中的数据库
show databases; #不区分大小写,分号“;”表示结束
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z0uNwzwv-1662974044205)(F:\typorase\jpg\269.png)]](https://1000bd.com/contentImg/2023/11/06/110020871.png)
查看数据库中包含的表
use 数据库名;
show 表名;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mIEzcykJ-1662974044205)(F:\typorase\jpg\270.png)]](https://1000bd.com/contentImg/2023/11/06/110020897.png)
查看表的结构
describe [数据库名.]表名;
可缩写成:desc 表名;
desc 表名\G 以列的方式显示,每个字段属性都会一个个显示
desc 数据库名称.表名称
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pSZbYrv4-1662974044206)(F:\typorase\jpg\271.png)]](https://1000bd.com/contentImg/2023/11/06/110020899.png)
|
|
| Field |
字段名称 |
| type |
数据类型 |
| Null |
是否允许为空 |
| ke |