
文章插图
作者 | 远辰
本文为「数据不吹牛」投稿
今天给大家分享的是我学习MySQL记录的详细笔记,有基础知识,也有实战案例,文章较长,建议收藏~

文章插图
基本语法
-- 显示所有数据库show databases;-- 创建数据库CREATE DATABASE test;-- 切换数据库use test;-- 显示数据库中的所有表show tables;-- 创建数据表CREATE TABLE pet (name VARCHAR(20),owner VARCHAR(20),species VARCHAR(20),sex CHAR(1),birth DATE,death DATE);-- 查看数据表结构-- describe pet;desc pet;-- 查询表SELECT * from pet;-- 插入数据INSERT INTO pet VALUES ('puffball', 'Diane', 'hamster', 'f', '1990-03-30', );-- 修改数据UPDATE pet SET name = 'squirrel' where owner = 'Diane';-- 删除数据DELETE FROM pet where name = 'squirrel';-- 删除表DROP TABLE myorder;
文章插图
数据库大三大设计范式
- 1NF
不可分割的意思就按字面理解就是最小单位,不能再分成更小单位了 。
字段只能是一个值,不能被拆分成多个字段,否则的话,它就是可分割的,就不符合一范式 。
- 2NF
为什么要有主键?没有主键就没有唯一性,没有唯一性在集合中就定位不到这行记录,所以要主键 。
在满足第一范式的前提下,主键外的每一列都必须完全依赖于主键 。如果出现不完全依赖,只可能发生在联合主键的情况下 。
- 3NF
消除冗余,就是各种信息只在一个地方存储,不出现在多张表中 。
范式总结:范式,其实是用来学习参考的,设计的时候根据情况,未必一定要遵守,要灵活结合业务实际情况决定 。

文章插图
查询练习
- 准备数据
-- 创建数据库CREATE DATABASE select_test;-- 切换数据库USE select_test;-- 创建学生表CREATE TABLE student (no VARCHAR(20) PRIMARY KEY,name VARCHAR(20) NOT ,sex VARCHAR(10) NOT ,birthday DATE, -- 生日class VARCHAR(20) -- 所在班级);-- 创建教师表CREATE TABLE teacher (no VARCHAR(20) PRIMARY KEY,name VARCHAR(20) NOT ,sex VARCHAR(10) NOT ,birthday DATE,profession VARCHAR(20) NOT , -- 职称department VARCHAR(20) NOT -- 部门);-- 创建课程表CREATE TABLE course (no VARCHAR(20) PRIMARY KEY,name VARCHAR(20) NOT ,t_no VARCHAR(20) NOT , -- 教师编号-- 表示该 tno 来自于 teacher 表中的 no 字段值FOREIGN KEY(t_no) REFERENCES teacher(no));-- 成绩表CREATE TABLE score (s_no VARCHAR(20) NOT , -- 学生编号c_no VARCHAR(20) NOT , -- 课程号degree DECIMAL, -- 成绩-- 表示该 s_no, c_no 分别来自于 student, course 表中的 no 字段值FOREIGN KEY(s_no) REFERENCES student(no),FOREIGN KEY(c_no) REFERENCES course(no),-- 设置 s_no, c_no 为联合主键PRIMARY KEY(s_no, c_no));-- 查看所有表SHOW TABLES;-- 添加学生表数据INSERT INTO student VALUES('101', '曾华', '男', '1977-09-01', '95033');INSERT INTO student VALUES('102', '匡明', '男', '1975-10-02', '95031');INSERT INTO student VALUES('103', '王丽', '女', '1976-01-23', '95033');INSERT INTO student VALUES('104', '李军', '男', '1976-02-20', '95033');INSERT INTO student VALUES('105', '王芳', '女', '1975-02-10', '95031');INSERT INTO student VALUES('106', '陆军', '男', '1974-06-03', '95031');INSERT INTO student VALUES('107', '王尼玛', '男', '1976-02-20', '95033');INSERT INTO student VALUES('108', '张全蛋', '男', '1975-02-10', '95031');INSERT INTO student VALUES('109', '赵铁柱', '男', '1974-06-03', '95031');-- 添加教师表数据INSERT INTO teacher VALUES('804', '李诚', '男', '1958-12-02', '副教授', '计算机系');INSERT INTO teacher VALUES('856', '张旭', '男', '1969-03-12', '讲师', '电子工程系');INSERT INTO teacher VALUES('825', '王萍', '女', '1972-05-05', '助教', '计算机系');INSERT INTO teacher VALUES('831', '刘冰', '女', '1977-08-14', '助教', '电子工程系');-- 添加课程表数据INSERT INTO course VALUES('3-105', '计算机导论', '825');INSERT INTO course VALUES('3-245', '操作系统', '804');INSERT INTO course VALUES('6-166', '数字电路', '856');INSERT INTO course VALUES('9-888', '高等数学', '831');-- 添加添加成绩表数据INSERT INTO score VALUES('103', '3-105', '92');INSERT INTO score VALUES('103', '3-245', '86');INSERT INTO score VALUES('103', '6-166', '85');INSERT INTO score VALUES('105', '3-105', '88');INSERT INTO score VALUES('105', '3-245', '75');INSERT INTO score VALUES('105', '6-166', '79');INSERT INTO score VALUES('109', '3-105', '76');INSERT INTO score VALUES('109', '3-245', '68');INSERT INTO score VALUES('109', '6-166', '81');-- 查看表结构SELECT * FROM course;SELECT * FROM score;SELECT * FROM student;SELECT * FROM teacher;
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 淘宝店铺修改名字怎么改 淘宝店名能不能改
- 算法干货 | 朴素贝叶斯分类
- 用这5种写作变现方式,实现业余收入2000元:每一个字都赚钱
- 开淘宝店名字怎么起 淘宝开店怎么起名字起名
- 素食者十字口诀 让你不再担心营养不够
- 茶令之由来,茶叶茶字的由来和历史演变的介绍
- 店铺名字可以改吗 淘宝开店店名可以更改吗
- 开网店怎样取名字 网上取名开店什么名字最好
- 网上取名开店什么名字最好 根据什么起店铺名
- 一款强大的本地文件内容搜索软件,可搜索文件中的文字
