MySQL的优势:1,运行速度快;2,使用成本低;3,容易使用;4,可移植性强;5,使用更多用户

 

系统数据库:information_schema:数据库对象信息,如用户、字段、权限

                     performance_schema:数据库服务器性能参数

                     mysql:系统的用户权限

                     test:自动生成的测试数据库,任何用户都可以使用

创建数据库:CREATE DATABASE 数据库名();

       用英文;作为休止符,在windows系统下不区分大小写。

查看数据库:SHOW DATABASES;

       会显示四个系统数据库和自己的数据库

选择数据库:USE 数据库名;

删除数据库:DROP DATABASE 数据库名;

 

SQL语言包括:1,DML(数据操作语言):用来插入、修改和删除表中数据如:INSERT、UPDATE、DELETE

                      2,DDL(数据定义语言):创建或删除数据库对象如:CREATE、DROP、ALTER

                      3,DQL(数据查询语言):数据查询,指SELECT

4,DCL(数据控制语言):控制数据库组件的存取许可,存取权限GRANT,REVOKE

 

常用数值类型

数据类型

字节数

取值范围

TINYINT[(M)]

1字节

有符号值:-27~-27

无符号值:0~28-1

SMALLINT[(M)]

2字节

有符号值:-215~215-1

无符号值:0~216-1

MEDIUMINT[(M)]

3字节

有符号值:-223~223-1

无符号值:0~224-1

INT[(M)]

4字节

有符号值:-231~231-1

无符号值:0~232-1

FLOAT[(M,D)]

4字节

有符号值:-3.402823466E+38~1.175494351E-38

无符号值:1.175494351E-3.402823466E+38

DOUBLE[(M,D)]

8字节

有符号值:-1.7976931348623157E+308~-2.2250738585072014E-308

无符号值:2.225073858072014E-308~1.7976931348623157E+308

DECIMAL[(M,[D])]

M+2字节

M最大精度位数即总位数,M的取值范围是1~65,默认值为10

D小数精度位数,D的取值是0~30

该类型可能的取值范围与DOUBLE相同,但有效值范围由M、D决定

 

FLOAT和DOUBLE称为浮点数类型,DECIMAL称为定数类型,DECIMAL精度比DOUBLE高

如该字段为非负数无符号数,则需添加UNSIGNED属性

 

字符串类型

数据类型

字节

说明

CHAR[(M)]

M字节

固定长字符串

M为0~255的整数

VARCHAR[(M)]

可变长度

可变长度

M为0~65535的整数

TINYTEXT

0~255

微型文本串

TEXT

0~65535

文本串

 

日期类型

数据类型

格式

最值范围

DATE

YYYY-MM-DD

1000-01-01~9999-12-31

DATETIME

YY-MM-DD hh:mm:ss

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

TIME

hh:mm:ss

-835:59:59~835:59:59

TIMESTAMP

YYYYMMDDHHMMSS

1970年某时刻~2038年某时刻,精度为1秒

YEAR

YYYY格式的年份

1901~2155

MySQL允许不严格的语法:任何标点符号都可以作为日期之间的间隔符

在DATE中:16-06-16、16.06.16、16/06/16相同

MySQL常用数据类型:整型:int

                                   浮点:float(18,7)

                                   字符串:varchar(4000)

                                   大文本:TEXT

                                   时间:DATATime

创建表:语法

              CREATE TABLE 表名(

                     字段1 数据类型[字段属性|约束][索引][注释],

                     ………

                     字段n 数据类型[字段属性|约束][索引][注释],

              )[表类型][表字符集][注释];

 

如果使用的名称与保留字有冲突,需要用(`)括起来如`name`,键盘~键

MySQL中的注释:单行注释:#......;多行:/*…*/

 

常用的属性约束

字段属性、约束名

关键字

说明

非空约束

NOT NULL

该字段不允许为空

默认约束

DEFAULT

如果该字段没有插入数据,则其值为默认值

唯一约束

UNIQUE KEY(UK)

允许为空,但只能有一个空值

主键约束

PRIMARY KEY(PK)

设置该字段为表的主键

外键约束

FOREIGN KEY(FK)

用于两表之间建立关系,需指定引用主表的哪一字段

注意:InnoDB支持外键,MyISAM不支持

              作为外键的字段要求在主表中是主键

自动增长

AUTO_INCREMENT

设置该字段为自增字段,默认每条自增1;

通常用于设置主键,且为整数类型

可设置初始值和步长

 

外键(子表、从表)只能创建在外键表中

单字段主键

       在定义字段同时指定主键:

              CREATE TABLE表名(

字段1 数据类型 PRIMARY KEY,

);

       在定义完后指定主键:

              CREATE TABLE表名(

                     字段1 数据类型,

                     ……

                     [CONSTRAINT<约束名>]PRIMARY KEY[列名]

);

 

多字段联合主键:

       CREATE TABLE表名(

       字段1 数据类型(长度),

       字段2 数据类型(长度),

PRIMARY KEY[字段1,字段2……]

);

 

注释:

       CREATE TABLE test(

              字段1 数据类型,

)COMMENT=’注释’;

 

编码格式设置

       在特定情况下,为达到特存储内容要求,如某表需要存储西欧文字内容

              CREATE TABLE表名(

  字段1 数据类型,

)CHARSET=’字符集名’;

 

查看所有表:

       SHOW tables;

 

查看表内的定义:

       DESCRIBE 表名;(显示表结构)

或   DESC 表明;

 

删除表

       DROP TABLE表名;

 

常用存储引擎InnoDB和MyISAM比较

功能

InnoDB

MyISAM

支持事务

支持

不支持

支持全文索引

不支持

支持

外键约束

支持

不支持

表空间大小

较大

较小

数据行锁定

支持

不支持

MyISAM:访问速度快,以访问为主的应用适用该引擎

InnoDB:在处理事务上有优势,支持提交,回滚和崩溃修复能力的事务安装,占用空间大,需要频繁的更新、删除操作,对事务的完整性要求较高,需要实现并发控制,适用于该引擎

 

查看当前默认引擎

       SHOW VARIABLES LIKE ‘storage_engine%’;

修改默认引擎只需修改配置文件my.ini,

       default-storage-engine=引擎;

 

指定表的存储引擎

       CREATE TABLE 表名(

字段1 数据类型;

)ENGINE=引擎;

 

MyISAM数据文件扩展名

       .frm:表结构定义文件,存放表的元数据,如结构定义信息等。

       .MYI:存放MyISAM类型表的索引信息

       .MYS:数据文件,存放表中数据的文件

InnoDB类型表文件

       .frm:表结构定义文件,存放表的元表数据。

       .ibdata1:数据文件,保存所有InnoDB类型表的数据

 

帮助文档:

       HELP Data Types;

若想进一步如INT类型:

       HELP INT;