目录
一、数据库的基本概念
1.构成
数据(Data):
- 描述事物的符号记录
- 包括数字,文字、图形、图像、声音、档案记录等
- 以“记录”形式按统一的格式进行存储
表:
- 将不同的记录组织在一起
- 用来存储具体数据
数据库:
- 表的集合,是存储数据的仓库
- 以一定的组织方式存储的相互有关的数据集合
- 是按照数据结构来组织、存储和管理数据的仓库
2.DBMS与DBS
数据库管理系统(DBMS)
- 是管理数据的系统软件,其包括数据库及用于访问、管理数据库的接口系统
- 主要功能是维护数据库,并方便、有效地访问数据库终端各个部分的数据
数据库系统(DBS)
- 是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
- 用户可以通过DBMS或应用程序操作数据库
二、数据库的类型
1.关系数据库 SQL
关系数据库的存储结构是二维表格
在每个二维表格中:
- 每一行称为一条记录,用来描述一个对象的信息
- 每一列称为一个字段,迎来描述对象的一个属性
2.非关系数据库 NoSQL
非关系数据库也称作NoSQL(Not Only SQL)
存储数据不以关系模型为依据,不需要固定的表格式
非关系数据库的优点:
- 数据库可高并发读写
- 对海量数据高效率存储与访问
- 数据库具有高扩展性与高可用性
三、MySQL数据库
1.简介
MySQL是一款深受欢迎的开源关系型数据库,是Oracle旗下的产品。
特点:
- 性能卓越、服务稳定
- 开源、无版权限制、成本低
- 多线程、多用户
- 基于C/S(客户端/服务器)架构
- 安全可靠
2.MySQL数据库常用的数据类型
常用数据类型 | 解释 |
---|---|
int | 整型 无符号[0,2^32-1],有符号[-2^31,2^31-1] |
float | 单精度浮点(4字节32位) |
double | 双精度浮点(8字节64位) |
char | 固定长度的字符类型 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal(5,2) | 5个有效长度数字,小数点后面有2位 |
3.MySQL的6大约束属性
主键约束 | primary key | 字段的值不能重复,且不能为NULL,一个表只能有一个主键 |
唯一键约束 | unique key | 字段的值不能重复,但可以为NULL,一个表可以有多个唯一键 |
非空约束 | not null | 字段的值不能为NULL |
默认值约束 | default 'XXX' | 字段的值如果没有设置则使用默认值自动填充 |
自增约束 | auto_increment | 字段的值如果没有设置值默认会从 1 开始每行自动递增 1 ,要求设置自增约束的字段必须为主键字段 外键约束 |
零填充 | int(N) zerofill | 使用0进行填充使字段的数值满足 N 位数 |
4.MySQL数据库基本命令
4.1 查看数据库结构
查看当前的 MySQL 版本信息及连接用户名:
SELECT VERSION();
SELECT USER();
查看当前服务器中的数据库:
SHOW DATABASES;
查看数据库中包含的表:
USE 数据库名;
SHOW TABLES;
查看表的结构(字段):
USE 数据库名;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;
4.2 创建及删除数据库和表
创建新的数据库:
CREATE DATABASE 数据库名;
创建新的表:
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
#例:
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE xy101 (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT '',PRIMARY KEY (id));
删除指定的数据表:
DROP TABLE [数据库名.]表名; #如不用USE进入库中,则需加上数据库名
删除指定的数据库:
DROP DATABASE 数据库名;
4.3 管理表中的数据记录
向数据表中插入新的数据记录:
INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
例:
INSERT INTO xy101(id,name,score,passwd) values(1,'zhangsan',70.5,PASSWORD('123456'));
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示;若不使用PASSWORD(),查询时以明文显示。
查询数据记录:
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
例:
SELECT * FROM xy101;
SELECT id,name,score FROM xy101 WHERE id=2;
select name from xy101\G #以列表方式竖向显示
select * from xy101 limit 2; #只显示头2行
select * from xy101 limit 2,3; #显示第2行后的前3行
修改、更新数据表中的数据记录:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
#例:
UPDATE xy101 SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE xy101 SET name='wangxiaoer',passwd='' WHERE id=3;
在数据表中删除指定的数据记录:
DELETE FROM 表名 [WHERE 条件表达式];
例:
DELETE FROM xy101 WHERE id=4;
4.4 修改表名和表结构
修改表名:
ALTER TABLE 旧表名 RENAME 新表名;
例:
ALTER TABLE xy101 RENAME CLASS101;
ALTER TABLE CLASS101 RENAME xy101;
扩展表结构(增加字段):
ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
#default '地址不详':表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用
修改字段(列)名,添加唯一键:
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
例:
ALTER TABLE xy101 CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。
删除字段:
ALTER TABLE 表名 DROP 字段名;
例:
ALTER TABLE xy101 DROP passwd;