使用数据库的好处:
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

Sql 知识点小结的更多相关文章

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

    SpringBoot 系列教程之事务隔离级别知识点小结 上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上 ...

  2. C++重要知识点小结---3

    C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:http://www.cnblogs.co ...

  3. C++重要知识点小结---2

    C++重要知识点小结--1 :http://www.cnblogs.com/heyonggang/p/3246631.html 1.C++允许程序员声明一个不能有实例对象的类,这样的类惟一的用途是被继 ...

  4. React及Nextjs相关知识点小结

    React及Nextjs知识点小结 函数式组件和类组件区别是什么 1.函数式组件是用于创建无状态的组件,组件不会被实例化,无法访问this中的对象,无法访问生命周期方法,是无副作用的,相比于类组件函数 ...

  5. xss、SQL测试用例小结

    xss测试用例小结: <script>alert("跨站")</script> (最常用)<img scr=javascript:alert(&quo ...

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

    [MQ 系列]RabbitMq 核心知识点小结 以下内容,部分取材于官方教程,部分来源网络博主的分享,如有兴趣了解更多详细的知识点,可以在本文最后的文章列表中获取原地址 RabbitMQ 是一个基于 ...

  7. disruptor笔记之四:事件消费知识点小结

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. sql编程小结

    对照mysql5.1手册,对这几天学的sql编程进行小结,主要涉及触发器.存储过程.权限管理.主从分离等,权当抛砖引玉,高手请略过. 一.触发器 通俗的说就是在指定的数据表增删改的前或后触发执行特定的 ...

  9. promise知识点小结

    断断续续学习es6也有一段时间了,趁着开学空闲对知识点做一些小结. 为什么使用promise 谈到Promise,我们知道,这是社区较理想的异步编程解决方案.想要掌握promise,我们首先要知道其提 ...

随机推荐

  1. [转]配置 VIM 的 Go 语言开发环境

    本文是针对像我这样的 VIM 小白而写的,所使用的 VIM-GO 插件虽然步骤简单但不够详细,特写此文以做记录和分享.欢迎各位大神纠正补充! 特别说明 本博文不是 Go 语言环境搭建教程,只是 VIM ...

  2. RoundedImageView使用吐槽心得(RoundedImageView与Glide加载图片,第一次加载无法圆角问题)

    最近使用的时候发现一个问题, RoundedImageView与Glide搭配使用的时候,第一次加载图片(内存中没有),后图片无法圆角,后来尝试各种改,最后想到了一个办法,就是让Glide加载图片的 ...

  3. 公众号第三方平台开发-aes解密失败

    公众号第三方平台开发-aes解密失败 问题:本地启动项目,配置域名,测试微信公众号,系统正常运行:将项目部署到测试环境执行同样的操作,系统报错,错误异常:aes解密失败..... 调试--寻找问题-- ...

  4. 初学杂文 String类

    String: 两个字符床  String stra 和String strb stra = "hello " ; strb = "hello " 在对象池中开 ...

  5. java中String相等问题

    java中判断两个字符串是否相等的问题   判断两个字符串是否相等的问题.在编程中,通常比较两个字符串是否相同的表达式是"==",但在java中不能这么写.在java中,用的是eq ...

  6. HNU 13064 Cuckoo for Hashing解题报告 North America - East Central 2013

    题目大意:使用两个哈希表来解决哈希冲突的问题.假如现在有两个哈希表分别为:H1,H2 ,大小分别为:n1,n2:现有一数据X需要插入,其插入方法为: 1.计算index1 = X MOD N1,  若 ...

  7. Intellij idea 15配置tomcat,maven

    刚导了个项目进去,想把项目运行起开,怎么也找不到tomcat... ctrl + alt +s,打开设置窗,搜索 Application Server Tomcat: 点中间绿色的“+”号,添加选择t ...

  8. @dynamic 与 @synthesize

    @synthesize是默认选项,表示为属性自动生成getter方法和setter方法 @dynamic 需要在实现文件里注明.例如 @dynamic name:表示用开发者手动动态实现getter和 ...

  9. --@angularJS--路由、模块、依赖注入

    以下是演示angular路由切换的demo. 主页:index.html <!doctype html><html ng-app="bookStoreApp"&g ...

  10. Redhat6.4下配置本地yum

    一.准备工作1. Linux安装盘插入光驱 2. 挂载光驱 [root@localhost ~]# mount /dev/cdrom /mnt/  mount: block device /dev/s ...