首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库对象

索引 :用于提高查询性能,相当于书索引 存储过程 : 用于完成一次完整业务处理,没有返回,但是可通过传出参数将多个传给调用环境 存储函数 : 用于完成一次特定计算,具有返回 触发器 :...存储过程与存储函数 **概念: ** - 存储过程 : **用于完成一次完整业务处理**,没有返回,但是可通过传出参数将多个传给调用环境 - 存储函数 : **用于完成一次特定计算**,具有返回...属性上约束具体由三种 列(NOT NULL) 列唯一(UNIQUE) 检查列是否满足某一条件表达式(CHECK短语) CREATE TABLE student( # 非...[FOR EACH ROW]:指定触发器执行方式,对于每一数据是否执行一次。 [WHEN condition]:指定触发器执行条件,如果条件不满足,则触发器不会执行。...: 触发器执行是由出发事件激活,并由数据库服务器自动执行

9910
您找到你想要的搜索结果了吗?
是的
没有找到

盘点MySQL数据库数据类型、库和表常见操作、索引、视图、函数等知识点

从表 ADD CONSTRAINT 外键(形如:FK_从表_主表) FOREIGN KEY 从表(外键字段) REFERENCES 主表(主键字段); 删除主键约束:alter TABLE 表名 DROP...,xn) 返回集合中最小 LN(X) 返回x自然对数 LOG(X,Y)返回x以y为底对数 MOD(X,Y)返回x/y模(余数) PI()返回pi(圆周率) RAND()返回0到1内随机...个数 MIN(col)返回指定列最小 MAX(col)返回指定列最大 SUM(col)返回指定列所有之和 GROUP_CONCAT(col) 返回由属于一组连接组合而成结果...(相当于MS SQLINSERTED), OLD表示将要删除(相当于MS SQLDELETED)。...FROM ordertotals; # 删除ordertotals表中所有 SELECT * FROM ordertotals; # 查看ordertotals表显示 为 ROLLBACK

1.6K30

PHP第三节

字段约束 字段约束: 字段数据属性规则(特征) not null 不为 可以限制字段不能为 default 默认, 可以设置字段默认,在没有录入时自动使用默认填充。...primary key 主键 :唯一标识,不能重复,不能为 设置字段为主键,主键字段不能重复,不能为。而且一个数据表中只能设置一个字段为主键,作为每行记录唯一身份信息(索引)。...unique key 不能重复 唯一键,设置字段为唯一,可以设置多个字段为唯一键。唯一键字段可以为。...需要添加限定条件,只返回需要。...- 查询满足条件数据总条数 select count(*) from table where 条件 limit 子句 返回查找结果中前 n select 字段列表 from table limit

1.6K10

珍藏 | Java 岗位 【数据库】 面试题及答案详解

· 唯一 · 主、外键 · 不为 · 表之间关联字段 · 查询比较频繁字段 6:索引类型有哪些?...· 建索引 · 减少表之间关联 · 优化sql,不要让sql做全表查询 · 简化查询字段,没用字段不要,已经对返回结果控制,尽量返回少量数据 · 尽量用PreparedStatement来查询...· UNION在进行表链接后会筛选掉重复记录,所以在表链接后会对所产生结果集进行排序运算,删除重复记录再返回结果。...- Delete语句:删除数据表中一条或多条记录,也可以删除数据表中所有记录,但是它操作对象仍是记录。 - Update语句:用于修改存在表中记录内容。...DELETE 语句相同:二者均删除表中全部

3.4K20

SQL命令 DELETE(一)

