复习{
MySQL: 5.7 , 8.0
安装,卸载
mysql,Oracle,DB2, SQLServer ....
1.关系型数据库 基于二维表 , 物理文件
2.非关系型数据库 , 基于内存 redis, key-value ----->
mysql: RDBMS relationship Database Management System 关系型数据库管理系统
DB: Database
Table: 表 Person
record: 记录 new Person();
column: 字段 String name
学的是数据库语言: SQL 结构化查询语言 (Structure Query Language)
DDL: 数据库定义语言 (Database definition language)
创建数据库: create database java2106;
删除数据库: drop database java2106;
创建表:
create table person(
字段名 int(11),
字段名 varchar(22),
字段名 char(11));
删除表:
drop table person;
修改表结构:
alter table person add [column] 字段名 数据类型;
alter table person drop [column] 字段名;
alter table person modify [column] 字段名 数据类型
alter table person change [column] 字段名 新字段名 数据类型;
显示表结构:
desc person;
修改表名:
alter table oldName rename to 新名;
DML: 数据库操纵语言 (Database Maniputlation Language)
添加数据: insert into person(字段列表) values(值列表),(),(),();
修改数据: update person set 字段名 = 新值,字段名 = 新值 where id = ?
删除数据: delete from person where id = ?
create table person as select * from student;
create table person as select * from person where 1=2
DQL: 数据库查询语言 (Database Query Language)
select * from person;
DCL: 数据库控制语言 (Database Control Language)}
===========================================================================
是用可视化软件Navicat ,属于客户端 ,SQLyog
数据库约束: 适用于所有的数据库
对数据库的限制,约束;
应用场景: 在执行 DDL语句的时候;
create table
数据库约束有6种:
1.非空约束 not null
2.唯一约束 unique
3.检查约束 check mysql不支持
4.默认约束 default
5.主键约束 primary key
主键的作用 就是用来唯一标识 当前的一条记录的
以后在创建表的时候 ,必填项 主键一般都是 id
默认情况下 是 唯一的 unique , not null 非空的
create table person(
pid int primary key auto_increment,
pname varchar(22));
create table person(
pid int,
pname varchar(22),
primary key(pid))
6.外键约束:
两个表操作的时候
品牌
鸿星尔克
商品
鞋,衣服,篮球,
表和表之间的关系:
1 对 n
外键在多方, 外键字段是 主表的 主键 , 字段名 随便起 但是最好是
主表名_pid brand_pid
1 对 1
在哪都行 ,考虑实际情况
多对多:
商品 和 订单 双向的一对多 就是 多对多
product order
一个订单种可以有 多个商品 一对多
一个商品 可以存在与多个订单种 一对多
-- 品牌表
create table brand(
bid int primary key auto_increment,
brandName varchar(22) not null,
remark varchar(255));
-- 商品表
create table product(
pid int PRIMARY key auto_increment,
productName varchar(22) not null,
price float,
color varchar(22),
brand_pid int, -- 自己加
foreign key(brand_pid) references brand(bid));
------------------------------------------------------------
DQL: Database Query Language 数据库查询语言
select [字段列表] from 表名; 查询表中所有数据
select [字段列表] from 表名
[where] 条件语句
[group by] 分组
[having] 条件语句
[order by] 排序
[limit 开始行,总记录数];
-- 登录:
select * from `user` where uname = ? and `password` = ? &&
-- 查询年龄是 18 , 25
select * from `user` where age = 18 or age = 25 ||
select * from `user` where age in(18,25);
分组:
group by 字段名, 一般情况下 按什么分组 ,就查询什么
并且 要使用 分组函数 count(1)
sum(), avg() ,max(), min(), count()
-- 查询各个地区中 最大年龄的人
select address,uname,max(age) from `user` group by address;
-- 查询各个地区中 平均年龄的人
select address,uname,avg(age) from `user` group by address;
-- 查询各个地区中 最小年龄的人
select address,uname,min(age) from `user` group by address;
-- 查询各个地区中 总人数
select address,uname,count(1) from `user` group by address;
-- -- 查询年龄大于 ,有哪些地区
select address as 平均年龄 from `user` where age > 17
group by address;
-- 排序 按 年龄排序