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

本文介绍了数据库的基本概念,包括关系型数据库的起源和理论基础。通过实例展示了如何使用MySQL创建学生、教师和学院表,并进行数据操作如插入、删除、更新。此外,还涉及到表之间的关系和外键约束的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库 - 数据的仓库(集散地) - 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;

### 使用 SQLyog 和 SQL 语句创建数据库 在 SQLyog 中,可以通过编写 SQL 语句来创建数据库。以下是具体的操作方法: #### 创建数据库 为了确保新能够被正确创建在一个特定的数据库中,首先要确认该数据库已经存在并已被选中。如果不存在,则可以先创建一个新的数据库。 ```sql CREATE DATABASE my_database CHARACTER SET utf8 COLLATE utf8_general_ci; ``` 这条命令会创建名为 `my_database` 的数据库,并指定字符集为 UTF-8 及相应的字符序[^1]。 #### 切换到目标数据库 一旦创建数据库之后,在执行建操作前要切换至这个新的数据库环境内工作。 ```sql USE my_database; ``` 这一步骤非常重要,因为只有指定了当前工作的数据库名称后才能继续下一步——即创建数据。 #### 定义格结构 下面是一个完整的例子展示如何利用 SQL 语法构建一张学生信息记录的数据 `students`: ```sql CREATE TABLE students ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), password CHAR(6) DEFAULT '123456', PRIMARY KEY (id), UNIQUE INDEX idx_name_unique(name ASC) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生基本信息'; ``` 上述代码片段实现了如下功能: - 设置字段 `id` 类型为整数 (`INT`) 并启用自动增长属性(`AUTO_INCREMENT`) - 字段 `name` 存储长度不超过五十个字符的名字字符串(`VARCHAR(50)`). - 对于密码字段 `password`, 默认值设定为 `'123456'`. - 将 `id` 设为主键(`PRIMARY KEY(id)`). 注意这里没有空格. - 添加唯一索引约束条件给名字列(`UNIQUE INDEX ... ON name`). 这样就能防止重复姓名的存在. - 引擎选用 InnoDB ,并且整个采用 UTF-8 编码方式存储. 完成以上步骤后就可以保存这段脚本文件或者直接粘贴进 SQLyog 的查询窗口里运行它了;记得最后点击工具栏上的“执行/刷新”按钮使更改生效[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值