MySQL学习总结1

来源:互联网 发布:七匣子淘宝 编辑:程序博客网 时间:2024/06/07 05:29

1.storage engine

其实每个engine对应的性质,就不一一说明了。

下面主要罗列一些最明显的使用场合。

①payment、secure     ----InnoDB

②foreign key referential integrity constraint     ----InnoDB

③transaction               ---InnoDB

④full-text search          ----MyISAM


MySQL 5.5之前,默认engine是MyISAM

MySQL 5.5以及之后,默认engine是InnoDB

storage engine是对于每个table而言的。不同table指定不同的engine。


2.data types

MySQL支持3组数据类型:

Numeric

Date&time

String


Numeric


①Integers


②Floating points

Data type           Bytes

FLOAT

DOUBLE

DECIMAL


bytes?有疑问,我将一个float的量输入很多位,可以显示7bytes,比较少的时候又会显示3bytes


Date&time

一共有以下类型:DATE、TIME、DATETIME、YEAR、TIMESTAMP


String



附录 常见MySQL数据类型(留作备忘)

类 型

大 小

描 述

CAHR(Length)

Length字节

定长字段,长度为0~255个字符

VARCHAR(Length)

String长度+1字节或String长度+2字节

变长字段,长度为0~65 535个字符

TINYTEXT

String长度+1字节

字符串,最大长度为255个字符

TEXT

String长度+2字节

字符串,最大长度为65 535个字符

MEDIUMINT

String长度+3字节

字符串,最大长度为16 777 215个字符

LONGTEXT

String长度+4字节

字符串,最大长度为4 294 967 295个字符

TINYINT(Length)

1字节

范围:-128~127,或者0~255(无符号)

SMALLINT(Length)

2字节

范围:-32 768~32 767,或者0~65 535(无符号)

MEDIUMINT(Length)

3字节

范围:-8 388 608~8 388 607,或者0~16 777 215(无符号)

INT(Length)

4字节

范围:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(无符号)

BIGINT(Length)

8字节

范围:-9 223 372 036 854 775 808~9 223 372 036 854 775 807,或者0~18 446 744 073 709 551 615(无符号)

FLOAT(Length, Decimals)

4字节

具有浮动小数点的较小的数

DOUBLE(Length, Decimals)

8字节

具有浮动小数点的较大的数

DECIMAL(Length, Decimals)

Length+1字节或Length+2字节

存储为字符串的DOUBLE,允许固定的小数点

DATE

3字节

采用YYYY-MM-DD格式

DATETIME

8字节

采用YYYY-MM-DD HH:MM:SS格式

TIMESTAMP

4字节

采用YYYYMMDDHHMMSS格式;可接受的范围终止于2037年

TIME

3字节

采用HH:MM:SS格式

ENUM

1或2字节

Enumeration(枚举)的简写,这意味着每一列都可以具有多个可能的值之一

SET

1、2、3、4或8字节

与ENUM一样,只不过每一列都可以具有多个可能的值


注:还是上面的疑问,用length(float类型变量)为什么可以得到7?

注:ENUM和SET 的都是给出可选的若干值,并只能在其中取值。

不同是SET可以一次选允许的几个值。


3.CREATE、ALTER、DROP

首先它们都是对table的操作,属于DDL--Data Definition Language。

①CREATE TABLE XXX (属性名 类型,。。。,。。。)

注:CREATE可以用于很多功能,新建用户,数据库,表格,view都是用它声明。


②DROP TABLE XXX


③ALTER TABLE XXX

ADD xxx

ADD PRIMARY KEY(XXX)

CHANGE COLUMN XXX

MODIFY COLUMN XXX

DROP COLUMEN


4.Expressions


①Literal value


②Variable:@xxx


③Operations

operator中,LIKE是简单的模式匹配,RLIKE/REGEXP是高级模式匹配


5.INSERT、UPDATE、DELETE

它们都是对于表中的元组的操作,是DML--Data Manipulation Language。


①UPDATE

UPDATE XXX SET xxx = yyy


②DELETE

在mysql中等价于TRUNCATE

可以指定删除某一元组,也可以直接删除所有元组。

注:不同是truncate XXX,而delete from XXX。


③INSERT

广义的对表写入条目可分为3种。

(1)从键盘输入:INSERT INTO XXX VALUES()

(2)从其他TABLE输入:INSERT INTO XXX SELECT * FROM YYY

(3)从外部文件输入:LOAD DATA INFILE ‘xxxxx’


补充输出为外部文件:SELECT * INTO OUTFILE ‘xxxx’

FIELDS TERMINATED BY ','

LINE TERMINATED BY '\n'

FROM  XXX


6.SELECT

一般形式SELECT ___A___ FROM  XXX  ____B____  WHERE


①A中的选项

(1)*   表示所有选项

(2)x,y,...   表示具体指定选择的属性

(3)x AS y       表示将x选出并改名y

(4)DISTINCT x  表示只显示x属性中不重复的项目

(5)SUM(x)  表示将属性x求和


②B中的选项

(1)LIMIT x  表示只显示x数目的元组;还可以LIMIT y,x表示从y以后的x个条目

(2)ORDER BY x ASC/DESC 按x属性升序/降序显示


③WHERE及GROUP

(1)WHERE 两个条件之间用AND连接

(2)GROUP BY x  求和之后再将条目按x属性分组显示

(3)GROUP BY  x HAVING 如果是求和或者其它运算之后(比如AS),不能对于运算结果进行WHERE加条件操作

这个时候可以使用HAVING 加条件操作。



0 0
原创粉丝点击