8.25数据库笔记

复习{
 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;
    
    -- 排序  按 年龄排序 
      
     
     
   
     


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值