day35 初识数据库

数据库 - 数据的仓库(集散地) - database - 实现数据持久化和数据管理
持久化 - 将数据从内存转移到能够长久保存数据的存储介质的过程

数据库的分类:关系型数据库(SQL)和非关系型数据库(NoSQL)

文件系统 / 层次数据库 / 网状数据库

关系型数据库

  • 1970s - E.F.Codd - IBM研究员 - System R
  • 理论基础:关系代数和集合论
  • 具体表象:用二维表来保存数据 - 学生表
    ~ 行:一条记录 - 一个学生的信息
    ~ 列:一个字段 - 学生的某个属性,例如:学号、姓名、出生日期
    ~ 主键列:能够唯一标识一条记录的列,例如:学生的学号
  • 编程语言:SQL - 结构化查询语言
    ~ DDL - 数据定义语言 - create / drop / alter
    ~ DML - 数据操作语言 - insert / delete / update / select
    ~ DCL - 数据控制语言 - grant / revoke

LAMP = Linux + Apache + MySQL + PHP

PHP ---> Java
MySQL ---> Oracle
Linux ---> 小型机

去IOE运动
IBM的小型机
Oracle的数据库
EMC的存储设备

关系型数据库产品:

  • Oracle - 甲骨文
  • IBM DB2
  • Microsoft SQLServer
  • Sybase

  • MySQL
  • PostgreSQL
  • SQLite

连接MySQL的图形化客户端工具:

  • Navicat for MySQL - 病猫
  • SQLyog - 海豚
  • Toad for MySQL - 蛤蟆

学生(学号、姓名、性别、生日、家庭住址)
学院(编号、名称、网站、……)
老师(工号、姓名、性别、生日、职称、所在学院编号)
课程(编号、名称、学分)

设计数据库中的表 - ER图(实体关系图)- 概念模型图

读者、图书
用户、购物车、商品、订单
用户、单车
人、身份证

实体:学生、学院
关系:属于
重数:多对一

操作实例:
创建用户识别码
create user 'root'@'%' identified by '123456';
重置权限
flush privileges;
赋予所有特权
grant all privileges on . to 'root'@'%' with grant option;

-- 如果存在名为school的数据库就删除它
drop database if exists school;

-- 创建名为school的数据库并指定默认的字符集为utf-8
create database school default charset utf8;

-- 切换到school数据库上下文环境
use school;

-- 创建学生表
create table tb_student
(
stuid int not null,
stuname varchar(20) not null,
stusex bit default 1,
stubirth date,
primary key (stuid)
);

-- 修改学生表
添加stuaddr属性
alter table tb_student add column stuaddr varchar(255);
改变stuaddr属性
alter table tb_student change column stuaddr varchar(511);
删除stuaddr属性
alter table tb_student drop column stuaddr;

-- 修改学生表添加学院编号(colid)列
alter table tb_student add column colid int;

-- 修改学生表添加外键约束(参照完整性)

alter table tb_student add constraint fk_student_colid foreign key (colid) references tb_college (colid);

-- 更新学生表为学生指定所属学院
update tb_student set colid=1 where stuid between 1001 and 1006;
update tb_student set colid=2 where stuid in (1007, 1008);
update tb_student set colid=3 where stuid=1009;
16:33:18

-- 创建老师表
create table tb_teacher
(
teaid int not null comment '工号',
teaname varchar(20) not null comment '姓名',
teasex bit default 1 comment '性别',
teabirth date comment '生日',
teatitle varchar(10) default '助教' comment '职称',
colid int not null comment '所在学院'

-- primary key (teaid),
-- foreign key (colid) references tb_college (colid)

);

添加主键

alter table tb_teacher add constraint pk_teacher_teaid primary key (teaid);

添加外键约束

alter table tb_teacher add constraint fk_teacher_colid foreign key (colid) references tb_college (colid);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • sql语句练习sql练习2 MYSQL导入数据出现The MySQL server is running with...
    十二右阅读 5,180评论 0 0
  • 关系数据库概述 数据持久化 --将数据保存到(在掉电情况下)能够长久保存数据的存储介质中 数据库发展史 -网状数据...
    寒江雪_独钓阅读 3,733评论 0 0
  • 花了3天时间学习MySql,考了个二级MySql 书籍参考:高等教育出版社《全国计算机等级考试二级教程-MySQL...
    如果仲有听日阅读 5,080评论 4 4
  • 一、数据库介绍 数据库 - 数据的仓库 - database关系型数据库 - 数据持久化 - 管理数据 - 方便的...
    龙神海王阅读 2,962评论 0 0
  • -- SQL: Structured Query Language(结构化查询语言)-- 1. DDL: 数据定...
    MW演员阅读 1,462评论 0 0