MySQL学习笔记

时间:2022-07-24
本文章向大家介绍MySQL学习笔记,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

You must not be afraid to dream a little bigger

Mysql 语法

net start mysql #启动mysql服务
net stop mysql  #关闭mysql服务

一丶mysql 管理

USE 数据库名   \ 选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
SHOW DATABASES \ 列出 MySQL 数据库管理系统的数据库列表。
SHOW TABLES     \ 显示指定数据库的所有表,使用该命令前需要使用`use`命令来选择要操作的数据库。
SHOW COLUMNS FROM "数据表" \ 显示数据表的属性,属性类型主键信息是否为`NULL`默认值其他信息
SHOW INDEX FROM 数据表      \ 显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] G:   
                                                  \ Mysql数据库管理系统的性能及统计信息。

G 和分号 ; 的作用相似,两者取其一即可。

1.mysql 连接

mysql -u root -p
$ mysql >   exit       \ 退出MySQL命令行

2.创建mysql数据库

CREATE DATABASE 数据库名;

3.删除mysql数据库

drop database <数据库名>;
  • mysqladmin 命令删除数据库
mysqladmin -u root -p drop RUNOOB

4.选择mysql数据库

用sql命令--use进行选择

[root@host]# mysql -u root -p
Enter password:******
mysql> use RUNOOB;
Database changed
mysql>

二丶MySQL 数据类型

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

1.数据类型

MySQL支持所有标准SQL数值数据类型。

这些类型包括严格数值数据类型(INTEGERSMALLINTDECIMALNUMERIC),以及近似数值数据类型(FLOATREALDOUBLE PRECISION)。

关键字INTINTEGER的同义词,关键字DECDECIMAL的同义词。

BIT数据类型保存位字段值,并且支持MyISAMMEMORYInnoDBBDB表。

作为SQL标准的扩展,MySQL也支持整数类型INYINTMEDIUMINTBIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型

大小

范围(有符号)

范围(无符号)

用途

TINYINT

1 byte

(-128,127)

(0,255)

小整数值

SMALLINT

2 bytes

(-32 768,32 767)

(0,65 535)

大整数值

MEDIUMINT

3 bytes

(-8 388 608,8 388 607)

(0,16 777 215)

大整数值

INT或INTEGER

4 bytes

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整数值

BIGINT

8 bytes

(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

极大整数值

FLOAT

4 bytes

(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)

0,(1.175 494 351 E-38,3.402 823 466 E+38)

单精度 浮点数值

DOUBLE

8 bytes

(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

双精度 浮点数值

DECIMAL

对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

依赖于M和D的值

依赖于M和D的值

小数值

2.时间日期类型

表示时间值的日期和时间类型为DATETIMEDATETIMESTAMPTIMEYEAR

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

IMESTAMP类型有专有的自动更新特性,将在后面描述。

类型

大小 ( bytes)

格式

范围

用途

DATE

3

YYYY-MM-DD

1000-01-01/9999-12-31

日期值

TIME

3

HH:MM:SS

'-838:59:59'/'838:59:59'

时间值或持续时间

YEAR

1

YYYY

1901/2155

年份值

DATETIME

8

YYYY-MM-DD HH:MM:SS

1000-01-01 00:00:00/9999-12-31 23:59:59

混合日期和时间值

TIMESTAMP

4

YYYYMMDD HHMMSS

1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

混合日期和时间值,时间戳

 3.字符串类型

字符串类型指CHARVARCHARBINARYVARBINARYBLOBTEXTENUMSET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型

大小

用途

CHAR

0-255 bytes

定长字符串

VARCHAR

0-65535 bytes

变长字符串

TINYBLOB

0-255 bytes

不超过 255 个字符的二进制字符串

TINYTEXT

0-255 bytes

短文本字符串

BLOB

0-65 535 bytes

二进制形式的长文本数据

TEXT

0-65 535 bytes

长文本数据

MEDIUMBLOB

0-16 777 215 bytes

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215 bytes

中等长度文本数据

LONGBLOB

0-4 294 967 295 bytes

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295 bytes

极大文本数据

注意char(n)varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

CHARARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARYVARBINARY 类似 CHAR VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

三丶FLOAT 与 DOUBLE 差异

(单精度与双精度有什么区别)

最本质的区别:单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度double是用 8 个字节来存储的,由于存储位不同,他们能表示的数值的范围就不同,也就是能准确表示的数的位数就不同。

  • 所占的内存不同

精度浮点数bai占du用4个字节(32位)存储空间来存储一个浮点数,包括符号位1位,阶码8位,尾数23位。

而双精度浮点数使用 8个字节(64位)存储空间来存储一个浮点数,包括符号位1位,阶码11位,尾数52位。

  • 所存的数值范围不同

单精度浮点数的数值范围为-3.4E38~3.4E38,而双精度浮点数可以表示的数字的绝对值范围大约是:-2.23E308 ~ 1.79E308。E表示10的多少次方,如3.4E38指的是3.4乘以10的38次方。

  • 十进制下的位数不同

单精度浮点数最多有7位十进制有效数字,如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。

双精度浮点数可以表示十进制的15或16位有效数字,超出的部分也会自动四舍五入。