MySQL学习笔记
文章平均质量分 92
一直流浪~
这个作者很懒,什么都没留下…
展开
-
MySQL为什么建议单表不要超过2000万行
在工作中或者面试中,经常会说mysql单表牛不要超过2000w行,超过两千万行建议分表,否则查询效率会急剧下降。那么一张表最多可以存多少数据呢,今天我们从底层技术进行刨析,分析下根本原因。原创 2024-04-12 16:30:11 · 1343 阅读 · 0 评论 -
16、触发器
16、触发器1、触发器的定义触发器(trigger)是一种特殊的存储过程,其特殊性在于它并不需要用户直接调用,而是在对表添加、修改、删除之前或者之后自动执行的存储过程。使用触发器实现注册业务时,JDBC可以对表实现添加信息,添加成功后自动激活触发器。2、触发器的特点1.与表相关联触发器定义在特定的表上,这个表称为触发器表。2.自动激活触发器 当对表中的数据执行 INSERT、UPDATE 或 DELETE 操作时,如果对表上的这个特定操作定义了触发器,该触发器自动执行,这是不可撤销的。3原创 2020-07-12 18:57:45 · 516 阅读 · 0 评论 -
15、函数
15、函数1、函数语法create function 函数名([参数列表]) returns 数据类型begin sql语句; return 值;end;注意:1.参数列表包含两部分:参数名 参数类型2.函数体:肯定会有return语句,如果没有会报错如果return语句放在函数的最后也不报错,但不建议return 值;3.函数题中仅有一句话,则可以省略begin end4.使用 delimter语句设置结束标记2、删除函数DROP FUNCTION myf2;原创 2020-07-12 18:57:09 · 119 阅读 · 0 评论 -
14、存储过程
14、存储过程1、什么是存储过程?如果实现用户的某些需求时,需要编写一组复杂的SQL语句才能实现,那么可以将这组复杂的SQL语句集编写在数据库中,由JDBC调用来执行这组SQL语句。把编写在数据库中的SQL语句集称为存储过程。 存储过程(PROCEDURE)是事先经过编译并存储在数据库中的一段 SQL 语句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程类似于JAVA语言中的方法,需要先定义,使用时原创 2020-07-12 18:56:45 · 227 阅读 · 0 评论 -
13、练习题
13、练习题下面练习题,用到的表的创建语句,可以把下面数据保存到bookshop.sql文件,然后使用命令导入数据库,具体如何导入在本专栏的第一节有教程。bookshop.sqlDROP TABLE IF EXISTS EMP;DROP TABLE IF EXISTS DEPT;DROP TABLE IF EXISTS SALGRADE;CREATE TABLE DEPT (DEPTNO int(2) not null , DNAME VARCHAR(14) , LOC VA原创 2020-06-20 12:09:56 · 1085 阅读 · 0 评论 -
12、数据库表的设计
12、数据库表的设计1、一对一两种方案:1.1 主键共享t_user_login 用户登录表id(pk)user_namepassword1zs1232ls123456t_user_detail 用户信息表id(pk+fk)real_nametel1张三188888888882李四138888888881.2 外键唯一t_user_login 用户登录表id(pk)user_namepass原创 2020-06-20 12:07:29 · 180 阅读 · 0 评论 -
11、数据库设计三范式
11、数据库设计三范式1、什么是设计范式?设计表的依据,按照三范式设计的表不会出现数据冗余。2、三范式满足三范式的目的是,减少数据冗余。第一范式:任何一张表都应该有主键,并且每一个字段都不能再分。学生编号学生姓名联系方式1001张三zs@gmail.com,13599999991002李四ls@gmail.com,136999999991003王五ww@163.net,13488888888上表违背了第一范式:(1)没有主键(2)联系方式原创 2020-06-19 13:12:54 · 175 阅读 · 0 评论 -
10、DBA命令
10、DBA命令1、新建用户语法:CREATE USER username IDENTIFIED BY 'password';username:你将创建的用户名,password:该用户的登陆密码,密码可以为空,如果为空则该用户可以丌需要密码登陆服务器.示例:create user 86god identified by '123456';2、授权2.1 命令详解语法格式:grant all privileges on dbname.tbname to 'username'@'原创 2020-06-19 13:12:29 · 299 阅读 · 0 评论 -
09、视图
09、视图(view)1、什么是视图?站在不同的角度看到数据。(同一张表的数据,通过不同的角度去看待)。2、视图的使用创建一张备用表create table emp1 as select * from emp;创建视图create view myview as select empno,ename from emp1;删除视图drop view myview;注意:只有DQL语句才能以视图对象的形式创建出来。3、视图的操作对视图的操作,会影响到原表的数据。(通过视图影响原表数据原创 2020-06-19 13:11:16 · 170 阅读 · 0 评论 -
08、索引
08、索引1、什么是索引?索引就相当于一本书的目录,通过目录可以快速找到对应的资源。在数据库,查询一张表的时候有两种检索方式:(1)全表扫描(2)根据索引扫描(效率很高)索引为什么可以提高检索效率呢? 根本原理是缩小了扫描的范围。注意:索引虽然可以提高检索效率,但是不能随便添加索引因为索引也是数据库当中的对象,也需要数据库不断的维护,是有维护成本的。如果表中数据经常被修改,就不适合使用索引,因为表中数据一旦修改,索引需要重新排序,进行维护2、什么时候考虑给字段添加索引?数据原创 2020-06-18 18:50:23 · 137 阅读 · 0 评论 -
07、事务(TCL)
07、事务(TCL)1、什么是事务(Transaction)一个事务是一个完整的业务逻辑单元,不可拆分。比如:银行转账,A账户给B账户转账10000,需要执行2条update的语句。 A余额减少10000 B余额增加10000以上两条数据,要么同时成功,要么同时失败。要想保证以上两条数据,要么同时成功,要么同时失败,就需要使用数据库的事务机制。2、事务什么时候使用和事务相关的语句只有DML语句。(insert,delete,update)因为DML语句都是和数据库表当中的数据有关的,原创 2020-06-18 18:49:15 · 121 阅读 · 0 评论 -
06、存储引擎
06、存储引擎1、查看存储引擎和编码方式查看建表语句show create table t_x;完整的建表语句 CREATE TABLE `t_x` ( `id` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;注意:在mysql中凡是标识符都可以使用飘号 `` 括起来。最好别用,不通用。mysql默认使用的存储引擎是InnoDB方式。默认的采用的字符集原创 2020-06-18 18:48:31 · 93 阅读 · 0 评论 -
05、约束(Constraint)
05、约束(constraint)1、什么是约束? 在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。 常见的约束:表达式作用not null非空约束,不能为NULLunique唯一约束,不能重复,但可以为NULLprimary key主键约束,就不能为NULL,也不能重复foreign key外键约束check检查约束,Oracle有,mysqk目前没有2、非空约束(not nul原创 2020-06-18 18:48:00 · 361 阅读 · 0 评论 -
04、数据操作(DML)
04、数据操作(DML)增删改查有一个术语:CRUD操作Create(增) Retrieve(检索) Update(修改) Delete(删除)1、插入:insertinsert 语句插入数据语法格式: insert into 表名 (字段名1,字段名2,字段名3,……) values (值1,值2,值3,……);要求:字段的数量和值的数量相同,并且数据类型要对应相同。(1)一般的全列对应全values插入insert into t_student (no,name,sex,clas原创 2020-06-18 18:47:27 · 117 阅读 · 1 评论 -
03、数据定义(DDL)
03、数据定义(DDL)1、创建表(create)语法格式:create table 表名{ 字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型, ...}MySQL字段数据类型:类型描述java的对应关系Char(长度)定长字符串,存储空间大小固定,适合作为主键或外键chardouble(有效数字位数,小数位)数值型doubleFloat(有效数字位数,小数位)数值型floatInt(长度)整型intbigin原创 2020-06-18 18:47:01 · 144 阅读 · 0 评论 -
02、数据查询(DQL)
02、数据查询(DQL)1、简单的查询语法格式:(1)查询单个字段: select 字段名 from 表名;(2)查询多个字段: select 字段名1,字段名2,字段名3,…… from 表名;(3)查询所有字段: select * from 表名;提示:任何一条sql语句都要以";"结尾sql语句不区分大小写案例:查询员工年薪?(月薪*12)字段可以参与数学运算select ename,sal*12 from emp;+--------+----------+原创 2020-06-18 18:46:24 · 273 阅读 · 0 评论 -
01. 数据库概述及数据准备
01. 数据库概述及数据准备1、sql、DB、DBMS分别是什么,他们之间的关系?(1)DB: DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)(2)DBMS: DataBase Management System(数据库管理系统,常见的有:MySQL、Oracle、DB2、Sybase、SqlServer)(3)SQL:结构化查询语言,是一门标准通用的语言。标准的sql适合于所有的数据库产品。SQL属于高级语言。SQL语句在执行的适合,也是先进行编译,然后再执行sq原创 2020-06-18 18:42:25 · 123 阅读 · 0 评论