Mysql 基础篇

show databases;             // 查询所有数据库
select database();          // 查询当前使用的数据库
create database [数据库名];  // 创建数据库
use [数据库名];             // 使用数据库;
drop database [数据库名];    // 删除数据库
create table [表名];         // 创建表
desc [表名]                  // 查询该表的字段以及名称
show create table [表名]     // 查询建表的sql语句

sql的数据类型

  
添加表的字段
alter table 表名 字段名 数据类型 [注释] [约束];
修改字段
alter table 表名 modify 字段名 新的数据类型; //修改数据类型
alter table 表名 change 旧字段名 新字段名 数据类型 [注释] [约束]; //修改字段
 删除字段
alter table 表名 drop 字段名;
 修改表名
alter 表名 rename to 新表名;
 删除表
drop table 表名;   //删除表
truncate table 表名; // 删除该表 并重新创建一个空的表
DML-添加数据
insert into 表名 (字段名1, 字段名2 , ...) values(值1, 值2, ...);
insert into 表名 values(值 ....)  //给表所有字段按顺序添加数据

// 批量添加数据
insert into 表名 (字段名1, 字段名2 , ...) values(值1, 值2, ...),(值1, 值2, ...),;
insert into 表名 values(值 ....),(值 ....);
修改数据
update 表名 set 字段名1 = 值1, [where 条件];
删除数据
delete from 表名 [where 条件];
# 有where删除符合条件的数据 没有删除全部数据
数据查询

数据去重在select 后添加 distinct即可

1.普通查询
1.查询指定字段
select 字段1, 字段2 from 表名;

2.查询所有字段
select * from 表名;

3.去重数据
select distinct 字段 from 表名;
2.条件查询
select 字段列表 from 表名 where 条件列表;

 3.聚合函数

select 聚合函数(字段列表) from 表名 [where 条件];

// 例: select count(id) from edu;
4.分组查询

!!分组前条件用where 分组后用 having (where > 聚合函数 > having)

5.排序查询
select 字段列表 from 表名 order by 字段1, 排序方式1, 字段2, 排序方式2;

// ASC 升序
// DESC 降序
6.分页查询
select 字段列表 from 表名 limit 起始索引, 查询记录数据;

6.sql语句的编写顺序 

管理用户

函数

1.字符串函数

2.数值函数
3.日期函数 

 // type是时间单位(DAY MONTH YEAR)datediff是date1 - date2 的间隔天数

4.流程控制函数

例: 

 

 约束

 给表的字段添加上约束条件

例:(需求)

sql语句

外键约束

 

外键名称是自定义的! 

外键的更新行为

(只需要在添加外键的sql语句后面加上 on update / delete 以及行为名称即可)

多表查询

多表关系主要分三种情况:

一对多(多对一) 一般在N的一方建立外键链接唯一对应关系

多对多                   一般建立第三张表来维护多对多之间的关系

一对一                    一张表的数据量大 用多表差分来提升效率(单表的拆分)

1.内连接

例:隐式连接

from 后写两张表的表名 where 后跟着外键与主表id相等的查询条件 

显式连接:

emp 连接(inner join) dept 后面跟着where条件  

2.外连接

分为左外连接和右外连接

 左外连接

右外连接

 3.自连接

自连接一定要给 表取别名!!

4.联合查询

5.子查询

外部可以是增删改查!

例:标量子查询 (返回单个数据)例:列子查询(返回一列)

操作符号: 

IN :

ALL

 ANY/SOME

 例:行子查询(返回一行)

查询与张无忌工资以及领导相同的员工信息

例:表子查询(返回多行多列)

事务

简介:

 

开启事务(之后就要手动提交事务 不需要设置提交方式)

在Java JDBC中事务操作流程

try {

    conn.setAutoCommit(false); //将自动提交设置为false

    ps.executeUpdate("修改SQL"); //执行修改操作
    
    ps.executeQuery("查询SQL"); //执行查询操作

    conn.commit(); //当两个操作成功后手动提交

} catch (Exception e) {

    conn.rollback(); //一旦其中一个操作出错都将回滚,使两个操作都不成功

    e.printStackTrace();

}

事务的四大特性:

并发问题

 

事务的隔离级别

 加上session表示只设置当前会话的隔离级别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值