数据库(Database,简称DB)
概念
长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”
作用
保存、管理数据
关系型数据库(SQL)
MySQL、Oracle、SQL Server、SQLite、DB2
非关系型数据库(NOSQL)
Redis、MongoDB
Mysql 简洁
概念
是现流行的开源、免费的关系型数据库
特点
免费、开源数据库
小巧、功能齐全
使用便捷
可运行于Windows或Linux操作系统
可适用于中小型甚至大型网站应用
端口设置 3306(默认)
SQLyog管理工具
可手动操作、管理MySQL数据库的软件工具
特点
易用
简洁
图形化
链接数据库
mysql -h 服务器主机地址 –u 用户名 -p用户密码
建表
显示表结构
desc 表名
显示表创建语句
show create table 表名
CREATE TABLE [ IF NOT EXISTS ] 表名
(
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
反引号用于区别MySQL保留字与普通字符而引入的。
列类型
规定数据库中该列存放的数据类型
分为
数值类型
字符串类型
日期和时间型数值类型
NULL值
数值类型
字符串类型
日期和时间型数值类型
NULL值
理解为“没有值”或“未知值”
不要用NULL进行算术运算,结果仍为NULL
选择数据类型
整数和浮点
日期类型
char和varchar
UNSIGNED
无符号的
声明该数据列不允许负数
ZEROFILL
0填充的
不足位数的用0来填充,如 int(3),5则为 005
AUTO_INCREMENT
自动增长的,每添加一条数据,自动在上一个记录数上加1
通常用于设置主键,且为整数类型
可定义起始值和步长
NULL 和 NOT NULL
默认为NULL,即没有插入该列的数值
如果设置为NOT NULL,则该列必须有值
DEFAULT
默认的
用于设置默认值
例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值。
表列类型注释
CREATE TABLE [ IF NOT EXISTS ] 表名
(
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
CREATE TABLE [ IF NOT EXISTS ] test
(
id
int (11) UNSIGNED COMMENT ‘编码号’
)COMMENT=‘测试表’;
设置数据表的类型
CREATE TABLE 表名(
#省略一些代码
) ENGINE = MyISAM
or
CREATE TABLE 表名(
#省略一些代码
) ENGINE = InnoDB
常见的MyISAM与InnoDB类型
可为数据库、数据表、数据列设定不同的字符集
设定方法
创建时通过命令来设置,如
CREATE TABLE 表名(
#省略一些代码
)CHARSET = utf8;
如无设定,则根据MySQL数据库配置文件my.ini
(Windows系统)中的参数设定
如:character-set-sever = utf8
MySQL数据表以文件方式存放在磁盘中
包括表文件、数据文件以及数据库的选项文件
位置:MySQL安装目录\data下存放数据表。目录名对应数据库名,该目录下文件名对应数据表
InnoDB类型数据表只有一个*.frm文件,数据文件为上一级目录的 ibdata1 文件
MyISAM类型数据表对应三个文件:
*.frm – 表结构定义文件
*.MYD – 数据文件
*.MYI – 索引文件