学习数据库的目的:
- 实现数据持久化到本地。
- 使用完整的管理系统统一管理,可以实现结构化查询,方便管理。
一、数据库概述
数据库(DataBase)
为了方便数据的存储和管理,它将数据按照特定的 规则存储在磁盘上,就是一个存储数据的仓库 。
数据库的相关概念
DB:数据库(DataBase) 存储数据的容器,它保存了一系列有组织的数据。
DBMS:数据库管理系统(DataBase Management System) 又称为数据库软件或数据库产品,用于创建或管理DB。
二、 SQL
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以 及查询、更新和管理关系数据库系统 。
SQL优点: 不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL 简单易学,灵活使用可以进行非常复杂和高级的数据库操作 。
三、DDL
设计表------ 对于具体的某一个表,在创建之前,需要确定表的下列特征:
- 表名(表信息)
- 表中的字段
- 字段的数据类型和长度
- 哪些约束
设计表的数据类型:
- 整数
- 浮点------decimal
数据类型(M,D):
M:精度,数据的总长度;
D:标度,小数点后的长度 - TEXT列字符字符串
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT
它们的长度:
主键:在一张表中代表唯一的一条记录,不能为空,不能重复。
约束:
PRIMARY KEY 设置主键约束
NOT NULL 不能为空约束
UNIQUE 唯一性约束
检查约束 设置条件 外键约束
主键自动增长,设置为自动增长时,只能为整数类型 AUTO_INCREMENT
默认值 DEFAULT default_value
字段注释: comment '注释'
删除表,修改表名
删除表
DROP TABLE [if exists ]表名
修改表名
RENAME TABLE 旧表名 TO 新表名
复制表结构
CREATE TABLE 新表名 LIKE 被复制表
代码示例如下:
-- 创建数据库
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8
-- 删除数据库
DROP DATABASE IF EXISTS schooldb
-- mysql中数据库一旦创建,名字不能修改
-- 修改数据库字符集
ALTER DATABASE schooldb CHARSET utf8
-- 创建表
-- 确定表名 学生信息表
-- 确定表中字段(列) 学号,姓名,性别,生日,电话,身高,注册时间
-- 确定字段(列)的数据类型 以及长度
-- 确定列的约束
-- 创建表语法
-- char(n) 定长的字符串 固定存储n个字符,长度如果不够n,默认补空格
-- VARCHAR(n) 可变长度的字符串 n是最大长度 如果只存储2个字符,实际占有2个空间位置
CREATE TABLE student(
number INT,
NAME VARCHAR(6),
gender CHAR(1),
birthday DATE,
phone VARCHAR(11),
height DECIMAL(3,2),
reg_time DATETIME
)
-- 删除表结构
DROP TABLE student
-- 创建表 并添加约束规则
-- PRIMARY KEY 设置主键约束, 添加主键约束后,值就不能重复,一个表中只能有一个列是主键
-- 主键列可以唯一的表示某一行数据 ,
-- mysql中主键可以设置为自动增长 AUTO_INCREMENT
-- NOT NULL 不能为空约束
-- UNIQUE 唯一性约束
-- 检查约束 设置条件
CREATE TABLE student(
number INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号主键',
NAME VARCHAR(6) NOT NULL COMMENT '姓名',
gender CHAR(1) NOT NULL COMMENT '性别',
birthday DATE NOT NULL,
phone VARCHAR(11) NOT NULL UNIQUE,
height DECIMAL(3,2) CHECK(height<3),
reg_time DATETIME
)