周总结sql

DDL语句

添加字段

Altertable 表名 add 字段名 类型(长度) comment 注释;

Ex:alter table emp add name varchar(20) '昵称';

修改数据类型

Alter table 表名 modify 字段名 新数据类型;

修改字段名和数据类型

Alter table 表名 change 旧字段名 类型 新字段名 类型;

删除字段

Alter table 表名 drop 字段名;

修改表名

Alter table 表名 rename  to 新表名;

删除表

Drop table 表名;

Truncate table 表名;  //删除指定表并重新创建该表

DML语句

数据操作语言,数据库增删改

添加数据

Insert into 表名(字段1,字段2) 字段名 values ();

修改数据

Update 表名 set(字段1=?,…)where 条件;

删除数据

Drop  from 表名 where 条件;

DQL语句

Select * from 表名

where 条件;    -- 条件查询表

Group by 分组字段列表

Having 分组后条件列表

Order by 排序字段列表  asc升序 desc 降序

Limit 分页参数( (页码-1)*每页数据),每页数据;

执行顺序

from where group by having order limit

连接 限制 聚合 过滤 排序 限制

selert * from...会增加不必要的消耗,最好精确查询

外键

alter table 表名 

add conseraint 外键名 foreign key 字段名 references 主键(字段名);

级联操作

on update cascade; 级联修改

on delete cascade;  级联删除

多表关系三大范式

1.原子性.每列不可再分

2.不产生局部依赖.表中每一列完全依赖主键

3.不产生传递,每一列直接依赖主键

连接

隐式内连接

select * from a,b

where a.`id`=b.`id`;

显式内连接

select * from a inter join b

on a.`id`=b.`id`;

左外/右外

select * from a left(right) join b

on a.`id`=b.`id`;

数据库

事务特点--acid

原子性 执行某个业务操作,同时操作多个sql(同时成功/失败)

一致性 多个线程同时读写,数据一致性

隔离性 事务事物之间相互独立互不影响

持续性  对增删改sql语句,一旦事务提交,永久性,即使关机也存在.

传统事务隔离级别 执行效率从大到小,安全性从低到高

读未提交

读已提交

可重复读  mysql默认隔离级别

串行话

Set global transaction isolation level (级别名称)

预编译

perparedstatemen和statement区别

共同点

将sql发送到数据库,前者接口继承自后者

不同点

1.是否执行sql语句

前者参数化,里面是?占位符.不是静态sql语句

后者执行静态sql.存在硬编码,存在字符串拼接

2.是否提高sql效率

可以提高,只需向数据库发送一次,然后通过预编译对象赋值不同的参数

后者效率低,每一次sql发送一次

3.是否造成sql注入

有效防止sql注入

存在安全漏洞,字符串拼接

数据库1连接池好处

节省资源

重复利用

提高性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值