sql语句基础

jdbc基础

回顾:

 

sql

 

 sql分类:

 

  DDL:

 

   对象:数据库和表

 

   关键词:create alter drop truncate

 

   创建数据库:create database day06;

 

   删除数据库: drop database day06;

 

   创建表:create table user(

 

    id int primark key auto_increment,

 

    username varchar(20)

 

   );

 

  

 

   修改表:

 

    alter table user rename to user10;

 

    alter table user add password varchar(20);

 

    alter table user change password pwd varchar(20);

 

    alter table user modify pwd int;

 

    alter table user drop pwd;

 

  

 

   删除表:

 

    drop table user;

 

    

 

   常用的命令:

 

    use day06;

 

    show tables;

 

    desc user;

 

    show create table user;

 

  

 

  DML:

 

   对象:记录(行)

 

   关键词:insert update delete

 

   插入:

 

    insert into user values(字段值1,字段值2,...);-- 所有的字段

 

    insert into user(字段1,字段2....) values(字段值1,字段值2);-- 插入指定的字段

 

   更新:

 

    update user set 字段=字段值1,字段2=字段值2 where 条件;

 

   删除:

 

    delete from user where 条件;

 

   扩展:

 

    以后开发中很少使用delete,数据无价,删除有物理和逻辑(常用),

 

     逻辑删除一般会在表中添加一个字段(isdel:若值为1,代表删除了;若为0代表没有删除),

 

     此时的删除操作变成了更新操作.

 

  DQL:

 

   select ... from 表名 where 条件 group by 分组字段 having 条件 order by 排序字段;

 

   执行顺序:

 

    1.确定数据来自那张表 from

 

    2.是否需要筛选 where

 

    3.是否需要分组 group by

 

    4.分组后是否需要筛选 having

 

    5.是否需要排序 order by

 

    6.确定显示那些数据. select

 

  DCL:用户 权限 事务

 

 

auto_increment 自增

 

truncate 干掉表,重新创建 和delete的区别

 

数据类型:

 

 int 和 varchar(size):可变长度

 

 date time datetime timestamp

 

 

多表的操作:

 

 表与表之间的关系:

 

  一对多:

 

   在多表的一方添加一个外键,外键的名称一般是主表名称_id,外键的类型和主表的主键的类型保持一致

 

   为了保证数据的有效性和完整性,

 

    需要在多表上添加外键约束

 

     格式:

 

      alter table 多表 add [constraint [外键的名称]] foreign key(外键名称) references 主表名称(主键);

 

  多对多:

 

   添加一张中间表,存放两张表的主键,就可以将多对多拆分成两个一对多了

 

   为了保证数据的有效性和完整性,

 

    需要在中间表添加两个外键约束

 

  一对一:(了解)

 

   1.两个实体合二为一(字段比较少)

 

   2.将一张表的主键添加外键约束即可

 

/

 

多表的查询:

 

 内连接:

  显式:

 

select a.*,b.* from a join b on 条件;或者 select * from a join b on 条件;或者 select * from a inner join b on 条件;

 

  隐式:

 

   select a.*,b.* from a,b where 条件;

 

 外连接:

 

  左外连接:

 

   select a.*,b.* from a left join b on 条件;或者 select * from a left join b on 条件;

 

   以a为主,展示所有数据,根据条件关联查询b表,满足条件则展示,不满足的话以null显示,即显示a表的全部加上ab两表的交集部分

 

 外连接:

 

  右外连接:

 

   select a.*,b.* from a right join b on 条件;或者 select * from a right join b on 条件;

 

   以b为主,展示所有数据,根据条件关联查询a表,满足条件则展示,不满足的话以null显示,即显示b表的全部加上ab两表的交集部分

 

 子查询::

 

  一个查询依赖于另一个查询.

 

//

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值