视图是一种通过查询语句构建的虚拟表,它并不真正存储数据,它的数据来源于创建视图的基础表。 语法 创建视图 CREATE [OR REPLACE] VIEW 视图名称(列名列表) AS SELECT语句 [WITH[CASCADED|LOCAL] CHECK OPTION] 示例: mysql> create view student_v_1 as -> select id,name from student where id<10; 查询视图 查看视图创建语句: mysql> show …
视图是一种通过查询语句构建的虚拟表,它并不真正存储数据,它的数据来源于创建视图的基础表。 语法 创建视图 CREATE [OR REPLACE] VIEW 视图名称(列名列表) AS SELECT语句 [WITH[CASCADED|LOCAL] CHECK OPTION] 示例: mysql> create view student_v_1 as -> select id,name from student where id<10; 查询视图 查看视图创建语句: mysql> show …
插入数据 一次性需要插入多条数据时,可以通过以下途径改善性能: 采用批量插入,单次插入500~1000条数据。 手动提交事务。 主键顺序插入。 如果有大量数据需要插入,可以使用 load 命令。 使用 load 命令时,mysql 客户端需要使用--local-infile参数进行连接: mysql --local-infile -u root -p 需要查看是否开启了相应的参数: select @@local_infile; 如果没有开启,开启: set global local_infile = 1; 创建用于…
索引(index)是一种帮助 MySQL 快速定位数据的数据结构(有序)。 优点: 提高数据检索效率,降低磁盘 IO 成本。 对索引数据进行排序可以避免 CPU 的额外开销。 缺点: 索引需要占用磁盘空间。 会降低数据的更新效率。 MySQL 的索引在存储引擎层实现,不同的存储引擎可能使用不同的索引结构,主要包含以下几种实现: 索引结构 描述 B+tree 索引 最常见的索引类型,大部分引擎都支持 Hash 索引 底层通过 hash 表实现,只能精确匹配,不支持范围查询 R-tree(空间索引) MyISAM 引擎…
体系结构 MySQL 的架构图: 主要分为以下几部分: 连接层 服务层 引擎层 存储层 存储引擎 存储引擎是存储数据、建立索引、更新/查询数据的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称作表类型。 查看任意一张表的建表语句: show create table account; 结果可能类似: CREATE TABLE `account` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` varchar(10) DEFAUL…
案例 先看一个案例,假设有一个银行账户表: create table account( id int auto_increment primary key comment '主键ID', name varchar(10) comment '姓名', money int comment '余额' ) comment '账户表'; insert into account(id, name, money) VALUES (null,'张三',2000),(null,'李四',2000); 张三和李四的初始资金…
表与表的关系 一对多/多对一关系 典型的一对多关系是部门表和员工表之间的关系,一个员工只能有一个部门,一个部门可以有多个员工: 这种关系体现在员工表(emp)通过一个外键(dept_id)关联部门表(dept)。 可以在 DataGrip 中通过表结构右键->图->显示图查看表之间的关联关系图表。 多对多关系 典型的多对多关系是学生选课,一个学生可以选择多门课程,一个课程也可以被多个学生选择: 通过表示关联关系的学生-课程表(student_course)将学生表(student)和课程表(course…
MySQL 包含以下字段约束: 约束 描述 关键字 非空约束 数据不能为null NOT NULL 唯一约束 字段的值唯一,不能重复 UNIQUE 主键约束 唯一确定表中的一行数据 PRIMARY KEY 默认约束 保存数据时,如果未指定,使用默认值 DEFAULT 检查约束(8.0.16版本之后) 保证插入数据时满足约束条件 CHECK 外键约束 保证两张表数据关联的一致性和完整性 FOREIGN KEY 假设有一个建表需求: 字段名 字段含义 字段类型 约束条件 约束关键字 id ID唯一标识 int 主键,且…
字符串函数 函数 功能 CONCAT(S1,S2...Sn) 字符串拼接,将S1,S2,...Sn拼接成一个字符串 LOWER(str) 将字符串str全部转为小写 UPPER(str) 将字符串str全部转为大写 LPAD(str,n,pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 RPAD(str,n,pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度 TRIM(str) 去掉字符串头部和尾部的空格 SUBSTRING(str,start,len) 返回字符串…
SQL 的类型有以下几种: 使用命令行客户端连接数据库: ❯ mysql -u root -p DDL 查看所有数据库: show databases; 选中数据库: use test; 查看当前选中的数据库: select database(); 创建数据库: create database if not exists test2 default charset utf8mb4; 删除数据库: drop database if exists test2; 查询当前数据库的表: show tables; 查看表的基…
利用事件进行解耦 利用事件框架可以增加代码的灵活性和降低耦合性。看一个示例: System.out.println("do some business."); System.out.println("send email."); System.out.println("send sms."); 需要在完成一段业务逻辑后发送电子邮件和短信,现在业务代码和发送短信及电邮是耦合在一起的。 创建一个表示业务完成的事件类: static class AfterDoSomethingEvent extends Applicat…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang