一、数据库表的物理设计
使用navicat 做建表操作:
mysql数据库的数据类型
类型大小 用途
CHAR0-255字节 定长字符串,只能存储数字、英文
VARCHAR0-65535 字节 变长字符串,可存储汉字
TINYTEXT0-255字节 短文本字符串
TEXT0-65535字节 长文本数据
MEDIUMTEXT0-16 777 215字节 中等长度文本数据
LONGTEXT0-4 294 967 295字节 极大文本数据
整数类型 字节 范围(有符号) 范围(无符号) 用途
TINYINT1字节 (-128,127) (0~255) 小整数值
SMALLINT2字节 (-32 768,32 767) (0~65 535) 大整数值
INT或INTEGER4字节 大整数值
BIGINT 8字节 极大整数值
FLOAT 4字节 单精度浮点数值
DOUBLE 8字节 双精度浮点数值
AUTO_INCREMENT(自动递增)
每次插入一条新数据时,自动的创建主键字段的值。它的开始值是1,每条新纪录自动加1;
二、数据库的备份与还原
1)冷备份与热备份
冷备份:断开数据库服务后,直接拷贝数据库文件。
热备份:将数据库转存为sql 文件
2) 还原
创建一个同名的空数控库,选择运行sql 文件即可。
三、数据库的CRUD操作
增加(Create)读/查询(Retrieve),更新/修改(Updtae),删除(Delete)这几个单词首字母简写构成CRUD,一般叫增删改查操作。
CRUD 通过结构化查询语言(SQL)完成。SQL又可以分为DDL 和 DML 两大类
3.1 DDL 语句
DDL:数据定义语言-用于定义和管理数据库中所有的对象(数据库、表、字段、数据类型)进行管理。
常用的DDL语句:
1)创建数据库
CREATE DATABASE IF NOT EXISTS test2 CHARACTER SET utf8
创建表格
USE test2;
CREATE TABLE IF NOT EXISTS student(id INT, 姓名 VARCHAR(50), phone CHAR(11) )
删除操作
DROP TABLE student
DROP DATABASE test2
一般来说,此类操作不常见,我们可以用可视化的软件来设计数据库。如 Navicat 、phpmyadmin 等
3.2 DML 语句
实现对数据库表中数据的增删改查。
1) 插入数据
语法: insert into 表名( 字段名1,字段名2,...) values(值1,值2,...)
例:
INSERT INTO `学生`(学号, 班号, 姓名, 性别,出生日期, 手机号) VALUES('100111','B0817', '孙松', 1, '1999-09-09', '13012345678')
修改/更新数据
语法: update 表名 set 字段名1=值1,字段名2=值2, ... where 条件
例:
UPDATE `学生` SET `学生`.`学号`='B0011', `学生`.`手机号`='1888888888' WHERE id=16
删除数据
语法: delete from 表名 where 条件
例:
DELETE FROM `学生` WHERE id=16
查询语句
语法: select 字段名1 as 别名1,字段名2 as 别名2,... from 表名
where 条件判断1(= 等于 >= 大于等于 <=小于等于 != 不等于)
and条件判断2
or条件判断3
例:
SELECT `学生`.`姓名`, `学生`.`学号`, `学生`.`出生日期` FROM `学生` WHERE 出生日期>'2000-01-01' AND 性别=0
like模糊查询,匹配like指定的字符串
例: like '李%'查所有姓李的人
like '%李'查所有姓名最后一位叫李的人
like '%李%'查所有姓名中包含 李 的人
not like '李%'查找所有不姓李的人
order by 字段名 DESC(ASC),根据字段的值排序。 desc 降序,从大到小,asc 从小到大。注意,order by 子句要放在查询语句的最后。
5) group by 子句 ,作用:用来分组。
SELECT COUNT(姓名) as 总数, GROUP_CONCAT(姓名), GROUP_CONCAT(学号) FROM `学生` GROUP BY 性别