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 数据的增删改相关推荐

  1. mysql数据库入门教程(6):数据的增删改

    前面两篇博文介绍了数据库的查询 mysql数据库入门教程(4):查询讲解大全 mysql数据库入门教程(5):多表操作(连接查询,子查询,分页查询,联合查询) 今天介绍下数据库的增删改. 数据库基本操 ...

  2. java学习笔记④MySql数据库--03/04 DQL查询

    03 使用DQL查询数据(一) 04 使用DQL查询数据(二) DQL 数据查询语言  select select * 方式效率低 AS 取别名 (给字段取别名,给表取别名,给计算结果取别名) as取 ...

  3. java向mysql写入数据慢_通过java代码往mysql数据库中写入日期相关数据少13个小时...

    通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...

  4. R操作MySQL数据库创建表、删除表、增删改查(CRUD)

    R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...

  5. Java程序向MySql数据库中插入的中文数据变成了问号

    找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...

  6. Java学习笔记之数据库MySQL

    1. 数据库引擎 1.1 INNODB AND MYISAM MYISAM INNODB 事务支持 不支持 支持 数据行锁定 不支持 支持 外键 不支持 支持 全文索引 支持 不支持(InnoDB 1 ...

  7. 学习笔记——mysql数据库(四)

    我们先来建个表哦~~~ mysql> select * from e1; +----+-------+------+ | id | name | age | +----+-------+---- ...

  8. Java学习笔记:数据库中的范式和反范式

    范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法.数据库的设计范式是数据库设计所需要满足的规范.只有理解数据库的设计范式,才能设计出率.优雅的数据库,否则可能会设计出 ...

  9. JavaWeb学习笔记(数据库、SQL语句、数据查询语法、完整性约束、编码、备份和恢复数据、多表查询)

    数据库.SQL语句.数据查询语法.完整性约束.编码.备份和恢复数据.多表查询 JavaWeb学习笔记 数据库 数据库概念 基本命令 启动和关闭mysql服务器 客户端登录退出mysql SQL语句 S ...

  10. Python操纵Mysql数据库的三种方法,实现增删改查

    目录 这里使用的数据库是关系型数据库Mysql 一.首先,需要安装两个库 二.3种实现增删改查的方法 1.  使用原生语句进行增删改查 2. 使用表结构进行增删改查 3. 使用集成ORM类操纵数据库, ...

最新文章

  1. php mysql 防 sql注入_php 防sql注入方法
  2. MegaCli常用命令详细介绍
  3. CSDN专访云信阙杭宁:以16年技术积累打造稳定IM云服务
  4. 实现Operations Manager 2012 R2单一部署
  5. SAP CRM服务订单状态和SAP S/4生产订单状态
  6. 数据结构 旅游规划(Dijkstra+Dfs)
  7. 2018华工计算机应用基础作业,计算机应用基础平时作业2019
  8. SQL Server 2005数据库快照
  9. ejb 属于哪一层,作用是什么,什么时候用
  10. C++安全方向(二):2.4 openssl_BIO接口解析
  11. 一口气带你踩完五个 List 的大坑,处处坑!| 原力计划
  12. webservice发布及远程调用
  13. Django 入门初探
  14. MySQL 常用函数一览
  15. mysql 读写分离配置
  16. POJ-2524 Ubiquitous Religions
  17. Istio进入1.7版本,Service Mesh 落地还有什么障碍?
  18. PAT乙级 打印沙漏(20)
  19. JAVA短期培训班多少钱?
  20. 同花顺-图像算法工程师-笔试题

热门文章

  1. 拓端tecdat|R语言基于Garch波动率预测的区制转移交易策略
  2. java编辑简单文本编辑器_简单文本编辑器
  3. 基础知识(四)C++常用函数.txt
  4. 别样的唐诗宋词汇——基于Python的量化分析挖掘尝试
  5. 机器学习十大算法的核心思想、工作原理、适用 情况及优缺点
  6. hbase 伪分布安装 java_HBase伪分布搭建
  7. dubbo service注解用法_dubbo学习(四)配置dubbo 注解方式配置
  8. 2021-08-02 INSERT INTO插入语句
  9. vba commondialog控件添加不上_MyVBA加载宏——添加自定义菜单03——功能分析
  10. hyperledger fabric 节点数限制 最大