SQL复习

SQL简介

在这里插入图片描述

SQL通用语法

在这里插入图片描述

SQL分类

在这里插入图片描述
在这里插入图片描述

DDL

在这里插入图片描述

操作数据库

在这里插入图片描述

show databases;
在这里插入图片描述
在这里插入图片描述

create database db1;
在这里插入图片描述
在这里插入图片描述

drop database db1;
在这里插入图片描述

use db1;在这里插入图片描述

select database();在这里插入图片描述

操作表

在这里插入图片描述

show tables;
在这里插入图片描述

在这里插入图片描述

desc func;
在这里插入图片描述

创建表

在这里插入图片描述

create table tb_user(
     id int,
     username varchar(20),
     password varchar(20)
     );

在这里插入图片描述

数据类型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
score double(5,2) 5指一共5位数,其中小数占2位.
date: 日期只含年月日,yyyy-MM-dd
tinyint类型代表一个字节,如果一个数字大小超过一个字节,则无法保存

mysql> create table student(
    -> id int,
    -> name varchar(10),
    -> gender char(1),
    -> birthday date,
    -> score double(5,2),
    -> email varchar(64),
    -> tel varchar(15),
    -> status tinyint
    -> );

在这里插入图片描述

删除表

在这里插入图片描述

drop table tb_user;
drop table if exists tb_user;在这里插入图片描述

修改表

在这里插入图片描述

alter table student rename to stu;
在这里插入图片描述
alter table stu add address varchar(50);
在这里插入图片描述
alter table stu modify address char(50);
在这里插入图片描述
alter table stu change address addr varchar(30);
在这里插入图片描述
alter table stu drop addr;
在这里插入图片描述

DML

添加数据

在这里插入图片描述
1.指定列添加数据

insert into stu(id,name) values(1,'张三');
在这里插入图片描述

INSERT INTO stu ( id, NAME, gender, birthday, score, email, tel, STATUS )
VALUES
	( 2, '李四', '男', '1999-11-11', 88.88, '20113317@qq.com', 21431314, 1 );

在这里插入图片描述
2.全部列添加数据
省略列名

INSERT INTO stu
VALUES
	( 2, '李四', '男', '1999-11-11', 88.88, '20113317@qq.com', 21431314, 1 );

在这里插入图片描述
3.批量添加数据

INSERT INTO stu
VALUES
	( 2, '李四', '男', '1999-11-11', 88.88, '20113317@qq.com', 21431314, 1 ),
	( 2, '李四', '男', '1999-11-11', 88.88, '20113317@qq.com', 21431314, 1 ),
	( 2, '李四', '男', '1999-11-11', 88.88, '20113317@qq.com', 21431314, 1 ),
	( 2, '李四', '男', '1999-11-11', 88.88, '20113317@qq.com', 21431314, 1 );

在这里插入图片描述

修改数据

在这里插入图片描述

UPDATE stu 
SET gender = '女' 
WHERE
	NAME = '张三';

在这里插入图片描述

删除数据

DELETE 
FROM
	stu 
WHERE
	NAME = '张三';

在这里插入图片描述

DQL

在这里插入图片描述

CREATE TABLE stu (
	id INT,-- 编号
	NAME VARCHAR (20),-- 姓名
	age INT,-- 年龄
	sex VARCHAR (5), -- 性 别
	address VARCHAR (100),-- 地址
	math DOUBLE (5, 2),-- 数学成绩
	english DOUBLE (5, 2),-- 英语成绩
	hire_date date-- 入学时间
);

INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date)
VALUES
(1,'码云',55,'男','杭州',66,78,'1995-09-01'),
(2,'马化腾',55,'女','深圳',66,48,'1895-02-01'),
(3,'马斯克',55,'男','香港',23,78,'1995-03-01'),
(4,'流白',55,'男','湖南',66,58,'1994-09-04'),
(5,'留情',55,'女','湖南',66,NULL,'1595-09-01'),
(6,'刘德华',55,'男','香港',76,78,'1695-09-02'),
(7,'张学友',55,'男','香港',64,28,'1795-09-05'),
(8,'德玛西亚',55,'女','南京',96,78,'1195-09-09');

