2021-10-15 好长时间不写的笔记

sql:
DDL(数据定义语言 data definition language 操作数据库,表,列):
创建库:create database 数据库名
创建表:create table 表名
查看所有数据库:show databases
查看刚开的建库或者建表语句: show create table 表名
show create database 数据库名
查看正在使用的数据库:show database 库名
使用数据库:use database 库名
创建表并且指定字段
create table 表名(
字段名 数据类型,
字段名 数据类型,
字段名,数据类型
);
创建一个学生表指定id为主键
create table student(
id int primary key,
name varchar(32)
);
复制表:
create table teach like student;
查询所有的表
show tables;
查询表结构
desc 表名
添加数据:
insert into 表名(字段1,字段2…) values(数据1,数据2…)
insert into student(id,name) values(1,‘jack’);
如果存入的数据是表中所有字段的可以省略字段
insert into 表名 values(数据1,数据2…)
插入的字段顺序类型要和数据的一致
修改数据(一定要加条件不加条件就全部修改了):
update 表名 set 字段名=新数据,字段名=新数据 where 条件
update student set name=‘lucy’ where id=1;
删除数据(一定要加条件)
delete from 表名 where 条件
delete from student where id=1;
查询表:
查询所有:select * from 表名;
select * from student
根据条件查询: select * from 表名 where 字段=数据;
select * from student where name=‘lucy’
只查询指定字段
select 字段名1,字段名2 from 表名
select name from studnt;
null值处理: select ifNull(字段名,默认值) from 表名
select ifNull(name,‘空’) from student;
别名(as 可以省略不写)
select 字段名 as 新名称,字段名 as 新名词 from 表名 as 新名称
删除库:drop database 库名
删除表:drop table 表名
约束:
主键约束:primary key
非空约束: not null
唯一约束:unique
外键约束: foreign key
多表查询:
隐式内连接:
select * from 表1,表2 where 表1的主键=表2的外键
显式外连接:
select * from 表1 join 表2 on 表1的主键=表2的外键
左外连接(查询左边所有字段关联右表的数据)
select * from 左表 left join 表2 on 左表的主键=biao2的外键
子嵌套查询:
上一次sql查询的结果作为下一次sql的查询条件
查询工资最高的员工
先查询工资最高
select max(工资字段) from 员工表
根据结果查询员工
select * from 员工表 where 工资字段=(select max(工资字段) from 员工表)
子查询结果为单列通常在where后面作为条件使用
子查询结果为多列通常在from后面作为临时表使用

一个包含多个步骤的业务操作,被事务管理,要么一起成功,要么一起失败
开启事务: begin
sql语句
提交或者回滚: commit || rollback
当事务开启后一部分操作成功了可以设置保存点:savepoint 保存点名称 ,回滚直接回滚到保存点就可以保证正常操作正确提交
事务特性:
一致性,持久性,原子性,隔离性
事务隔离性:
脏读:事务A读取到了事务B没有提交的内容
幻读:事务A执行插入先查询最后的主键为1
事务B执行插入也查询到主键为1
事务A插入成功主键为2
事务B插入报错,主键已存在
不可重复读:
事务A第一次查询账户金额为1000
事务B修改金额为500
事务A第二次查询为500(事务A懵逼,没做操作但是被修改了)
mysql的默认隔离级别是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值