java全栈学习之路——mysql(一)

MySQL

为了便于解释,因此作出以下两个表便于直观可见。

  • table1:
idnamepid
1小明1
2小芳1
3小强2
4小李3
  • table2:
idclass
1一班
2二班

外键约束

  1. 外键约束:MyISAM不支持外键约束。InnoDB支持外键约束和事务。
  2. 修改存储引擎:ALTER TABLE 表名 ENGINE=‘InnoDB’。
  3. 性能对比:InnoDB < MyISAM。

多表查询

一、内连接

  1. 隐式内连接:SELECT 列名1,列名2 FROM 表名1,表名2 WHERE 表名1.列名1=表名2.列名2。
SELECT table1.id,table1.name,table2.class FROM table1,table2 WHERE table1.pid=table2.id
idnameclass
1小明一班
2小芳一班
3小强二班
  1. 显示内连接:SELECT 列名1,列名2 FROM 表名1 [INNER] JOIN 表名2 ON 表名1.列名1 = 表名2.列名2。 //INNER可不写。
SELECT table1.id,table1.name,table2.class FROM table1 JOIN table2 ON table1.pid=table2.id
idnameclass
1小明一班
2小芳一班
3小强二班
  1. 两者相比:查询效果相同。

二、外连接

  1. 左外连接:SELECT 列名1,列名2 FROM 表名1 LEFT OUTER JOIN 表名2 WHERE 表名1.列名1=表名2.列名2。
SELECT table1.id,table1.name,table2.class FROM table1 LEFT OUTER JOIN table2 WHERE table1.pid=table2.id
idnameclass
1小明一班
2小芳一班
3小强二班
4小李null
  1. 右外连接:SELECT 列名1,列名2 FROM 表名1 RIGHT OUTER JOIN 表名2 WHERE 表名1.列名1=表名2.列名2。
SELECT table1.id,table1.name,table2.class FROM table1 RIGHT OUTER JOIN table2 WHERE table1.pid=table2.id
idnameclass
1小明一班
2小芳一班
3小强二班
nullnull三班

三、自连接:mysql有时在信息查询时需要对自身连接。

SELECT id,name FROM table1 as a,table1 as b where b.name = "小强" and b.pid < a.pid
idname
4小李

插入操作

  1. 插入语句:(id自增)。
INSERT INTO table1(`name`,`pid`) values ("李白","666")
idnamepid
1小明1
2小芳1
3小强2
4小李3
5李白666
  1. 批量插入。
INSERT INTO table1(`name`,`pid`) values ("关羽","666"),("张飞","666")
idnamepid
1小明1
2小芳1
3小强2
4小李3
5李白666
6关羽666
7张飞666
  1. 插入查询(测试:仅用于此处)。
INSERT INTO table1(`name`,`pid`) SELECT `name`,`pid` FROM table1
idnamepid
1小明1
2小芳1
3小强2
4小李3
5李白666
6小明1
7小芳1
8小强2
9小李3
10李白666

修改操作

修改语句:

UPDATE table1 set `name` = `刘备`,pid=`777` WHERE id = 5
idnamepid
1小明1
2小芳1
3小强2
4小李3
5刘备777
6关羽666
7张飞666

修改操作

修改语句:

DELETE FROM table1 WHERE id = 5
idnamepid
1小明1
2小芳1
3小强2
4小李3
6关羽666
7张飞666

小结

数据备份与恢复(dos命令操作):

  1. 导出:mysqldump -u账户 -p密码 数据库名称 > 脚本文件存储地址。
mysqldump -uroot -p12345 mybam > c:/myBam.sql

2.导入:mysql -u账户 -p密码 数据库名称 < 脚本文件地址。

mysql -uroot -p12345 mybam < c:/myBam.sql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值