黑马程序员最新版JavaWeb基础教程,Java web从入门到企业实战完整版_哔哩哔哩_bilibili
数据库
数据库:
存储数据的仓库,数据是有组织的进行存储
英文:DataBase ,简称DB
数据库管理系统
管理数据库的大型软件
英文:DataBase Management System,简称DBMS
SQL
英文:Structured Query Language ,简称SQL结构化查询语言
操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准
MySQL数据库模型
关系型数据库
关系型数据库是建立在关系模型基础上的数据库,关系型数据库是由多张能相互连接的二维表组成的数据库
优点
1:都是使用表结构,格式一致,易于维护
2:使用通用的SQL语言操作,使用方便,可用于复杂查询
3:数据存储在磁盘中,安全。
SQL
英文:Structured Query Language,简称SQL
结构化查询语言,一门操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准
对于同一需求,每种数据库操作的方式可能会存在一些不一样的地方,
SQL通用语法
SQL语句可以单行或多行书写,以分号结尾
MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
注释
单行注释:--注释内容 或 #注释内容(MySQL特有)
多行注释:/注释/
SQL分类
DDL(Data definition Language)数据库定义语言,用来定义数据库对象:数据库,表,列等
DML(Data Manipualtion Language)数据库操作语言,用来对数据库中表的数据进行增删改
DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录(数据)
DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
DDL
---操作数据库
1.查询
SHOW DATABASES;
2.创建
。创建数据库
CREATE DATABASE 数据库名称;
。创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;
3.删除数据库
删除数据库
DROP DATABASE 数据库名称;
删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;
4.使用数据库
。查看当前使用的数据库
SELECT DATABASE();
。使用数据库
USE 数据库名称;
---操作表
查询表
SHOW TABLES;
查询表的结构
DESC 表名称;
创建表
CREATE TABLE 表名(
字段1 数据类型1,
字段2 数据类型2,
...
字段名n 数据类型n
);
注意:最后一行末尾,不能加逗号
删除表
1.删除表
DROP TABLE 表名;
2.删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;
修改表
1.修改表名
ALTER TABLE 表名 RENAME TO 新的表名;
2.添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
3.修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
4.修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
5.删除列
ALTER TABLE 表名 DROP 列名;
数据类型
MySQL支持多种类型,可以分为三类:
数值
日期
字符串
DML----操作数据
添加数据
1.给指定列添加数据
INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,....);
2给全部列添加数据
INSERT INTO 表名 VALUES(值1,值2,..);
3批量添加数据
INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,....)....;
列名可以省略(不建议)
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,....)....;
修改数据
1修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2,....[WHERE 条件];
注意:修改语句中如果不加where条件,则将所有数据都修改!
DQL---查询
SELECT 字段列表
FROM 表名列表
WHERE 条件列表
GROUP BY 分组字段
HAVING 分组后条件
ORDER BY 排序字段
LIMIT 分页限定
DQL--基础查询
1查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;---查询所有数据
(列名的列表可以使用*替代,不建议使用)
2去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
3起别名
AS:AS 也可以省略
DQL---条件查询
1条件查询语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
常用符号:
DQL---排序查询
1.排序查询语法
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1[排序方式1],排序字段名2[排序方式2]。。。。;
排序方式
ASC:升序排列(默认值)
DESC:降序排列
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条进行排序
聚合函数
1概念:
将一列数据作为一个整体,进行纵向计算
2聚合函数分类:
3聚合函数语法:
SELECT 聚合函数名(列名) FROM 表;
注意:null值不参与所有聚合函数运算
DQL ---分组查询
1分组查询语法
SELECT 字段列表 FROM 表名 [WHERE 分组前提条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
where 和 having 区别:
执行时机不一样:where时分组之前进行限定的,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤
可判断的条件不一样:where不能对聚合函数进行判断,having可以
执行顺序:where>聚合函数>having
DQL---分页查询
1分页查询语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
起始索引:从零开始
计算公式:起始索引=(当前页码-1)*每页显示的条数
tips:
分页查询limit是MySQL数据库的方言
Oracle分页查询使用rownumber
SQL Server分页查询使用top
约束
概念:约束是作用于表中列上的规则,用于限制加入表的数据
约束的存在保证了数据库中数据的正确性,有效性和完整性
分类:
</