MySQL数据库基础入门
数据库分为关系型数据库和非关系型数据库
常用的关系形数据库有Oracle, MySQL,Microsoft SQL Server, Sqlite
非关系型数据库有 IBM Db2,Redis
MySQL是web时代使用最广泛的关系型数据库
关系型数据库的核心元素
- 数据行(记录)
- 数据列(字段)
- 数据表(数据行的集合)
- 数据库(数据表的集合)
数据库的安装
- 安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入
sudo apt-get install mysql-server - 启动服务器
sudo service mysql start - 查看进程中是否存在MySQL
ps ajx|grep mysql - 停止服务
sudo service mysql stop - 重启服务
sudo service mysql restart
数据库的数据类型
-
常用的数据库类型
整数:int,bit
小数:decimal
字符串:varchar,char
日期时间: date, time, datetime
枚举类型(enum) -
数据库特别说明
decimal 表示浮点数,如 decimal(5, 2) 表示共存5位数,小数占 2 位.
char 表示固定长度的字符串,如char(3),如果填充’ab’时会补一个空格为’ab ‘.
varchar 表示可变长度的字符串,如varchar(3),填充’ab’时就会存储’ab’
对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径.
字符串 text 表示存储大文本,当字符大于 4000 时推荐使用, 比如技术博客
数据约束
约束本质上是对数据在数据类型限定的基础上添加的额外的要求
-
主键 primary key: 物理上存储的顺序. MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned.
-
非空 not null: 此字段不允许填写空值.
-
惟一 unique: 此字段的值不允许重复.
-
默认 default: 当不填写字段对应的值会使用默认值,如果填写时以填写为准.
-
外键 foreign key: 对关系字段进行约束, 当为关系字段填写值时, 会到关联的表中查询此值是否存在, 如果存在则填写成功,
如果不存在则填写失败并抛出异常
数据类型附录表
-
整数类型
类型 字节大小 有符号范围(Signed) 无符号范围(Unsigned) TINYINT 1 -128 ~ 127 0 ~ 255 SMALLINT 2 -32768 ~ 32767 0 ~ 65535 MEDIUMINT 3 -8388608 ~ 8388607 0 ~ 16777215 INT/INTEGER 4 -2147483648 ~2147483647 0 ~ 4294967295 BIGINT 8 -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615
-
字符串
类型 字节大小 示例 CHAR 0-255 类型:char(3) 输入 'ab', 实际存储为'ab ', 输入'abcd' 实际存储为 'abc' VARCHAR 0-255 类型:varchar(3) 输 'ab',实际存储为'ab', 输入'abcd',实际存储为'abc' TEXT 0-65535 大文本
-
日期时间类型
类型 字节大小 示例 DATE 4 '2018-01-01' TIME 3 '00:00:00' DATETIME 8 '2018-01-01 00:00:00' YEAR 1 '2018' TIMESTAMP 4 '2018-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC