第 24 章MySQL

目录

24.1引出问题

24.2解决之道

24.3Navicat安装和使用

24.4SQLyog的安装和使用

24.5数据库三层结构-破除MySQL的神秘

24.6数据在数据库中的存储方式

24.7SQL语句分类

24.8创建数据库

24.9查看、删除数据库

24.10备份恢复数据库

24.11备份恢复数据库表

24.12安装Ecshop数据库

24.13创建表

24.14MySQL常用数据类型(列类型)

24.15创建表练习

24.16修改表-基本介绍

24.17修改表-练习

24.18数据库CRUD语句

24.19Insert语句

24.20Update语句

24.21delete语句

24.22select语句

24.23合计/统计函数

24.24字符串相关函数

24.25数学相关函数

24.26时间日期相关函数

24.27加密和系统函数pwd.sql

24.28流程控制函数

24.29mysql表查询-加强

24.30mysql多表查询

24.31mysql表子查询

24.32表复制

24.33合并查询

24.34mysql表外连接

24.35mysql约束

24.36自增长

24.37mysql索引

24.38mysql事务

24.39mysql事务隔离级别

24.40mysql事务ACID

24.41mysql表类型和存储引擎

24.42视图(view)

24.43Mysql管理

24.44本章作业


24.1引出问题

24.2解决之道

24.2.1文件

24.3Navicat安装和使用

24.4SQLyog的安装和使用

24.5数据库三层结构-破除MySQL的神秘

1、所谓安装Mysql数据库,就是在主机安装一个数据库管理系统,这个管理程序可以管理多个数据库。DBMS(database manage system)

2、一个数据库中可以创建多个表,以保存数据

3、数据库管理系统(DBMS)、数据库和表的关系如图所示:

24.6数据在数据库中的存储方式

24.7SQL语句分类

DDL:数据定义语句[create表、库]

DML:数据操作语句[增删改查]

DQL:数据查询语句[select]

DCL:数据控制语句[管理数据库:比如权限:grant revoke]

24.8创建数据库

#使用指令创建数据库
CREATE DATABASE lhdb01; 
#删除数据库指令
DROP DATABASE lh_db03
#创建一个使用utf8字符集的lh_db02数据库
CREATE DATABASE lh_db02 CHARACTER SET utf8
#创建一个使用utf8字符集,并带校验规则的lh_db03数据库
CREATE DATABASE lh_db03 CHARACTER SET utf8 COLLATE utf8_bin
#校对规则 utf8_bin 区分大小,默认 utf8_general_ci不区分大小写

#查询sql, select查询、*表示查询所有字段、FROM从哪个表
#WHERE从哪个字段、NAME='tom'查询名字是tom
SELECT * FROM ti WHERE id ='tom'; 

24.9查看、删除数据库

#演示删除和查询数据库
#查看当前数据库服务器中的所有数据库
SHOW DATABASES
#查看前面创建的lh_db01数据库的定义信息
SHOW CREATE DATABASE lh_db_01
#特别说明:在创建数据库、表的时候,为了规避关键字,可以使用反引号`create`解决
#删除前面创建的lh_db02数据库
DROP DATABASE lh_db03

24.10备份恢复数据库

#database01.sql 备份 lh_db_01和lh_db02 库中的数据,并恢复

#备份,要在Dos下执行 mysqldump指令!!!!
mysqldump -u root -p -B lh_db_01 lh_db02 > d:\\bak2.sql
DROP DATABASE lh_db_01
DROP DATABASE lh_db02
#恢复数据库(注意:进入MySQL命令再执行!!!)退出mysql命令 quit
source d:\\bak2.sql
SHOW DATABASES
#第二个恢复方法直接将bak.sql的内容放到查询编辑器中,执行

24.11备份恢复数据库表

注意:-p和密码之间没有空格 

24.12安装Ecshop数据库(将外数据库,放到本地MySQL)

24.13创建表

 

#指令创建表
#注意:lh_db02创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列。
#eg:user表:
	#id 	整形
	#name	字符串
	#password 字符串
	#birthday 日期
	CREATE TABLE `user1`(
	id INT,
	`name` VARCHAR(255),
	`password` VARCHAR(255),
	`birthday` DATE
	)
	CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;

