Web01_MySQL

 

1:MySql基础

1:数据库概述/SQL分类

1:关系型数据库概述

 2:SQL分类和通用语法

 

2:DDL

1:DDL_操作数据库

2:DDL_操作表_查询

show TABLES;//显示库里所有表
DESC 表名字;//显示表的详细信息

3:DDL_操作表_创建表

1:创建表的格式

CREATE TABLE goods (
                    id INT,
					name VARCHAR(10),
                    price DOUBLE(4,2),
                    miaoshu VARCHAR(10),
					bir DATE
                    );

 2:表中列名的数据类型

CREATE DATABASE  db2; -- 创建数据库db2
USE db2;			  -- 使用数据库
CREATE TABLE Student( -- 创建表Student
	id int,
	name VARCHAR(10),
	score DOUBLE(4,1),
	birthday DATE
);

4:DDL_操作表_删除

5:DDL_操作表_修改/删除(列)

-- 修改表
-- 1:修改表名
ALTER TABLE Student RENAME TO Student1;
--show TABLES;
-- 2:向Studnet1表里增加一列
ALTER Table Student1 Add address VARCHAR(10);
DESC Student1;
-- 3:修改name列的数据类型为varchar(5)
ALTER TABLE Student1 MODIFY name VARCHAR(5);
DESC Student1;
-- 4:修改列名和数据类型
ALTER Table Student1 CHANGE birthday bir date;
DESC Student1;
-- 5:删除列
ALTER TABLE Student1 DROP address;
DESC Student1;

2:DML

1:DML_操作数据_添加

-- 表里插入数据
-- 1:给指定的列添加数据
INSERT INTO Student1(id,NAME,score,bir) VALUES(1,'王慧天',20.2,'2021-11-11');
SELECT * FROM Student1; -- 查询表里的数据
-- 2:给全部列添加数据
INSERT  INTO Student1 VALUES(2,'王丹',100,'2021-11-12');
SELECT * FROM Student1;
-- 3:给指定的列添加数据
INSERT  INTO Student1(id,name,bir) VALUES(3,'张三','2021-11-13');
SELECT * FROM Student1;
SELECT * FROM Student1 WHERE id = 2;

2:DML_操作数据_修改删除

  • 修改指定列中的数据

  •  删除数据

-- 修改表中某列的数据
SELECT * FROM Student1;
-- 修改表中的数据,最重要的注意事项是必须有条件,否则全改!!!
UPDATE Student1 SET name='王四',score = 21.2 WHERE id = 3;
SELECT * from Student1;
-- 删除表中某列某个数据
DELETE FROM Student1 WHERE name = '王四';
SELECT * FROM Student1;

3:DQL(列名就是字段)

1:DQL_基础查询

-- DQL基础查询语句
SELECT * from Student1;
-- 查询name,id,age列
SELECT id,name,score FROM Student1;
-- 去重查询.
-- DISTINCT可以去重,但是要求查询的所有列值都相同才算重复
SELECT DISTINCT id,name,bir FROM Student1;
-- 起别名查询.可以使用as,也可以不使用as,但是需要加空格
SELECT DISTINCT id as 编号,name 姓名,score 成绩,bir FROM Student1;

3:DQL_条件查询-模糊查询

  • 条件查询:

  • 模糊查询

4:DQL_排序查询

5:DQL_聚合函数

6:DQL-分组查询

7:DQL-分页查询

 2:MySQL高级

1:约束

1:概述和分类

 

2:外键约束

2:数据库设计

1:简介

 ​​​​

2:多表关系实现

1:一对一

2:一对多

 3:多对多

-- 创建一个多表
-- 创建主表餐厅
CREATE TABLE restrant(
	rid int PRIMARY key auto_increment,
  rname VARCHAR(20) NOT null,
  loc VARCHAR(20)
);
-- 创建主表菜谱
CREATE TABLE dish(
	did int PRIMARY KEY auto_increment,
	dname VARCHAR(30) not NULL
);
-- 创建中间表,关联餐厅和菜谱两张表
CREATE TABLE restrant_dish(
	rid int,
  did int,
  price DOUBLE(6,2),
  FOREIGN KEY (rid) REFERENCES restrant(rid),
  FOREIGN KEY (rid) REFERENCES dish(did),
  PRIMARY KEY(rid,did) -- 将两列设置成主键,避免重复
); 
-- 给餐厅赋值
INSERT into restrant VALUES
	(null,'沙县小吃','慈航路101号'),
	(null,'东北虎','慈航路102号'),
	(null,'张师傅','慈航路103号');
-- 给菜谱赋值
INSERT INTO dish VALUES
	(null,'酸辣土豆丝'),
	(null,'蒸饺'),
	(null,'大盘鸡'),
	(null,'锅包肉'),
	(null,'红烧茄子');
-- 中间表赋值
INSERT INTO restrant_dish VALUES
  (1,2,12),
  (1,3,45),
  (1,5,16),
  (2,1,8),
  (2,4,31),
  (3,2,14),
  (3,3,55),
  (3,5,13);
-- 删除表
DROP TABLE restrant_dish;

3:案例

3:多表查询

1:简介

2:内连接

-- 多表查询
-- 查询餐厅所有的菜谱
-- 1:显示内连接
SELECT 
	* 
FROM 
	restrant t1 
INNER JOIN 
	restrant_dish t2 
on 
 t1.rid = t2.rid 
INNER JOIN
	dish t3
ON
 t2.did = t3.did;
=======================================
-- 2:隐式内连接
SELECT 
	* 
FROM
	restrant t1,
  restrant_dish t2,
  dish t3
WHERE
  t1.rid = t2.rid AND
  t2.did = t3.did;

3:外连接

-- 3:外连接
SELECT
  * 
FROM
	restrant t1
LEFT OUTER JOIN 
  restrant_dish t2
ON
  t1.rid = t2.rid
LEFT OUTER JOIN
  dish t3
ON 
  t2.did = t3.did;


4:子查询-简介

5:子查询3种方式

4:事务

1:四大特征

  • MySQL中事务是自动提交的
  • Orcal数据库中事务是手动提交的,所以在操作语句后要进行手动提交.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值