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;