MySQL

MySQL

MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格组成。

mysql.jpg

登陆命令:

–p密码选项不一定是要在最后; –u、-h、-p后无空格。

数据库操作

数据库表操作

MySQL数据类型

数字型

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

类型

大小

范围(有符号)

范围(无符号)

用途

TINYINT

1 字节

(-128,127)

(0,255)

小整数值

SMALLINT

2 字节

(-32 768,32 767)

(0,65 535)

大整数值

MEDIUMINT

3 字节

(-8 388 608,8 388 607)

(0,16 777 215)

大整数值

INT或INTEGER

4 字节

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

(0,4 294 967 295)

大整数值

BIGINT

8 字节

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

(0,18 446 744 073 709 551 615)

极大整数值

FLOAT

4 字节

(-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 字节

(-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的值

小数值

int(num)代表数据不够num位的情况下,用数字0填充。数据会自动变成unsigned类型的

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

类型

大小(字节)

范围

格式

用途

DATE

3

1000-01-01/9999-12-31

YYYY-MM-DD

日期值

TIME

3

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

HH:MM:SS

时间值或持续时间

YEAR

1

1901/2155

YYYY 年份值

DATETIME

8

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

YYYY-MM-DD HH:MM:SS

混合日期和时间值

TIMESTAMP

4

1970-01-01 00:00:00/2038-01-19 03:14:07

YYYYMMDD HHMMSS

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

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

类型

大小

用途

CHAR

0-255字节

定长字符串

VARCHAR

0-65535 字节

变长字符串

TINYBLOB

0-255字节

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

TINYTEXT

0-255字节

短文本字符串

BLOB

0-65 535字节

二进制形式的长文本数据

TEXT

0-65 535字节

长文本数据

MEDIUMBLOB

0-16 777 215字节

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

MEDIUMTEXT

0-16 777 215字节

中等长度文本数据

LONGBLOB

0-4 294 967 295字节

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

LONGTEXT

0-4 294 967 295字节

极大文本数据

字段的约束条件

  • NULL:数据列可包含NULL值;

  • NOT NULL:数据列不允许包含NULL值;

  • ZREOFILL: 零填充,当数据的显示长度不够的时候可以使用前补0的效果填充至指定长度,字段会自动添加UNSIGNED

  • DEFAULT:默认值;

  • PRIMARY KEY:KEY 主键;

  • UNIQUE KEY: 唯一性,一个表中可以有多个字段是唯一索引,同样的值不能重复,但是NULL值除外

  • AUTO_INCREMENT:自动递增,适用于整数类型;

  • UNSIGNED:是指数值类型只能为正数;

  • CHARACTER SET name:指定一个字符集;

  • COMMENT:对表或者字段说明;

  • FOREIGN KEY: 外键约束;

http://blog.csdn.net/lipengcn/article/details/51111667

https://github.com/jaywcjlove/mysql-tutorial/blob/master/21-minutes-MySQL-basic-entry.md

http://www.runoob.com/mysql/mysql-tutorial.html

sql查询操作命令

DISTINCT

当从表中查询数据时,您可能会得到重复的行。为了删除这些重复行,可以在SELECT语句中使用DISTINCT 子句。

如果查询多列数据,要每一个数据相同才会被删除。

ORDER BY

语法:

使用ORDER BY可以按照某个字段进行排序。 使用ASCDESC按照升序或者降序排列。

默认是ASC升序。

WHERE

在查询语句中使用WHERE语句来设定查询条件。

可以结合使用AND或OR的逻辑运算符。

自定义排序函数FIELD():

IN

WHERE子句中,筛选符合匹配的数据。

带有子查询的MySQL IN

运算顺序为:

having子句在查询过程中慢于聚合语句(sum,min,max,avg,count).而where子句在查询过程中则快于聚合语。

NOT IN

IN运算符相反。

BETWEEN AND

BETWEEN AND判断某字段值是否在给定的范围内。

LIKE

LIKE操作符常用在模式匹配中查询数据。

与LIKE操作符一起使用:百分比 %和下划线_。

  • percent(%)通配符允许您匹配任何零个或多个字符的字符串。

  • 下划线(_)通配符允许您匹配任何单个字符。

LIMIT

LIMIT子句在SELECT语句中用于约束结果集中的行数。

如果LIMIT后还有参数,代表偏移量,从0开始。

IS NULL

判断数据是否为空,为NULL则返回true。

http://www.manongjc.com/mysql_basic/mysql-tutorial-basic.html

数据分组与连接

GROUP BY

GROUP BYSELECT的可选部分,将数据按表达式进行分组。

聚合函数允许我们执行某组行的计算并返回一个值。GROUP BY子句通常与聚合函数来执行计算,并为每个分组返回一个值。

连接

INNER JOIN

产生的结果集中,是两者某字段的交集。可以简写成join;

img/Inner_Join.png

JOIN子句必须指定连接条件,连接条件的关键字ONINNER JOIN语句之后。连接条件是用于在主表和其他表之间匹配行的条件。

LEFT JOIN

产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。

img/Left_Outer_Join.png

RIGHT JOIN

产生表B的完全集,而A表中匹配的则有值,没有匹配的则以null值取代。

在sql查询语句中,还有FULL JOIN,但MySQL中没有支持。 具体可参考:https://code.ziqiangxuetang.com/sql/sql-join-full.html

教程:http://www.manongjc.com/mysql_basic/mysql-tutorial-basic.html

字段处理

修改字段名

修改字段的数据类型

增加字段

删除字段

参考:http://blog.csdn.net/lipengcn/article/details/51119535

Last updated

Was this helpful?