24.14MySQL常用数据类型(列类型)

24.14.1数值型(整数)基本使用

说明:在能够满足需求的情况下,尽量选择占用空间小的

#使用tinyint 来演示范围 有符号-128~127  无符号:0-255
#说明:表的字符集,校验规则,存储引擎,使用默认
#如果没有指定unsinged,则TINYINT就是有符号,反之无符号
CREATE TABLE t3 (
	id TINYINT);	
INSERT INTO t3 VALUE(123);
SELECT * FROM t3;

24.14.2如何定义一个无符号整数

24.14.3数值型(bit)的使用

#演示bit类型使用
#说明:1、bit(m) m 在 1-64
#2、添加数据范围 按照给定m的位数来确定,比如m=8 表示一个字节0~255
#3、查询时仍然按照数来查询
CREATE TABLE t05 (num BIT(8));
INSERT INTO t05 VALUES (255);
INSERT INTO t05 VALUES (1);
SELECT * FROM t05;	#查询表中所以数据
SELECT *FROM t05 WHERE num = 255;	#查找num = 255的数据

24.14.4数值型(小数)的基本使用

#演示decimal、float、double类型使用
#创建表
CREATE TABLE t06(
	num1 FLOAT,
	num2 DOUBLE,
	num3 DECIMAL(30,20)
);
#添加数据
INSERT INTO t06 VALUES(88.123456789123456789,88.123456789123456789,88.123456789123456789);
#decimal可以存放很大的数据
SELECT * FROM t06;

24.14.5字符串的基本使用

24.14.6字符串使用细节

 

 

#演示字符串 char,varchar类型的使用
-- CHAR(size) 固定长度字符串 最大为255字符
-- VARCHAR(size) 0~65535字节 可变长度字符串 最大为65532字节 1~3个字节用于记录大小
-- 如果表的编码是 utf8 varchar(size) ,则size = (65535-3)/3 = 21844
-- 如果表的编码为 gbk  varchar(size) ,则size = (65535-3)/2 = 32766
#字符串类型的使用细节
#char(4)和varchar(4)这个4表示的字符,而不是字节,且不区分字母还是汉字
CREATE TABLE t11(
	`name` CHAR(4));
INSERT INTO t11 VALUES('晚上好呀');

SELECT * FROM t11;
-- --------------------varchar-------
CREATE TABLE t12(
	`name` VARCHAR(4));
INSERT INTO t12 VALUES('晚上好');
INSERT INTO t12 VALUES('abc呀');
SELECT * FROM t12;	
-- --------
#如果varchar不够用,可以考虑使用mediumtext 或者 longtext,
#或者直接使用text
CREATE TABLE t13(content1 TEXT,content2 MEDIUMTEXT,content3 LONGTEXT);
INSERT INTO t13 VALUES('晚上好呀','晚上好努力学习','晚上好请继续加油啊');
SELECT * FROM t13;

24.14.7日期类型的基本使用

#演示时间相关类型
#创建一张表,date,datetime,timestamp
CREATE TABLE t14(
	birthday DATE,--	生日 年月日
	job_time DATETIME,--	记录年月日 时分秒
	login_time TIMESTAMP
		NOT NULL DEFAULT CURRENT_TIMESTAMP
		ON UPDATE CURRENT_TIMESTAMP);	-- 登录时间
-- 如果希望login_time列自动更新,需要配置,字段不允许为空,默认为当前时间戳,若更新,则会自动的以当前时间进行更新
INSERT INTO t14(birthday,job_time) 
	VALUES('2022-11-11','2022-11-11 10:10:10');
SELECT * FROM t14;

24.15创建表练习

#创建表的课堂练习
CREATE TABLE `emp`(
	id INT,
	`name` VARCHAR(4),
	sex CHAR(1),
	brithday DATE,
	entry_date DATETIME,
	job VARCHAR(32),
	salary DOUBLE,
	`resume` TEXT)CHARSET utf8 COLLATE utf8_bin ENGINE INNODB;
-- 添加一条
	INSERT INTO `emp`
	 VALUES(100,'小妖怪','男','2001-08-09','2022-01-22 11:11:11','开发的','25000','努力向上');
