Java笔记_MySqL_数据库_02

修改表

-- 修改表名
alter table 旧表名 rename[to] 新表名;
-- 添加字段
alter table 表名 add 字段名 数据类型[属性];
-- 修改字段
alter table 表名 change 原字段名 新字段名 数据类型[属性];
-- 删除字段
alter table 表名 drop 字段名;

主键和外键:

主键:能够唯一表示信息表中的一条数据的字段/字段组

-- 
alter table 表名 add Constraint 主键名 primary key 表名(主键字段名);
-- 例如:
 alter table school_stu
   add constraint pk_stu_stuId           
   primary key school_stu(stuID);                                          
alter table school_stu add constraint pk_stu_stuId primary key school_stu(stuID);                              
                                                 

**外键:**在一张表中的某个字段引用的数据来自另一张表的某个子弹的信息。

**主表:**它的主键一般是需要被从表引用

**从表:**在其中拥有外键 可以引用主表的主键信息

实现物理外键,通过SQL语句将外键绑定好,可以保证数据一致性

alter table school_stu
	add constraint fk_stu_grade
	foreign key (gradeId)
    refereces grade(gradeId);

为了能够方便我们进行数据表操作,在实际项目中一般不设置物理外键,而设置逻辑外键

**CUD:**增删改

数据添加 insert

-- insert into 表名(要添加值的字段列表) values(字段值列表<必须按照前面字段信息顺序赋值>);
insert into 表名(字段信息)values(字段赋值);
-- 如果你省略了字段列表,则需要将所有字段进行赋值,且严格按照顺序
insert into 表名 values(所有字段值);
-- 如果有些字段有默认,则可以使用null来表示/你不需要去给此字段赋值
insert into 表名(字段) values(null);
-- 同时添加多条数据
insert into 表名(字段) values('sdf')('sdg')('qwe');
-- 添加多条数据(理解)
insert into 表名(字段)
  select'hehe' union
  select'hehe1' union  
  select'hehe2'   
  
-- 利用select的玩法
-- 将表中的其中一个字段和字段值,赋值到另外一表中的对应列
-- 必须保证要添加数据的表提前存在!!!
insert into 表名(字段...)
select 字段,select 字段... from 另一个表名;

# 将旧表中的字段与字段值 赋值到一张新表中
create table 新表名(
    select 字段,旧表名 from 新表名
);

数据修改 update

# 修改语句
update 表名 set 字段名 = 字段值,......
# 如果不添加条件  则默认为全表更新
# 条件 where 在那/哪里?
# where 后可接一系列的判断条件 id = xxx and xxx = xx or xxx = xx and not xxx
update 表名 set 字段名 = '某某' where ID(字段) = 2(字段值);

数据删除 delete

# delete from 表名 [where 条件]
delete from 表名 where 字段 ='xxx' and 字段 = 'xxx';

# truncate 可以进行数据删除
truncate table 表名;
# <面试题>delete   truncate
# 相同点:都可以进行数据删除(全表删除)
# 不同点:delete 可以进行条件删除 truncate 只能全表删除
# 不同点:delete 会保留自增序列 truncate除了表结构,其他数据全部清空 不会保留自增序列
#不同点(先了解):truncate会结束事务  而delete不会影响到事务。
 create table gip_ledger(
     lid int primary key auto_increment,
     parent varchar(100),
     money double,
     sid int,
     account varchar(100),
     createtime timestamp,
     ldesc varchar(1000)
     )comment'gip_ledger';
     
     insert into gip_ledger(parent,money,sid,account,createtime,ldesc) values('支出',1000,2,'工商银行','2015-10-29','又吃饭');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值