字符集,索引,视图,存储过程函数,变量,条件,光标,流程,事件,触发器

/*********************字符集(character)与校对规则(collation)****************************/

说明:字符集用来定义MySQL存储字符串的方式,校对规则用来定义比较字符串的方式;MySQL支持不同服务器,不同数据库,不同的表,不同的字段指定不同的字符集;一种字符集可以对应多种校对规则

创建对象时指定字符集,校对规则可以查看help craete object;

查看所有可用字符集:

show character set;

desc information_schema.character_sets

查看系统的校对规则:

show collation like ‘****‘

desc information_schema.collations;

服务器字符集,校对规则(没有指定字符集则使用默认字符集,没有指定校对规则则使用字符集默认的校对规则)

查询服务器字符集:show variables like ‘character_set_server‘;

查询服务器校对规则:show variables like ‘collation_server‘;

数据库字符集,校对规则

查询数据库字符集:show variables like ‘character_set_database‘;

查询数据库校对规则:show variables like ‘collation_database‘;

表字符集,校对规则

show create table tablename \G;

/**********************索引*******************************/

创建索引:create [unique|fulltext|spatial]index index_name

[using index_type]

on table_name(index_col_name)

index_col_name:

col_name[(length)][ASC|DESC]

删除索引:drop index index_name on table_name;

/************************视图*******************************/

视图:一种虚拟存在的表

创建视图:

create [or replace] [algorithm={undefined|merge|temptable}]

view view_name[(column_list)]

as select_statement

[with[cascaded|local]check option]

修改示图:

alter [algorithm={undefined|merge|temptable}]

view view_name[(column_list)]

as select_statement

[with[cascaded|local]check option]

删除视图:

drop view[if exit] view_name[,view_name]...[restrict|caseade]

查看视图:

show tables;

show table status like ‘****‘;

show create view view_name;

desc information_schema.views;

/************************存储过程和函数****************************/

存储过程和函数:一段SQL语句的集合,区别在于函数必须有返回值,参数只能为IN类型;而存储过程没有返回值,参数可以是IN,OUT,INOUT

创建:

create procedure sp_name([proc_parameter][....])

[characteristic...]routine_body

create function sp_name([func_parameter][....])

returns type

[characteristic...]routine_body

proc_parameter:

[in|out|inout]param_name type

func_parameter:

para_name type

type:

any valid mysql data type

修改:

alter {procedure|function} sp_name [characteristic...]

调用:

call sp_name([parameter][....])

删除:

drop {procedure|function}[if exit] sp_name

查看:

show {procedure|function} status [like ‘***‘]

show create {procedure|function} sp_name

/******************变量的使用***********************/

定义:

declare var_name[,...] type [default value];

赋值:

set var_name=exp[,var_name=epx]...

select col_name[,...] into var_name[,...]table_expr  //查询赋值

/********************定义条件和处理**********************/

定义条件:

declare condition_name condition for condition_value;

condition_value:

sqlstate[value]sqlstate_value|mysql_error_code

定义条件处理:

declare handler_type handler for condition_value[,...] sp_statement;

hadler_type:

continue|EXIT|UNDO

condition_value:

/*****************光标的使用*************************/

申明光标:

declare cursor_name cursor for select_name

打开光标:

open cuesor_name

操作光标:

fetch cuesor_name into var_value [,var_name]...

关闭光标:

close cursor_name

/******************流程控制***********************/

if search_condition then statement_list

[elseif search_condition then statement_list]...

[else statement_list]

endif

/*****************/

case case_value

when when_value then statement_list

[when search_condition then statement_list]

[else statement_list]

end case

/*****************/

case

when search_condition then statement_list

[when search_condition then statement_list]

[else sattement_list]

end case

/*****************/

[begin_label:]loop

statement_list

end loop[end_label]

/*****************/

退出循环leave/iterate

/*****************/

[begin_label:]repeat

statement_list

until search_condition

end repeat[end_label]

/*****************/

[begin_label:]while search_condition do

statement_list

end while[end_label]

/******************事件调度器*****************/

说明:按自定义的时间周期触发某种操作

create event event_name

on schedule at current_timestamp+interval 1 hour

do

/**************触发器**********************/

创建:

create trigger trigger_name trigger_event

on table_name for each trigger_stmt

删除:

drop trigger[schema_name]trigger_name

查看:

show triggers  \G;

时间: 2024-10-09 03:14:29

字符集,索引,视图,存储过程函数,变量,条件,光标,流程,事件,触发器的相关文章

