Sql 知识点小结

使用数据库的好处:
1、安全
2、支持多用户操作
3、误删数据比较容易恢复
4、存储较大容量的数据
MySql:
MYsql AB公司开发的数据库, 现在归属Oracle公司,开元的关系型数据库
RDBMS:关系型数据库(Relationship Database Managerment System)
1、数据是以表的形式存储
2、row,代表一条数据,实体
3、column,代表一个字段,属性
4、多张表构成一个库
一、DDL数据定义语言
create
drop
alter
二、DML数据操控语言
insert
update from table_name set 字段=值 where 条件
delete 谨慎删除,如果没有条件可能会删除所有的数据
三、SQL:Structured Query Language 结构化查询语言
================================================================

一、创建库
create database 库名
二、创建表格
create table 表名(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型
);
插入数据:
insert into 表名 values(1,‘zhang3‘,18);
删除数据:
delete from t_test
删除表
drop table 表名

#带有序列的建表
create table 表名(
字段1 数据类型 关系属性,
字段2 数据类型,
字段3 数据类型
);

create table t_student(
id int primary key auto_increment,#主键唯一标示,自动生成主键
name varchar(100) not null,
age int
)default charset=UTF8 auto_increment=10;
① auto_increment 序列,主键可以自动生成,
② charset=UTF8字符集的处理
③ auto_increment=10,序列的起始位置
三、MySQL的数据类型
1、数字相关
整数类型
tinyint 1字节 小整数型
int/integer 4
浮点型
float
double
2、日期时间
date:YYYY-MM-DD
time:HH-MM-SS
3、字符串相关
char:定长字符串
varchar:不定长字符串
四、查询
1、查询所有
select * from table_name;
* 同配符号,所有字段
2、查询某些字段
select name,id,age from t_test
3、根据条件查询
select 字段 from 表名 where 条件
查询id<3的信息
SELECT * FROM `t_test` WHERE id<3
4、多个条件查询
select 字段 from 表名 where 条件1 and 条件2
降序:DESC
升序:ASC
按照工资由高到低显示所有的person
select * from t_person order by salary
5、排序:order by 字段的名字--根据某个字段进行排序
6、分页操作:工资排在前三位:limit 起始位置 ,长度(取多少条数据)
select * from t_person order by salary desc limit 0 ,3

注意:
limit startVal,length:那么数据是从startVal+1开始查询,取length条数据
7、模糊查询:like
查询名字中含‘z‘的用户信息
select * from t_person where name like ‘%z%‘

8、对null字段的处理
查询工资为0的person信息
select * from t_person where salary=0
查询没有工资的person信息

9、连接查询 join
select tb1.id,tb1.name,tb1.salary,tb2.name from t_person as tb1 join t_passport as tb2 on tb1.p_id=tb2.id

join:连接两张表
on:连接条件
as:取别名:为了区分两张表的相同字段名

五、表的约束
主键约束:primary key 非空唯一
非空约束:not null
自定义约束:check(salary>0) 对于MySQL数据库来讲自定约束没效果(Oracle可以)
外键约束:references table_name(字段名)
create table t_yy(
id int,
name varchar(100),
birthday date
)
①id加上主键约束:alter table t_yy modify id int primary key auto_increment
②给birthday加上非空约束:alter table t_yy modify birthday date not null
③获取当前的系统时间:current_date
select current_date from dual
注意:dual 哑表
添加一列:
alter table t_person add column p_id int references t_passport(id)
六、事务:数据库做数据的最小原子操作(由一条或者多条sql构成)
事务的提交:commit 把影响数据库操作的多条sql(暂时放在本地client的缓存中)
commit之后,直接影响数据库
事务的回滚:rollback,如果对于事务中的某一条sql错误,不会将缓存中的sql执行而
影响数据库,恢复原来的数据状态
七、视图view 是一张虚表 把查询到的数据作为一张临时表,简化sql

时间: 2024-10-11 07:25:41

Sql 知识点小结的相关文章

MySQL 视图知识点小结

视图本身是一个虚拟表,不存放任何数据.在使用SQL语句访问视图的时候,它返回的数据是MySQL从其他表中生成的.视图和表在同一个命名空间, MySQL在很多地方对于视图和表是同样对待的.不过视图和表也有不同.例如,不能在视图上创建触发器,也不能用DROP TABLE命令删除视图. 视图的实现算法: 合并算法:merge 临时表算法:tmptable 可更新视图(updatable view):可以通过更新视图来更新视图涉及的相关表. 如果视图定义中包含了group by .union.聚合函数.