删除操作将%ROWCOUNT局部变量设置为删除行数,并将%ROWID局部变量设置为删除最后一RowID。...要从表中删除所有,只需指定: DELETE FROM tablename 或 DELETE tablename 这将从表中删除所有行数据,但不会重置RowID、Identity、流字段OID和序列(...TRUNCATE TABLE不拉取删除触发器。 更常见情况是,删除指定基于条件表达式特定(或多行)删除。默认情况下,删除操作遍历表所有,并删除满足条件表达式所有。...要如果该字段存在,但没有一个字段满足DELETE命令WHERE子句,则不会影响任何,并发出SQLCODE 100(数据结束)。 不能将该表定义为READONLY。...失败删除操作可能会使数据库处于不一致状态,其中一些指定删除,另一些未删除

2.6K20

MySQL执行计划(explain)分析

如对主键或是唯一索引查询,效率最高联接方式 eqref: 唯一索引或主键查找,对于每个索引键,表中只有一条记录与之匹配 ref:非唯一索引查找,返回匹配某个单独所有。...,但不一定会被使用 KEY列 查询优化器优化查询实际所使用索引 如果没有可用索引,则显示为NULL 如查询使用了覆盖索引,则该索引仅出现在Key列中 KEY_LEN列 表示索引字段最大可能长度 长度由字段定义计算而来...列 表示返回结果行数占需读取行数百分比 FILTERED列越大越好 依赖于统计信息 - 执行计划限制 无法展示存储过程,触发器,UDF对查询影响 无法使用EXPLAIN对存储过程进行分析 早期版本...业务场景:删除评论表中对同一订单同一商品重复评论,只保留最早一条。...`customer_id` 捕获有问题SQL-慢查日志 启动MySQL慢查日志 set global show_query_log_file = /sql_log/show_log.log set

92940

Mysql数据库基础知识总结,结构分明,内容详细

SELECT DISTINCT department_id FROM employees; 去除重复 值参与运算: 所有运算符或列值遇到null,运算结果都为null 着重号:...b.单行函数 操作数据对象 接受参数返回一个结果 只对一进行变换 每行返回一个结果 可以嵌套 参数可以是一列或一个 数值函数 基本函数 举例 SELECT ABS(-123),...从系统架构层次上看,MySQL 数据库系统从大到小依次是 数据库服务器 、 数据库 、 数据表 、数 据表 与列 。...字段字段类型 【FIRST|AFTER 字段名】; 修改一个列 可以修改列数据类型,长度、默认和位置 修改字段数据类型、长度、默认、位置语法格式如下: ALTER TABLE 表名...:可以作用在多个列上,不与列一起,而是单独定义 根据约束起作用,约束可分为: NOT NULL 非约束,规定某个字段不能为 UNIQUE 唯一约束,规定某个字段在整个表中是唯一

51730

MySQL基础及原理

为什么需要触发器 触发器概述 创建触发器 查看、删除触发器 查看触发器 删除触发器 触发器优缺点 优点 缺点 注意点 二十四、 MySQL其他新特性 MySQL新特性 MySQL 8.0 移除旧特性...操作数据对象 接收一个参数,返回一个结果 只对一进行变换 每行返回一个结果 可以嵌套 参数可以是一个字段,或一个 数值函数 基本函数 函数 用法 ABS(x) 返回x绝对 SIGN(X) 返回X...,你还保留非约束,那么在加默认约束时,还得保留非约束,否则非约束就被删除了 同理,在给某个字段加非约束也一样,如果这个字段原来有默认约束, 你想保留,也要在modify语句中保留默认约束,...;删除默认约束,也不保留非约束 alter table 表名称 modify 字段名 数据类型 not null; 删除默认约束,保留非约束 示例: alter table employee...删除tel字段默认约束,保留非约束 关于默认面试题 面试1、为什么建表时,加 not null default ‘’ 或 default 0?

3.7K20

SQL命令 CREATE TRIGGER(二)

对于INSERT,返回插入。 对于DELETE,返回删除字段。 {fieldname*O} 对于UPDATE,返回进行指定更改之前字段。 对于INSERT,返回NULL。...对于DELETE,返回删除字段。 {fieldname*C} 对于UPDATE,如果新与旧不同,则返回1(TRUE),否则返回0(FALSE)。...对于UPDATE、INSERT或DELETE,{fieldname}返回与{fieldname*N}相同。 例如,以下触发器返回插入到Sample.Employee中Name字段。...触发器插入数据表名称、删除RowId、当前日期和执行操作类型(%oper特殊变量),在本例中为“DELETE”: ClassMethod CreateTrigger() { &sql(...A') BEGIN INSERT INTO Log_Table VALUES (new_row.Category); END 以下示例定义在Sample.Employee中插入、更新或删除返回旧名称字段和新名称字段触发器

1.6K20

MySQL学习笔记-进阶部分

else vnend [as 字段别名]  如果表达式expr等于e1,返回v1;如果等于e2,则返回e2。否则返回vn。...而存储过程限制就相对比较少,要实现功能比较复杂一些。(2)返回不同自定义函数必须向调用者返回一个结果,且仅有一个结果。...触发器可被设置成在这几种语句处理每个数据之前或之后触发。以下是触发器优点:(1)触发器可以检查或修改将被插入或用来更新数据新数据。...(2)触发器可以把表达式结果赋值给数据列作为其默认。这使开发者可以绕开数据列定义中默认必须是常数限制。(3)触发器可以在删除 或修改数据之前先检查它的当前内容。...','男',0,'删除',0,'删除');end$$delimiter ;报错1:创建这个触发器时会报错:‘Error Code: 1415.

21810

使用触发器

这是因为InterSystems IRIS在字段(属性)验证代码之后执行触发代码。 例如,触发器不能将LastModified字段设置为正在处理中的当前时间戳。...但是,触发器代码可以对表中字段发出更新。 更新执行自己字段验证。...可以使用以下语法测试字段是否被更改(更新): {fieldname*C} 其中,fieldname是字段名称,星号后面的字符是字母“C”(表示更改)。...然而,如果SQL语句确实插入/更新了stream属性,{stream *O}仍然是OID,但{stream *N}被设置为以下之一: 在触发器之前,将流字段以传递给更新或插入任何格式返回。...对于DML命令成功插入、更新或删除每一,都会拉取一/对象触发器

1.7K10

学习SQLite之路(三)

,不返回任何重复。...SQLite NULL: SQLite NULL 是用来表示一个缺失项。表中一个 NULL 是在字段中显示为空白一个。 带有 NULL 字段是一个不带有字段。...NULL 与零或包含空格字段是不同,理解这点是非常重要。 (1)带有 NULL 字段在记录创建时候可以保留为。...WHEN 子句和触发器(Trigger)动作可能访问使用表单 NEW.column-name 和 OLD.column-name 引用插入、删除或更新元素,其中 column-name 是从与触发器关联名称...BEFORE 或 AFTER 关键字决定何时执行触发器动作,决定是在关联行插入、修改或删除之前或者之后执行触发器动作。 当触发器相关联删除时,自动删除触发器(Trigger)。

2.9K70

数据库概念相关

触发器分为事前触发和事后触发区别。语句级触发和级触发有何区别? 事前触发器运行于触发事件发生之前,通常可以获取事件之前和新字段 事后触发器运行于触发事件发生之后。...语句级触发器可以在语句执行前或后执行, 级触发在触发器所影响每一触发一次 7. 视图是什么?游标是什么?...推荐方案:用NOT EXISTS 方案代替 ③.IS NULL 或IS NOT NULL操作(判断字段是否为) 判断字段是否为一般是不会应用索引,因为索引是不索引。...推荐方案:用其它相同功能操作运算代替,如:a is not null 改为 a>0 或a>’’等。不允许字段,而用一个缺省代替,如申请中状态字段不允许为,缺省为申请。...⑥.UNION操作符 UNION在进行表链接后会筛选掉重复记录,所以在表链接后会对所产生结果集进行排序运算,删除重复记录再返回结果。

1.6K110

PHP-Mysqli_query()连接数据库

返回 mysql_query()仅对SELECT | SHOW | EXPLAIN | DESCRIBE语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。...非 FALSE 返回意味着查询是合法并能够被服务器执行。这并不说明任何有关影响到返回行数。很有可能一条查询执行成功了但并未影响到或并未返回任何。...结果集 fetch_array() : 返回结果集作为数组,两种数组索引都行 fetch_object(): 返回结果集作为对象 fetch_row() : 返回结果集作为枚举数组,只能使用数字索引...fetch_assoc() : 返回结果集作为关联数组,只能是关联数组索引形式 Mysqli_connect连接 $server = "localhost"; $username = "da1sy...$seq.";");//提取num字段内容 $num = $num->fetch_array(); $num = $num['1'];//以数组形式展现某字段

2.7K20

数据库工程师常见面试题

答: Delete 命令用来删除全部或者一部分数据,执行 delete 之后,用户需要提交(commmit)或者 回滚(rollback) transaction 来执行删除或者撤销删除, delete...Drop 命令从数据库中删除表,所有的数据,索引和权限也会被删除,所有的 DML 触发器也不会被 触发,这个命令也不能回滚。 问题 3: 简述数据库设计过程。...如果要在 INSERT 操作中省略某些字段,这些字段需要 满足一定条件:该列定义为允许;或者表定义时给出默认,如果不给出,将使用默认。...答: 自定义函数可以接受零个或多个输入参数,其返回可以是一个数值,也可以是一个表,但是自 定义函数不支持输出参数。 问题 23: 为什么要及时删除不用触发器?...因此,要将不再使用触发器及时删除。 问题 24: 什么是唯一索引?答:唯一索引可以确保索引列不包含重复。在多列唯一索引情况下,该索引可以确保索引列中每 个组合都是唯一

3K40

3. SQL 与 MySQL 基础

分号是在数据库系统中分隔每条 SQL 语句标准方法,这样就可以在对服务器相同请求中执行一条以上 SQL 语句。 逗号通常用来分隔列名或表达式、或子查询等元素。...:NOT NULL/NULL。...例如: 在 MySQL 中给 Course 表增加一列,字段名为 Ctype(课程类型),类型为 CHAR,长度为10,允许为: ALTER TABLE Course ADD Ctype CHAR...; LEFT JOIN:即使右表中没有匹配,也从左表返回所有的; RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的; FULL JOIN:只要其中一个表中存在匹配,则返回。...通过下面的命令来查看触发器: SHOW TRIGGERS 删除触发器: DROP TRIGGER 触发器名称 ---- 事务 ---- 概念: SQL 事务(Transaction)是一组数据库操作逻辑单元

1.8K20

MySQL命令,一篇文章替你全部搞定

(3)如果有NULL,将NULL作为一个分组进行返回,如果有多行NULL,它们将分为一组 嵌套其他查询中查询,称之为子查询。...如果存储过程中没有参数的话,就用圆括号表示即可,CALL ordertotal(); 删除存储过程 删除存储过程,可以使用DROP PROCEDURE子句。...创建一个INSERT触发器,每次插入一数据,每次会返回当前插入行数据id。...,需要知道以下两点: 在DELETE触发器代码内,可以引用一个名为OLD虚拟表,来访问被删除; OLD表中数据只能读,不能被更新,而在INSERT触发器中,就可以通过NEW来更新被插入行数据;...例如,针对customers表,当删除数据时,返回删除数据cust_id以及cust_name: 基本上与创建INSERT触发器一样,只不过在DELETE触发器中只能使用OLD来访问被删除行数据

2.6K20

mysql表设计规范

存储字符串长度几乎相等,使用char定长字符串类型varchar可变长度字符串,长度不要超过5000如果存储太大,将字段类型修改为text,同时单独一张表,用主键与之对应选择合适字段长度优化数据存储空间...优先考虑逻辑删除,而不是物理删除物理删除数据恢复困难物理删除会使主键不再连续核心业务表数据不建议做物理删除每个表都需要通用字段不一样通用字段英文不一样叫法,但是都是规范中建议id...尽可能使用 not null定义字段字段设置成空字符串或者常量值not null防止出现指针问题null存储也需要额外空间,导致比较运算更为复杂,是优化器难以优化sqlnull可能会导致索引失效设计索引有查询条件字段...每次delete、update都必须考虑外键约束分库分表不能使用不建议使用存储过程、触发器存储过程:预编译为一个可执行过程一个或多个sql语句触发器:一段代码,当触发某个事件时,自动执行这些代码可以用数据库中相关联表实现级联修改实现监控某张表中某个字段改变而需要做出相应处理生成某些业务编号滥用造成数据库和应用程序维护困难...where子句中使用or来连接条件优化limit深度分页问题where条件限定要查询数据,避免返回多余避免在where子句中对字段进行表达式操作对索引优化,应考虑在where及order by涉及列加索引插入数据过多

21030
领券