目录
一、认识数据库
1、概念:
数据库(DataBase , 简称DB)。数据仓库,是一个软件,安装在操作系统上的(window,linux,mac……)之上,可以存储大量的数据。
2、作用:
存储数据、管理数据
3、数据库的分类
(1)关系型数据库(SQL)
-
MySQL , Oracle , SQL Server , SQLite , DB2 , ...
-
通过表和表之间,行和列之间的关系进行数据的存储(学员表、考勤表)
-
关系型数据库通过外键关联来建立表与表之间的关系
(2)非关系型数据库
-
Redis , MongoDB , ...
-
对象存储,通过对象的自身的属性来决定。
-
非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
(3)DBMS(数据库管理系统)
- 数据库管理软件 , 科学组织和存储数据 , 高效地获取和维护数据
因为我们要学习的MySQL应该算是一个数据库管理系统.
4、MySQL简介
概念 : 关系型数据库管理系统
历史 : 由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。
特点 :
-
免费 , 开源数据库
-
小巧 , 功能齐全
-
使用便捷
-
可运行于Windows或Linux操作系统
-
可适用于中小型甚至大型网站应用
官网 : https://www.mysql.com/
(1)几个基本的数据库操作命令
二、操作数据库
1、数据库的增删改查
创建数据库:CREAT DATABASE [IF NOT EXISTS] 数据库名
删除数据库:DROP DATABASE [IF EXISTS] 数据库名
查看数据库:SHOW DATABASES
使用数据库:USE 数据库名
2、创建数据表
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列类型 [属性][索引][注释]
……
)[表类型][表字符集][注释]
3、数据值和列类型
(1)列类型
数值类型
字符串类型
日期和时间性数值
NULL值
-
理解为 "没有值" 或 "未知值"
-
不要用NULL进行算术运算 , 结果仍为NULL
4、数据库的数据字段属性(重要)
5、创建数据表
6、数据表的类型
(1)两种类型的对比
MySQL的数据表的类型 : MyISAM , InnoDB (默认使用), HEAP , BOB , CSV等...
经验 ( 适用场合 ) :
-
适用 MyISAM : 节约空间及相应速度(快)
-
适用 InnoDB : 安全性 , 事务处理及多用户操作数据表
(2)数据表的存储位置
所有的数据库(本质就是文件)文件都存在data目录下
(3)数据表的字符集
我们可为数据库,数据表,数据列设定不同的字符集,设定方法 :
-
创建时通过命令来设置 , 如 : CREATE TABLE 表名() CHARSET = utf8;(建议)
-
如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定
7、修改和删除字符集
(1)修改数据表ALTER TABLE
修改表名:ALTER TABLE 旧表名 RENAME AS 新表名
添加字段:ALTER TABLE 表名 ADD 要添加的字段的名字 要添加的字段列列属性[属性]
修改字段:
- ALTER TABLE 表名 MODIFIY 字段名 列属性
- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性]
删除字段: ALTER TABLE 表名 DROP 字段名
(2)删除数据表 DROP TABLE
语法:DROP TABLE [IF EXISTS] 表名
-
IF EXISTS为可选 , 判断是否存在该数据表
-
如删除不存在的数据表会抛出错误
三、MySQL的数据管理
1、外键(了解)
2、DML语言(重要,全部记住、背)
核心:增删改
数据库意义 : 数据存储、数据管理
DML语言 :数据操作语言
-
用于操作数据库对象中所包含的数据
-
包括 :
-
INSERT (添加数据语句)
-
UPDATE (更新数据语句)
-
DELETE (删除数据语句)
3、添加INSERT
INSERT INTO 表名(`字段1`,`字段2`,`字段3`) VALUES(`值1`),('值2'),('值3')
注意 :
-
字段或值之间用英文逗号隔开 .
-
' 字段1,字段2...' 该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致 .
-
可同时插入多条数据 , values 后用英文逗号隔开 .
4、修改UPDATE
语法:
UPDATE 表名 SET column_name=value [column_name2=value2,...] WHERE [条件];
注意 :
-
column_name 为要更改的数据列,尽量带上``
-
value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果
-
条件为筛选条件 , 如不指定则修改该表的所有列数据
5、删除DELETE
(1)DELETE命令
DELETE FROM 表名 WHERE [条件];
(2)TRUNCATE命令
作用:
用于完全清空表数据 , 但表结构 , 索引 , 约束等不变
语法:
TRUNCATE [TABLE] table_name;
(3)DELETE TRUNCATE的区别
-
相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
-
不同 :
-
使用TRUNCATE TABLE 重新设置自增列 AUTO_INCREMENT计数器会归零
-
使用TRUNCATE TABLE不会对事务有影响
-
四、DQL查询数据(最重点)
1、DQL数据查询语言
DQL( Data Query Language 数据查询语言 )
-
所有的查询操作都用它 , 如SELECT语句
-
简单的单表查询 或 多表的复杂查询 和嵌套查询 都可以
-
是数据库语言中最核心,最重要的语句
-
使用频率最高的语句
2、指定查询字段 SELECT
SELECT 语法:(最最重要)
SELECT 字段 FROM 表
例如:
查询所有学生的信息:SELECT * FROM student
查新指定列:SELECT `studentno`,`studentname` FROM student
(1)别名AS
CONCAT()函数用来拼接字符串
(2)去重DISTINCT
作用 : 去掉SELECT查询返回的记录结果中重复的记录 ( 返回所有列的值都相同 ) , 只返回一条
3、数据库的列(表达式)
数据库中的表达式 : 一般由文本值 , 列 , NULL , 函数,计算表达式,系统变量,操作符等组成
SELECT(表达式)
语法:
SELECT 表达式 from 表
4、WHERE条件语句
作用:
用于检索数据表中 符合条件 的记录
搜索条件可由一个或多个逻辑表达式组成 , 结果一般为真或假
(1)逻辑表达式
(2)模糊查询:比较运算符
注意:
-
数值数据类型的记录之间才能进行算术运算 ;
-
相同数据类型的数据之间才能进行比较 ;
5、联表查询 JION
6、分页 LIMIT 和排序 ORDER BY
(1)排序:升序ASC 和降序 DASC
语法:
ORDER BY 根据什么排序
语句默认按照ASC升序对记录进行排序
(2)分页
语法:
LIMIT 起始值 页面的大小