MySQL
MySQL
MySQL
为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格组成。
登陆命令:
–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
sql查询操作命令
DISTINCT
当从表中查询数据时,您可能会得到重复的行。为了删除这些重复行,可以在SELECT
语句中使用DISTINCT
子句。
如果查询多列数据,要每一个数据相同才会被删除。
ORDER BY
语法:
使用ORDER BY
可以按照某个字段进行排序。 使用ASC
或DESC
按照升序或者降序排列。
默认是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 BY
是SELECT
的可选部分,将数据按表达式进行分组。
聚合函数允许我们执行某组行的计算并返回一个值。GROUP BY
子句通常与聚合函数来执行计算,并为每个分组返回一个值。
连接
INNER JOIN
产生的结果集中,是两者某字段的交集。可以简写成join
;
JOIN
子句必须指定连接条件,连接条件的关键字ON
在INNER JOIN
语句之后。连接条件是用于在主表和其他表之间匹配行的条件。
LEFT JOIN
产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。
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
字段处理
修改字段名
修改字段的数据类型
增加字段
删除字段
Last updated