SpringBoot 系列教程之事务隔离级别知识点小结

SpringBoot 系列教程之事务隔离级别知识点小结 上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上,并通过实例演示不同的事务隔离级别下,脏读.不可重复读.幻读的具体场景 I. 基础知识 在进入正文之前,先介绍一下事务隔离级别的一些基础知识点,详细内容,推荐参考博文 mysql 之锁与事务 1. 基本概念 以下基本概念源于个人理解之后,通过简单的 case 进行描述,如有问题,欢迎拍砖 更新丢失

sql update小结

以前update用的不少,但都是简单的单表操作,没有在意,最近查阅多表关联更新及更新top n,发现update还真灵活,记录如下(在mssqlserver2008r2下测试通过): 1单表操作  update table1 set col1=val[,col2=val2...] [where 条件表达式] 2多表关联操作 1)update 表名 set 列名 from 表1,表2 where 条件,此法源表(table1)不能用as别名,长表名很麻烦,如下: update table1 set

SQL join小结

原来join=inner join,left/right/full join=left/right/full outer join. join/inner join仅返回匹配的 left outer join返回左边每一项,右边不匹配的就null,right反之 full outer join返回左右的,顺序由上到下先是匹配的,不匹配的在后面,表达式写在前的(A full outer join B中的A)也在前,不匹配的为null union必须有相同数量的列,并且列的数据类型要相似.默认取不同

PHP自定义框架部分知识点小结(一)

PHP自定义框架部分知识点小结(一) 网络上有大量优秀的MVC框架可供使用,但自定义框架并不是为了开发一个全面的.终极的MVC框架解决方案,而是将它看作是一个很好的从内部学习PHP的机会,在此过程中,将会学习面向对象编程和MVC设计模式,并学习到开发中的一些注意事项. Web MVC的流程体现如下图: 一个典型的Web MVC流程: Controller截获用户发出的请求: Controller调用对应的Model: Model调用DAO(基于PDO操作数据库的封装类)完成状态的读写操作: Co

(萌O(∩_∩)O)哈希知识点小结

噶呜~先来了解一下什么是哈希吧? 当我们要在一堆东西中找到想要的那一个东西,我们常常通过比较来找,理想的情况是不经过任何比较,一次就能找到,怎么才能做到这样呢?那就在记录的储存位置和他的关键字之间建立一个确定的对应关系,我们称这种对应关系为哈希函数~小盆友们应该对哈希有了一个初步的印象了吧?其实,哈希函数就是一个映像,设定很灵活,只要使任何关键字由这个哈希函数所得的哈希函数值都落在一定范围内即可.当然,不同的关键字可能得到同一哈希地址,这就出现了所谓的冲突,至于怎么解决这种冲突,稍后就会了解到.

oracle事务知识点小结

DML语句流程 1 获取事务锁和ITL2 锁定候选行3 生成redo4 生成undo5 生成redo record写入log buffer并更改数据块 事务提交1 分配SCN2 更新事务表,将事务槽状态改为0x093 回收undo块4 创建commit redo record5 将redo从log buffer刷新6 释放表锁和行锁 锁一个事务由1个TX和若干TM组成,而回滚savepoint不会释放TX锁: ITL通过XID指向事务槽,进而指向undo记录,其UBA也指向undo记录:两者区别

xss、SQL测试用例小结

xss测试用例小结: <script>alert("跨站")</script> (最常用)<img scr=javascript:alert("跨站")></img><img scr="javascript: alert(/跨站/)></img><img scr="javas????cript:alert(/跨站/)" width=150></im

【SpringBoot MQ 系列】RabbitMq 核心知识点小结

[MQ 系列]RabbitMq 核心知识点小结 以下内容,部分取材于官方教程,部分来源网络博主的分享,如有兴趣了解更多详细的知识点,可以在本文最后的文章列表中获取原地址 RabbitMQ 是一个基于 AMQP 协议实现的企业级消息系统,想要顺畅的玩耍的前提是得先了解它,本文将主要介绍 rabbitmq 的一些基本知识点 特点 基本概念 消息投递消费的几种姿势 事务 集群 I. 基本知识点 它是采用 Erlang 语言实现的 AMQP(Advanced Message Queued Protoco