day34 mysql 认识数据库,创建学生,教师,学院表

  • 数据库 - 数据的仓库(集散地) - 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图(实体关系图)- 概念模型图

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

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



代码:

drop database if exists school;
-- 如果存在school的库就先删除

create database school default charset utf8;

use school;
-- 创建school的库并指定编码

-- 创建学生表
drop table if exists tb_student;
-- 如果存在student的表就先删除

create table tb_student
(
stuid int not null comment '学号',
-- 学生id 是整数 不能为空,并指定描述为'学号'

stuname varchar(20) not null comment '姓名',
-- 学生姓名不能为空且设定字符串长度最多为20个字符

stusex bit default 1 comment '性别',
-- 学生性别 bit 默认为1

stubirth date comment '生日',
-- 生日是日期格式
primary key (stuid)
-- 设置学生id为主键
);

alter table tb_student add column stuaddr VARCHAR(255);
-- 修改 学生表 增加 一个 地址列 

alter table tb_student change column stuaddr stuaddr VARCHAR(511);
-- 修改 地址列 为新的地址列

alter table tb_student DROP column stutaddr;
-- 删除学生表的地址列

 --插入方式一 :
insert into tb_student values(1001,'张三丰',1,'1982-2-2','湖北');
-- 插入一个学生(要与前面定义的顺序一致编号,姓名,性别,生日,地址)

-- 注意:需要哪个语句的执行就去选择 那句执行一次

insert into tb_student values(1002,'张无极',1,'1992-2-2','湖南');
    -- 生日和名字都是字符串,要加单引号
insert into tb_student (stuid, stuname) values(1003,'张翠花');

-- 插入方式二:同时添加三个学生
insert into tb_student (stuid,stuname,stusex) values
(1005,'林晓',default),
(1006,'郭靖',1),
(1007,'石达开',1);

-- TRUNCATE TABLE tb_student

delete from tb_student where stuid=1005;
-- 删除id为1005的学生

update tb_student set stuaddr='四川成都' where stuid=1006 or stuid=1007;
-- 更新数据
update tb_student set stuaddr='四川成都' where stuid in (1006,1007);
update tb_student set stubirth='1900-2-3',stuaddr='四川达州' where stuid = 1003;





-- 创建学院表
drop table if exists tb_college;
create table tb_college
(
colid int auto_increment comment '编号',
-- 学院id 自动编号 整数 描述为编号
colname varchar(20) not null comment'名称',
colweb varchar(2034) comment'网站',
primary key (colid)
);


-- 插入学院记录
insert into tb_college (colname) values
('外国语学院'),
('计算机学院'),
('经济管理学院');


-- 修改学生表添加外键约束(参照完整性)
alter table tb_student add constraint fk_student_colid foreign key (colid) references tb_college(colid);
alter table tb_college add column colid int;
update tb_student set colid = 1 where stuid between 1001 and 1003;
update tb_student set colid = 2 where stuid in (1004,1006);
update tb_student set colid = 3 where stuid=1007;


-- 创建老师表
drop table if exists tb_teacher;
create table tb_teacher
(teaid int not null,
teaname varchar(20) not null,
teasex bit default 1,
teabirth date,
teatitle varchar(100) default '助教',
colid int not null
-- PRIMARY key (teaid),
-- foreign key (colid) references tb_college(colid),
);
alter table tb_teacher add constraint pk_teacher_colid PRIMARY key(teaid);
alter table tb_teacher add CONSTRAINT fk-teacher_colid FOREIGN key (colid) REFERENCES tb_colleage;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值