java学习笔记④MySql数据库--01/02 database table 数据的增删改
01 初始MYSQL
02 MYSQL数据管理
数据库 database
用户可以对文件中的数据进行新增、截取、更新、删除等操作
存储大量数据,存储结构便于管理和访问
可以有效保障数据一致性、完整性、降低数据冗余
可以满足应用的共享和安全方面的要求
故障恢复,防止数据被破坏
关系型数据库和非关系型数据库???
nosql=not only sql
1 关系型数据库与非关系型数据库的区别 图解
2 常见的关系型数据库和非关系型数据及其区别
3 简述关系型数据库和非关系型数据库
DBMS数据库关系系统
包括相互联系的数据集合 (数据库)和存取这些数据的一套程序 (数据库管理系统软件)
mySQL、SQL Server 是关系数据库管理系统 (RDBMS)
Mysql 开源免费 小巧
一个SQL语句,如select * from tablename ,从支持接口进来后,进入连接池后做权限、验证等环节,然后判断是否有缓存,有则直接放回结果,否则进入SQL接口,在查询之前查询优化器进行优化,最后进行解析,查询。并通过存储引擎与文件交互
名词解释:
支持接口:不同的编程语言与SQL的交互
连接池:管理缓冲用户连接,线程处理等需要缓存的需求
SQL接口:接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL接口
解析器:SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。
主要功能:
a . 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的;例如将 select * from tablename where 1=1;分解为select、*、from、tablename、where 、1=1,并去解析。
如果在分解构成中遇到错误,那么就说明这个SQL语句是不合理的。
查询优化器:SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。
例: select uid,name from user where gender = 1;
a.先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤
b.先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤
将这两个查询条件联接起来生成最终查询结果。
缓存:
如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。
这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等
存储引擎:
存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方。
Mysql的存储引擎是插件式的。它根据MySql AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)。
现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的MyISAM,InnoDB,BDB。
默认下MySql是使用MyISAM引擎,它查询速度快,有较好的索引优化和数据压缩技术。但是它不支持事务。
InnoDB支持事务,并且提供行级的锁定,应用也相当广泛。 Mysql也支持自己定制存储引擎,甚至一个库中不同的表使用不同的存储引擎,这些都是允许的
mysql的安装:
数据目录不要在系统盘,以免卸载时删除数据包
my.ini
配置环境变量
开启mysql服务
命令行连接数据库:
DDL:
#创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名;#删除数据库 DROP DATABASE [IF EXISTS] 数据库名; #查看数据库 SHOW DATABASES;#使用数据库 USE 数据库名;#建表 CREATE TABLE [ IF NOT EXISTS ] `表名` ( `字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] , --各个属性之间的顺序没有影响 `字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] , … `字段名n` 列类型 [ 属性 ] [ 索引 ] [注释] ) [ 表类型 ] [ 表字符集 ] [注释] ;
列类型:数值、字符串、日期时间、null
属性:
unsigned 无符号型不允许为负数
zerofill 不足位数用0补充,例如int(3)表示5为005
auto_increment 配合主键使用自增长,可设置步长
not null和null 是否允许为空
default设置默认值
注释:comment
表类型:
引擎 ENGINE = MyISAM
字符集:
#修改表(ALTER TABLE)#修改表名 ALTER TABLE 旧表名 RENAME AS 新表名#添加字段 ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ] #修改字段 ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ] ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]#删除字段 ALTER TABLE 表名 DROP 字段名#删除表 DROP TABLE [ IF EXISTS ] 表名
DML:
insert可同时插入多条记录
删除:delete和truncate的区别
truncate删除后自增长序列 会从初始值 计数,delete不会
truncate不支持事务
外键:用来约束字表中某个字段的取值
外键 references 父表的字段必须为父表的逐渐
-----------------------------------------------------------------------------------------
插入时可以插入多个值
INSERT into grade VALUES (1,'大一'),(2,'大二'),(3,'大三'),(4,'大四'),(5,'预科班');
修改时可以用自身查出来的值做运算
update student set classHour = classHour + 100;
修改表的引擎engine
alter table subject engine = innode;
表的外键在创建时和修改时的语句
建表时添加外键:
create table student(
studentId int not null,
gradeId int,
foreign key (gradeId) references grade(gradeID)
)
建表后增加外键时:
alter table systudent add foreign key (gradeId) references grade(gradeID);
gradeID必须是grade父表的主键,才可以被用作外键关联
删除外键(外键创建时系统自动取名,删除时使用该名删除):
alter table student drop foreign key 'subject_ibfk_1';
DDL create drop alter
DML insert update delete truncate
navicate保存的sql存放位置:
C:\Users\Administrator\Documents\Navicat\MySQL\servers\javaXXX
创建的表数据存放位置:
C:\ProgramData\MySQL\MySQL Server 5.7\Data\jy81
反引号 是为了防止和关键字冲突,例如 order字段
字段名区分大小写
关键字不区分大小写
转载于:https://www.cnblogs.com/givemeanorange/p/10391817.html
java学习笔记④MySql数据库--01/02 database table 数据的增删改相关推荐
- mysql数据库入门教程(6):数据的增删改
前面两篇博文介绍了数据库的查询 mysql数据库入门教程(4):查询讲解大全 mysql数据库入门教程(5):多表操作(连接查询,子查询,分页查询,联合查询) 今天介绍下数据库的增删改. 数据库基本操 ...
- java学习笔记④MySql数据库--03/04 DQL查询
03 使用DQL查询数据(一) 04 使用DQL查询数据(二) DQL 数据查询语言 select select * 方式效率低 AS 取别名 (给字段取别名,给表取别名,给计算结果取别名) as取 ...
- java向mysql写入数据慢_通过java代码往mysql数据库中写入日期相关数据少13个小时...
通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...
- R操作MySQL数据库创建表、删除表、增删改查(CRUD)
R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...
- Java程序向MySql数据库中插入的中文数据变成了问号
找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...
- Java学习笔记之数据库MySQL
1. 数据库引擎 1.1 INNODB AND MYISAM MYISAM INNODB 事务支持 不支持 支持 数据行锁定 不支持 支持 外键 不支持 支持 全文索引 支持 不支持(InnoDB 1 ...
- 学习笔记——mysql数据库(四)
我们先来建个表哦~~~ mysql> select * from e1; +----+-------+------+ | id | name | age | +----+-------+---- ...
- Java学习笔记:数据库中的范式和反范式
范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法.数据库的设计范式是数据库设计所需要满足的规范.只有理解数据库的设计范式,才能设计出率.优雅的数据库,否则可能会设计出 ...
- JavaWeb学习笔记(数据库、SQL语句、数据查询语法、完整性约束、编码、备份和恢复数据、多表查询)
数据库.SQL语句.数据查询语法.完整性约束.编码.备份和恢复数据.多表查询 JavaWeb学习笔记 数据库 数据库概念 基本命令 启动和关闭mysql服务器 客户端登录退出mysql SQL语句 S ...
- Python操纵Mysql数据库的三种方法,实现增删改查
目录 这里使用的数据库是关系型数据库Mysql 一.首先,需要安装两个库 二.3种实现增删改查的方法 1. 使用原生语句进行增删改查 2. 使用表结构进行增删改查 3. 使用集成ORM类操纵数据库, ...
最新文章
- php mysql 防 sql注入_php 防sql注入方法
- MegaCli常用命令详细介绍
- CSDN专访云信阙杭宁:以16年技术积累打造稳定IM云服务
- 实现Operations Manager 2012 R2单一部署
- SAP CRM服务订单状态和SAP S/4生产订单状态
- 数据结构 旅游规划(Dijkstra+Dfs)
- 2018华工计算机应用基础作业,计算机应用基础平时作业2019
- SQL Server 2005数据库快照
- ejb 属于哪一层,作用是什么,什么时候用
- C++安全方向(二):2.4 openssl_BIO接口解析
- 一口气带你踩完五个 List 的大坑,处处坑!| 原力计划
- webservice发布及远程调用
- Django 入门初探
- MySQL 常用函数一览
- mysql 读写分离配置
- POJ-2524 Ubiquitous Religions
- Istio进入1.7版本,Service Mesh 落地还有什么障碍?
- PAT乙级 打印沙漏(20)
- JAVA短期培训班多少钱?
- 同花顺-图像算法工程师-笔试题
热门文章
- 拓端tecdat|R语言基于Garch波动率预测的区制转移交易策略
- java编辑简单文本编辑器_简单文本编辑器
- 基础知识(四)C++常用函数.txt
- 别样的唐诗宋词汇——基于Python的量化分析挖掘尝试
- 机器学习十大算法的核心思想、工作原理、适用 情况及优缺点
- hbase 伪分布安装 java_HBase伪分布搭建
- dubbo service注解用法_dubbo学习(四)配置dubbo 注解方式配置
- 2021-08-02 INSERT INTO插入语句
- vba commondialog控件添加不上_MyVBA加载宏——添加自定义菜单03——功能分析
- hyperledger fabric 节点数限制 最大