目录
数据库概述
定义
数据库(DataBase)为了方便数据的存储和管理,它将数据按照特定的 规则存储在磁盘上,就是一个存储和管理数据的仓库。
常见的数据库产品:
国外
- MySQL 快捷、可靠 开源、免费
- Oracle:功能强大,收费.
- SQL Server(微软): 只能安装在Windows操作系统
- DB2 (IBM):适合处理海量数据,收费.
国内
- 南大通用GBASE: 天津南大通用数据技术股份有限公司
- 达梦:武汉达梦数据库股份有限公司
- 人大金仓:北京人大金仓信息技术股份有限公司
- 神通:神舟通用公司
Mysql数据库
- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,现 在已经被 Oracle收购。MySQL 流行的关系型数据库管理系统。
- MySql是一种关系数据库管理系统。
- MySql数据库服务器具有快速、可靠和易于使用的特点。
- MySql使用标准的sql语言,并且支持多种操作系统,支持多种语言连接。
mysql商业版与社区版
- MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用。
- MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维 护,可以免费使用。
MySQL的常用命令
- 查看当前所有的数据库:show databases;
- 选择指定的库:use 库名
- 查看当前的所有表:show tables;
- 查看其他库的所有表:show tables from 库名;
- 查看mysql版本 select version();
安装可视化客户端工具
SQLyog / Navicat
sql
结构化查询语言(Structured Query Language)简称SQL,是一种数据 库程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统.
SQL语言特点:
- 不是某个特定数据库专有的语是言,几乎所有关系型数据库都支持SQL
- 简单易学,灵活使用可以进行复杂和高级的数据库操作
DDL
● 数据(结构)定义语言DDL(Data Definition Language),是用于创建和修改数据 库表结构的语言。 ● 常用的语句:create ,alter,drop,rename
创建,删除数据库
创建数据库并设置编码格式
CREATE DATABASE [if not exists] 数据库名 [ CHARSET utf8]
删除数据库
DROP DATABASE 数据库名 / [IF EXISTS数据库名];
修改字符集
ALTER DATABASE 数据库名 CHARSET gbk;
-- 创建数据库
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8
-- 删除数据库
DROP DATABASE schooldb
-- 修改数据库字符编码
ALTER DATABASE schooldb CHARSET utf8
-- 注意mysql
数据库表的基本概念
1、数据表
表(table)是构成关系型数据库的基本元素。表是由行和列组成的。表中的列被看作 是这些记录的字段,表中的行是一条记录,也就是一条数据。
2、字段(column)
字段是表里的一列,用于保存每条记录的特定信息。 如学生表的字段包括:学号, 姓名, 性别, 生日 , 电话 , 身高, 注册时间等
3、记录(row)
记录是表里的一行数据。
设 计 表
对于具体的某一个表,在创建之前,需要确定表的下列特征:
- 表名
- 表中的字段(列)
- 字段的数据类型和长度
- 约束
设计表(数据类型)
字符
- char(n) n=5长度为n的定长字符串一般用于存储固定长度的字符串,固定存储5个字符,即使只存储了一个字符, 也是占5个字符空间
- varchar(n) 最大长度为n的可变长字符串, 用于存储变长的字符串,当 n=5, 最大上限能存储5个字符,实际存 储几个字符,就占实际的空间
日期
- date 日期, 年月日 生日 datetime 时间 年月日 时分秒
整数
浮点
- decimal 数据类型(M,D) M:精度,数据的总长度; D:标度,小数点后的长度
长文本字符
注:长文本字符(存储新闻,小说)
- TINYTEXT: 最大长度255个字符(2^8-1) TEXT:最大长度65535(2^16-1)
- MEDIUMTEXT:最大长度16777215(2^24-1)
- LONGTEXT: 最大长度4294967295(2^32-1)
主键:
在一张表中代表唯一的一条记录,不能为空,不能重复
约束:
- PRIMARY KEY 设置主键约束
- NOT NULL 不能为空约束,值不能为空,可以为多个列设置
- UNIQUE 唯一性约束,不能重复,可以为多个列设置
- 检查约束 ,值需要满足设定条件,可以为多个列设置
- 外键约束(多表)
主键自动增长,设置为自动增长时,只能为整数类型
- AUTO_INCREMENT
默认值
- DEFAULT default_value
字段注释:
- comment '注释'
创建表语法:
CREATE TABLE 表名(列名 数据类型 [约束] [默认值] [ 注释],......)
CREATE TABLE student(
id INT [PRIMARY KEY NOT NULL AUTO_INCREMENT],
number INT NOT NULL,
name VARCHAR(10) NOT NULL,
age INT CHECK(age>18),
birthday DATE,
weight decimal(3,2),
opertime datetime
)
删除表,修改表名
删除表
- DROP TABLE 表名
修改表名
- RENAME TABLE 旧表名 TO 新表名
实例
/*
创建表
表是数据中基本的组成单位
由列和行构成
创建表:
确定表名(存储哪类信息)学生信息表
确定列名(具体的信息) 学号,姓名,性别,电话,生日,
确定列的数据类型和长度
确定约束(唯一约束,不能为空...)
*/
-- 创建表
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT'主键',
num INT UNIQUE NOT NULL COMMENT '学号',
NAME VARCHAR(8) NOT NULL COMMENT'姓名',
gender CHAR(1) NOT NULL DEFAULT '男',
phone CHAR(11) UNIQUE NOT NULL,
birthday DATE,
height DECIMAL(3,2) CHECK(height<2.55),
regtime DATETIME NOT NULL
)
-- 删除表
DROP TABLE studnet
-- 重命名表
RENAME TABLE stu TO student