物化视图,索引视图,函数索引,创建索引时使用DESC

老板交给的一个任务,搜了一下资料,觉得还是总结一下比较好.假如以后用到了呢?围绕两个主题:一是视图上能够建索引,二是在创建索引时是否可以使用DESC关键字. 一.能否在视图上创建索引 因为普通的视图并没有存储实际的信息,它所操作的数据来自于基本表,所以在普通视图上不可以创建索引. 在oracle中执行如下的语句,会报"视图不适用于此处"的错误 create view test_car as select license from cars; create index index_vew

SqlServer更新视图存储过程函数脚本

--视图.存储过程.函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FOR SELECT NAME FROM DBO.SYSOBJECTS     WHERE NAME NOT IN ('SYSCONSTRAINTS','SYSSEGMENTS')         AND         (             OBJECTPRO

视图 触发器 存储过程 函数 流程过程 索引 慢查询

视图 触发器 存储过程 函数 流程过程 索引 慢查询 视图 触发器 事务 存储过程 内置函数 流程控制 索引 视图 1.什么是视图 ? 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 ? 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; 强调

Mysql学习---视图/触发器/存储过程/函数/索引 180101

视图 视图: 视图是一个虚拟表(非真实存在),动态获取数据,仅仅能做查询操作 本质:[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用.由于视图是虚拟表,所以无法使用其对真实表进行创建.更新和删除操作,PyMysql是支持视图的. 仅能做查询用. 创建视图: create VIEW stu as select * from student; # 这里只是建立了一个对应关系,视图是虚表,动态获取数据 select * from stu;

Mysql之视图 触发器 事务 存储过程 函数

视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> se

MySQL-视图-触发器-事务-存储过程-函数-流程控制-索引与慢查询优化-06

目录 视图*** 什么是视图 为什么要用视图 如何生成视图 修改视图 --> 最好(千万)不要 关联表数据改动前 关联表数据改动之后 触发器 什么是触发器 触发条件 触发器语法结构 修改mysql的默认结束符(;) 触发器死循环 六个触发器的执行时机 新增前.新增后.删除前.删除后.更新前.更新后 NEW对象指代的就是当前记录(对象) 事务 ***** 什么是事务 事务的四大特性 ACID A:原子性 atomicity C:一致性 consistency I:隔离性 isolation D:持

视图、索引、存储过程

视图——相对应的是表查询结果.表——真正存储数据的地方.视图——不存数据,展示查询的结果. 视图就是为了查询数据方便.一般不要试图向视图中插入数据,容易出错.视图可以由一个表生成,也可以由多个表生成,还可以由表各视图生成新的视图. 掌握:1.视图是个什么东西?2.会建视图,会查视图3.知道视图的主要功能是查询,不是增删除改. 索引:为了提高查询效率.簇索引,非簇索引 1.数据的默认存储次序跟簇索引的次序一样的.一个表中只有能有一个簇索引.2.非簇索引是单独放置的,查询的时候,先查非族索引,再跟据

MSSQL 事务,视图,索引,存储过程,触发器

事务 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行. 在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的.这特别适用于多用户同时操作的数据通信系统.例如:订票.银行.保险公司以及证券交易系统等. 如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库的永久组成部分,如果事务遇到错误且必须取消或回滚,则所有数据修改均会被清除. 开始事务 BEGIN TRANSACTION 提交事务 COMMIT TRANSACTION 回

数据库索引,存储过程,视图,事务

一,索引索引是一个独立的,物理的数据库结构,可以快速找到表或视图的信息通常情况下只有需要经常查询索引列中的数据时才在表上创建索引基本语法:CREATE INDEX StockIndexON appSchema.StockEvents (StockSymbol);创建唯一索引:Create unique index 索引名称On 表名(字段1,字段2)聚集索引:clustered 每个键值只有一个聚集索引非聚集索引noclustered:索引的键值包含指向表中记录存储位置的指针,不对表中数据排序聚

Java学习总结(十八)——MySQL数据库(4)MySQL数据库中的视图,函数,存储过程中常见循环

一.MySQL存储过程中常见的循环1.while循环:WHILE.....DO.....END WHILE例1:创建存储过程(求1+2+.......+num的和):创建成功,进行调用:显示结果:2.REPEAT循环: REPEAT.........UNTLL END REPEAT例2:创建存储过程:创建完成,调用存储过程:显示结果:3.LOOP循环:LOOP END LOOP 例3:创建存储过程:创建成功,调用存储过程:显示结果:二.MySQL中的视图1.概念:有结构(有行有列),但没有结果(