SELECT * FROM `emp`;	 

24.16修改表-基本介绍

24.17修改表-练习

24.18数据库CRUD语句

24.19Insert语句

24.19.1使用INSERT语句向表中插入数据

#insert语句练习
-- 创建一张商品表
-- 添加两条记录

CREATE TABLE `goods`(
	id INT,
	goods_name VARCHAR(10),-- 长度为10
	price DOUBLE NOT NULL DEFAULT 100);
-- 添加数据
INSERT INTO `goods`(id,goods_name,price)
		VALUES(10,'华为手机',2000);
INSERT INTO `goods`(id,goods_name,price)
		VALUES(20,'苹果手机',3000);
SELECT * FROM goods; -- 查询数据

24.19.2应用案例

24.19.3细节说明

24.20Update语句

24.20.1使用UPDATE语句修改表中数据

24.20.2应用案例

 

 

24.20.3使用细节

24.21delete语句

24.21.1使用DELETE语句删除表中细节

 

24.21.2使用细节

24.22select语句

24.22.1基本语法

24.22.2注意事项

24.22.3应用案例

24.22.4使用表达式对查询的列进行运算

24.22.5在select语句中可使用as语句

24.22.6练习1

24.22.7在where子句中经常使用的运算符

24.22.8使用where子句,进行过滤查询

24.22.9练习2

24.22.10使用order by子句排序查询结果

24.23合计/统计函数

24.23.1count

24.23.2sum

24.23.3avg

24.23.4max/min

24.23.5使用group by 子句对列进行分组

24.23.6使用having子句对分组后的结果进行过滤

24.24字符串相关函数

24.25数学相关函数

24.26时间日期相关函数

24.27加密和系统函数pwd.sql

24.28流程控制函数

24.29mysql表查询-加强

24.29.1介绍

24.29.2分页查询

24.29.3使用分组函数和分组子句 group by

24.29.4数据分组总结

24.30mysql多表查询

24.30.1介绍

24.30.2多表查询练习

24.30.3自连接

24.31mysql表子查询

24.31.1介绍

24.31.2单行子查询

24.31.3应用案例

24.31.4多行子查询

24.31.5子查询当作临时表使用

24.31.6在多行子查询中使用all操作符

24.31.7在多行子查询中使用any操作符

24.31.8多列子查询

24.31.9在from子句中使用子查询

24.31.10练习

24.32表复制

自我复制数据(蠕虫复制)

24.33合并查询

介绍

24.34mysql表外连接

24.34.1介绍

24.34.2外连接

24.34.3课堂练习

24.35mysql约束

24.35.1介绍

24.35.2primary key(主键)----基本使用

24.35.3not null(非空)

24.35.4unique(唯一)

24.35.5foreign key(外键)

24.35.6check

24.35.7商店售货心痛表设计案例

24.36自增长

24.36.1介绍

24.36.2自增长使用细节

24.37mysql索引

24.37.1快速入门

24.37.2原理

24.37.3类型

24.37.4索引使用

24.37.5练习

24.37.6哪些列上适合使用索引

24.38mysql事务

24.38.1介绍

24.38.2事务和锁

24.38.3回退事务

24.38.4提交事务

24.38.5事务细节

24.39mysql事务隔离级别

24.39.1介绍

24.39.2查看事务隔离级别

24.39.3事务隔离级别

24.39.4案例

24.39.5设置事务隔离级别

24.40mysql事务ACID

24.40.1事务的acid特性

24.40.2练习

24.41mysql表类型和存储引擎

24.41.1介绍

24.41.2主要存储引擎/表类型特点

24.41.3细节说明

24.41.4三种引擎表使用案例

24.41.5如何选择表的存储引擎

24.41.6修改存储引擎

24.42视图(view)

24.42.1介绍

24.42.2基本概念

24.42.3视图的基本使用

24.42.4快速入门

24.42.5视图细节

24.42.6视图最佳实践

24.42.7练习

24.43Mysql管理

24.43.1Mysql用户

24.43.2创建、删除用户

24.43.3修改用户密码

24.43.4mysql中的权限

24.43.5给用户授权

24.43.6回收用户授权

24.43.7权限生效指令

24.43.8练习题

24.44本章作业

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值