基础查询

在这里插入图片描述
1.查询多个字段

在这里插入图片描述
在这里插入图片描述

2.去除重复记录

在这里插入图片描述
在这里插入图片描述

3.起别名

在这里插入图片描述
在这里插入图片描述

条件查询

在这里插入图片描述

基本的条件查询

需求
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第四个第五个简单省略.

在这里插入图片描述
在这里插入图片描述

模糊查询

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

排序查询

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

聚合函数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分组查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分页查询

x:当前页码
y:每页显示条数
起始索引:(x-1)*y
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

约束

约束

约束概念

在这里插入图片描述

基本约束

需求:

CREATE TABLE emp (
id INT, -- 员工id,主键且自增长
ename VARCHAR(50), -- 员工姓名,非空并且唯一
joindate DATE, -- 入职时间,非空
salary DOUBLE(7,2), -- 工资,非空
bonus DOUBLE(7,2) -- 奖金,如果没有奖金默认0
);

根据需求完成操作

CREATE TABLE emp (
id INT PRIMARY KEY auto_increment, -- 员工id,主键且自增长
ename VARCHAR(50) NOT NULL UNIQUE, -- 员工姓名,非空并且唯一
joindate DATE NOT NULL, -- 入职时间,非空
salary DOUBLE(7,2) NOT NULL, -- 工资,非空
bonus DOUBLE(7,2)  DEFAULT 0-- 奖金,如果没有奖金默认0
);

外键约束

在这里插入图片描述
在这里插入图片描述

CREATE TABLE dept(
id int PRIMARY key auto_increment,
dep_name VARCHAR(30) NOT NULL,
addr VARCHAR(30) NOT NULL
);


CREATE TABLE emp (
id INT PRIMARY KEY auto_increment, -- 员工id,主键且自增长
ename VARCHAR(50) NOT NULL UNIQUE, -- 员工姓名,非空并且唯一
joindate DATE NOT NULL, -- 入职时间,非空
salary DOUBLE(7,2) NOT NULL, -- 工资,非空
bonus DOUBLE(7,2)  DEFAULT 0,-- 奖金,如果没有奖金默认0
dep_id int,
CONSTRAINT fk_emp_dept FOREIGN KEY(dep_id) REFERENCES dept(id)
);

在这里插入图片描述
在这里插入图片描述

数据库设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多表查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

内连接

在这里插入图片描述

-- 内连接
         -- 隐式内连接
				 -- 查修emp的name,salary,dept的dep_name
				 SELECT emp.ename,emp.salary,dept.dep_name FROM emp,dept WHERE emp.dep_id = dept.id;
				 -- 表起别名(as省略)
				 SELECT t1.ename,t1.salary,t2.dep_name FROM emp t1,dept t2 WHERE t1.dep_id = t2.id;
				 ----------------------------------------------------------------------------------
				 -- 显示内连接
				 SELECT * FROM emp INNER JOIN dept on emp.dep_id = dept.id;
				 -- INNER可省略
				 SELECT * FROM emp JOIN dept on emp.dep_id = dept.id;

在这里插入图片描述
在这里插入图片描述

外连接

在这里插入图片描述

-- 外连接
				 -- 左外连接
				 -- 查询emp所有数据和对应的部门信息
				 SELECT * FROM emp left JOIN dept on emp.dep_id = dept.id;
				 -- 右外连接
				 -- 查询dept所有数据和对应的员工的信息
				 SELECT * FROM emp RIGHT JOIN dept on emp.dep_id = dept.id;

在这里插入图片描述

子查询

在这里插入图片描述
在这里插入图片描述

事务

事务简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值