数据库
-
数据库(Database,简称DB)
1.1 概念: 长期存放在计算机内,有组织,可共享的大量数据集合,是一个数据的仓库
作用: 保存管理数据
-
类型:
2.1 关系型数据库(SQL):MySQL、Oracle、SQL Sever、SQLite、DB2
非关系型数据库(NOSQL):Redis、MongoDB
-
DBMS:
数据库管理系统(Database Management System):数据管理软件,科学组织和存储数 据、高效的获取和维护数据。
MySQL
-
概念 :是现在流行的开源,免费的数据库
-
特点:免费、开源数据库
小巧、功能齐全
使用便捷
可运行于Windows或Linux操作系统
可适用于中小型甚至大型网站应用
-
运行机制
-
结构化查询语句SQL
4.1 分类:
DDL(数据定义语言):定义和管理数据对象,如数据库,数据表等
命令:create、drop、alter
DML(数据操作语言):用于操作数据库对象中所包含的数据
命令:insert、update、delete
DQL(数据查询语言):用于查询数据库数据
命令:select
DCL(数据控制语言):用来管理数据库的语言,包括管理权限及数据更改
命令:crant、commit、rollback
-
命令行操作数据库
创建数据库 :create database if not exists 数据库名;
删除数据库: drop database if exists 数据库名;
查看数据库: show databases;
使用数据库:use 数据库名;
- 创建数据表
create table if not exists `表名` (
`字段名1` 列类型 属性 索引 注释,
`字段名2` 列类型 属性 索引 注释,
......
`字段名n` 列类型 属性 索引 注释,
)表类型 表字符集 注释 ;
-- 反引号用于区别MySQL保留字与普通字符而引入的
-
数据值和列类型
列类型规定数据库中该列存放的数据类型
分为 : 数值类型
字符串类型
日期和时间型数值类型
NULL值
-
数值类型:
类型 | 说明 | 取值范围 | 存储需求 |
---|---|---|---|
tinyint | 非常小的数据 | 有符值: -27 ~ 27-1 | |
无符号值:0 ~ 28-1 | 1字节 | ||
smallint | 较小的数据 | 有符值: -215 ~ 215-1 | |
无符号值: 0 ~ 216-1 | 2字节 | ||
mediumint | 中等大小的数据 | 有符值: -223 ~ 223-1 | |
无符号值: 0 ~ 224-1 | 3字节 | ||
int | 标准整数 | 有符值: -231 ~ 231-1 | |
无符号值:0 ~ 232-1 | 4字节 | ||
bigint | 较大的整数 | 有符值: -263 ~263-1 | |
无符号值:0 ~264-1 | 8字节 | ||
float | 单精度浮点数 | ±1.1754351e -38 | 4字节 |
double | 双精度浮点数 | ±2.2250738585072014e -308 | 8字节 |
decimal | 字符串形式的浮点数 | decimal(m, d) | m个字节 |
- 字符串类型
类型 | 说明 | 最大长度 |
---|---|---|
char[(M)] | 固定长字符串,检索快但费空间, 0 <= M <= 255 | M字符 |
varchar[(M)] | 可变字符串0 <= M <= 65535** | 变长度 |
tinytext | 微型文本串 | 28–1字节 |
text | 文本串 | 216–1字节 |
- 日期和时间型数值类型
类型 | 说明 | 取值范围 |
---|---|---|
DATE | YYYY-MM-DD,日期格式 | 1000-01-01~ 9999-12-31 |
TIME | Hh:mm:ss,时间格式 | -838:59:59~838:59:5 |
DATETIME | YY-MM-DD hh:mm:ss | 1000-01-01 00:00:00 至9999-12-31 23:59:59 |
TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 | 197010101000000 ~2037年的某个时刻 |
YEAR | YYYY格式的年份值 | 1901~2155 |
-
NULL值
理解为“没有值”或未知值
不要用NUll进行算术运算,结果仍为NULL
-
数据字段属性
unsigned:无符号的,声明该数据列不允许负数
zerofill:0填充的,不足位数的用0填充,如int(3),5则为005
auto_increment:自动增长的,每添加一条数据,自动会在上一个记录数上加1,通常用于设置主 键且为整数类型,可定义起始值和步长
NULL和 NOT NULL: 默认为NULL,即没有插入该列的数值;如果设置not null,则该列必须有 值
default:用于设置默认值
- 使用语句新建Student表
CREATE TABLE student(
StudentNo int(4) not null primary key auto_increment comment '学生编号',
studentName varchar(20) not null comment '学生姓名',
sex varchar(10) not null comment '性别',
gradeId int(11) not null comment '年级编号',
phone varchar(50) comment '手机号',
address varchar(255) comment '住址'
)comment ='学生信息表',charset=utf8;