学习目标

  • 能够理解数据库的概念
  • 能够安装MySQL数据库
  • 能够启动,关闭及登录MySQL
  • 能够使用SQL语句操作数据库
  • 能够使用SQL语句操作表结构
  • 能够使用SQL语句进行数据的添加修改和删除的操作
  • 能够使用SQL语句进行排序
  • 能够使用聚合函数
  • 能够使用SQL语句进行分组查
  • 能够使用SQL语句添加主键、外键、唯一、非空约束

SQL概述

  1. SQL的概念
    Structrue Query Language 结构化查询语言
  2. SQL的作用:对数据库进行操作(创建库,删除库,创建表,删除表,增删改查表单数据)
SQL语句分类 说明
DDL Data Define Language
数据定义语言
用于创建数据库,数据表等操作
关键字:create、drop…
DML Data Manipulation Language
数据操作语言
用于对数据表数据进行增删改操作
关键字:insert/update/delete
DQL Data Query Language
数据查询语言
用于对数据进行查询操作
关键字:select/show
DCL Data Control Language
数据控制语言
用于创建用户,删除用户,给用户分配权限等操作
关键字:grant/removke

DDL语句-操作数据库

JAVA WEB 重学day09

DDL语句操作数据库 语法
创建数据库 create database 数据库名;
查看所有数据库 show databases;
查看某个数据库的定义信息 show create database 数据库;
修改数据库的字符集 alter database 数据库名 default character set 码表;
删除数据库 drop database 数据库名;
查看正在使用的数据库 select database();
使用数据库 use数据库名

DDL语句-操作数据表

DDL语句操作数据表 语法
创建数据表 create table 表名(字段名1 数据类型,…);
查看数据库所有表 show tables;
查看表结构 desc 表名;
查看创表语句 show create table 表名;
复制表(只复制结构,不复制数据) create table 新表名 like 旧表名;
删除表 drop table 表名;
判断表是否存在,存在则删除 drop table if exists 表名;

DML语句-插入数据

DML语句之插入数据

/**
插入数据语法:
格式1:insert into 表名(字段名1,…) values(值1,…);
格式2:insert into 表名 values(值1,…);
*/
– 向student表中插入记录: 插入全部字段(所有的字段名都写出来)
注意1:除了数值型,其他所有类型的数据都必须使用引号括起来:
可以单引号也可以双引号, 推荐使用单引号
注意2:字段名和值的顺序要一直,个数要一致,类型要一致

insert into student(id,name,sex,birthday) values(1,‘jack’,‘男’,‘2020-10-20’);

– 向student表中插入记录: 插入全部字段(不写字段名)

insert into student values(2,‘rose’,‘女’,‘2020-11-11’);

– 向student表中插入记录: 插入部分字段
insert into student(id,name) values(5,‘小明’),(4,‘小波’);

DML语句插入数据 语法
插入全部字段 insert into 表名(字段1,…) values(值1,…)insert into 表名 values(值1,…)
插入部分字段 insert into 表名(字段1,…) values(值1,…)
插入多条数据 insert into 表名(字段1,…) values(值1,…),(值1,…);

DML语句-更新数据

DML语句更新数据 语法
不带条件更新 Update 表名 set 字段名1=值1,字段名2=值2,…;
带条件更新 Update 表名 set 字段名1=值1,字段名2=值2,… where 条件;

DML语句-删除数据

DML语句删除数据 语法
删除满足条件的数据 delete from 表名 where 条件;
删除所有数据 delete from 表名;
删除所有数据 truncate 表名;

DQL语句-简单数据

DQL语句查询数据 语法
查询所有数据 select * from 表名;
查询满足条件的数据 select * from 表名 where 条件;
查询数据指定别名 select 字段名 别名,… from 表名 where 条件;

DQL语句-条件查询-排序查询

排序查询分类 语法
单列排序 select * from 表名 order by 字段名 asc或desc
asc:升序,默认值
desc:降序
组合排序 select * from 表名 order by 字段名 asc或desc, 字段名 asc或desc

聚合函数查询

JAVA WEB 重学day09

MySQL常用聚合函数 说明
count 求数量
sum 求和
max 求最大值
min 求最小值
avg 求平均值

分组查询

分组查询的语法:select * from 表名 group by 字段名 having 条件;

注意

1、分组后聚合函数操作的不再是行数据,而是组数据了。

2、对于分组后的条件需要使用having子句

3、having语句后使用的字段名必须是出现在select语句中的

having与where的区别:

where:一行一行过滤数据:横向查询,不能在后面使用聚合函数(属性纵向查询)。
having:用于分组之后过滤数据,可以使用聚合函数的。

分页查询

分页查询的语法:select * from 表名 limit 跳过的行数,要查询的记录数

数据库约束概述

约束的作用:对表中的数据进行限制,保证数据的正确性、有效性。

约束名 约束关键字
主键约束 primary key
非空约束 not null
唯一约束 unique
默认约束 default 默认值
外键约束 constraint foregin key(外键列名) references 主表(主键)
检查约束 mysql 不支持

主键约束

JAVA WEB 重学day09

主键约束小结 说明
主键的作用 记录的唯一标识
主键的特点 非空且唯一
添加主键约束 创表时添加:字段名 数据类型 primary key
修改表结构添加:alter table 表名 add primary key(主键列名)
删除主键约束 alter table 表名 drop primary key;

主键自增长

语法:字段名 数据类型 primary key auto_increment;

唯一约束

唯一约束 小结
作用 约束某一列的值不能重复
语法 字段名 数据类型 unique

非空约束

非空约束 小结
作用 约束某一列的值不能为null
语法 字段名 数据类型 not null

相关文章: