mariadb 视图 事务 索引 外键】的更多相关文章

视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦   假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结构如下:          测试表:usera有id,name,age字段         测试表:userb有id,name,sex字段      这时如果php端使用sql语句:select * from user;那就会提示该表不存在,这时该如何解决呢.解决方案:创建视图.以下sql语句创…
视图   视图本质就是对查询的封装   创建视图(定义视图 起名以v_开头) create view v_students as select classes.name as c_name ,students.* from students inner join classes on students.cls_id=classes.id;   查看视图                select * from v_students;   删除视图 drop view v_students;  …
1.连接查询 --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name varchar(20) default '', age tinyint unsigned default 0, high decimal(5,2), gender enum('男', '女', '中性', '保密') default '保密', cls_id int unsigned default 0,…
一.连接查询 1)进入自己创建的zz数据库 2)创建学生表: create table students ( id int unsigned not null auto_increment primary key, name varchar() default '', age tinyint unsigned , high ,), gender enum('男', '女', '中性', '保密') default '保密', cls_id , is_delete bit ); 往学生表写入数据…
视图 1.定义 select 语句的结果集,是一张虚拟的表2.创建视图语句create view 视图名 as select语句3.查看视图show views;4.使用视图select * from 视图名5.删除视图drop view 视图名视图的作用方便操作 减少复杂的SQL语句,增强可读性 事务 应用场景: 银行的订单系统定义:是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单位四大特性:原子性一致性隔离性持久性 1.开启 begin2.插入数据 3.提交 comm…
本节所讲内容: 字段修饰符 清空表记录 索引 外键 视图 一:字段修饰符 (约束) 1:null和not null修饰符   我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) not null,pass varchar(20) not null); mysql> insert into worker values(1,'HA','123456'); mysql> insert into worke…
1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G   #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show databases' -uroot -p123456 mysqlshow -uroot -p123456 # 不常用,记住上面那个就行了 3.创建数据库语法 create database 数据库名; 例如: create database `HA-test`; 4. 切换数据库 use HA-te…
一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) not null,pass varchar(20) not null); mysql> insert into worker values(1,'HA','123456'); mysql> insert into worker values(1,'LB',null); ERROR 1048 (2…
目录 part1:数据类型 part2:约束 part3:主键索引 PRI &唯一索引 UNI &普通索引 MUL part4:外键:foreign key part5:在外键中设置联级删除和联级更新 part6:表和表之间的关系 part7:存储引擎 part8:关于约束的添加和删除 part1:数据类型 date YYYY-MM-DD 年月日 (结婚纪念日,节假日) time HH:MM:SS 时分秒 (体育竞赛) year YYYY 年份值 (历史,酒的年份) datetime YY…
1.以ATM引出DBMS2.MySQL -服务端 -客户端3.通信交流 -授权 -SQL语句 -数据库 create database db1 default charset=utf8; drop database db1; -数据表 create table tb2; create table tb1( id int not null auto_increment primary key, name char(10), department_id int, constraint fk_user…
为什么需要有视图 * 对于复杂的查询,往往是有多个数据表进行关联查询而得到,而这种语句往往比较复杂,也可能非常频繁的使用. 比如这样的SQL语句 select goods.name,goods_cates.name,goods_brands.name from goods join goods_cates on goods.cate_id = goods_cates.id join goods_brands on goods.brand_id = goods_brands.id; 为了简化用户复…
MySQL DBMS,MySQL的概念,数据库分类,以前MySQL的部署中的一些概念 #DBMS:数据库管理系统,用于管理数据库的大型软件.mysql就是dbms的一种 #Mysql:是用于管理文件的一个软件 #服务端软件 #socket服务端 #本地文件操作 #解析指令(sql语句) #客户端软件(各种各样) #socket客户端 #发送指令 #解析指令(sql语句) #除了mysql,还有其他类似软件: #语法大体上都是sql语句 #关系型数据库:sqllite,db2,Oracle,acc…
一个.背景 最初研究的相关内容数据库.仅仅是正式.从来没有练过,只能慢慢漂流,现在做的客房时,,非常多的知识需要使用视图,慢的实践. 视图:我理解的就是一张表.它把我们所须要的某个表或某几个表中的部分信息提取出来,形成了一张暂时的表. 它主要有两个长处:1.简单,它呈现给我们的数据就是我们想要的数据.没有多余的. 2.安全,提供给用户它们权限范围内的数据 我为什么会用到视图?举一个简单的样例,在查询用户信息时,我们可能会用到两张表中的内容.那么这个时候我就须要将两张表中我须要的数据提取出来形成一…
什么是主键.外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键. 比如: 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以学号和课程号的属性组是一个主键 成绩表中的学号不是成绩表的主键,但它和学生表中的…
--创建学生表 create table students ( id int unsigned not null auto_increment primary key, name varchar(20) default '', age tinyint unsigned default 0, high decimal(5,2), gender enum('男', '女', '中性', '保密') default '保密', cls_id int unsigned default 0, is_del…
视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结构如下:         测试表:usera有id,name,age字段         测试表:userb有id,name,sex字段     这时如果php端使用sql语句:select * from user;那就会提示该表不存在,这时该如何解决呢.解决方案:创建视图.以下sql语句创建视图:…
1.关联 1)连接查询(内关联) inner join ... on 两个表连接查询 select * from students inner join classes 查询能够对应班级的学生以及班级信息 select * from students inner join classes on students.cls_id=classes.id; 按照要求显示姓名,班级 select students.*, classes.name from students inner join class…
连接查询(两张表关联查询) 在sql语句中,- - 代表注释 内关联查询(查询两张表的交集) select * from 表1 inner join 表2 on 表1.id=表2.id(此处id是表1与表2相同的id); 内关联查询显示指定字段 select 表1.指定字段,表2.指定字段 from 表1 inner join 表2 on 表1.id=表2.id; 左关联:以左边表为基准,如果右边的表内的记录匹配不到,就显示NULL select *from students left join…
一.视图 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成.对其中所引用的基础表来说,视图的作用类似于筛选.定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图.通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少.视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据:简化操…
视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结构如下:         测试表:usera有id,name,age字段         测试表:userb有id,name,sex字段     这时如果php端使用sql语句:select * from user;那就会提示该表不存在,这时该如何解决呢.解决方案:创建视图.以下sql语句创建视图:…
sp_help Accounts_Users     其中Accounts_Users 表示表名 sp_columns Accounts_Users exec  sp_helpconstraint   '表名' 在数据库内创建的每个对象(约束.默认值.日志.规则.存储过程等)在表中占一行.只有在 tempdb 内,每个临时对象才在该表中占一行. sysobjects 表结构: 根据sysobjects 表格我们可以得到如下的查询: 1.获取所有表结构 select name as [表名] fr…
索引 索引相当于一本书的目录,在一个数据库或表有索引的情况下,会很便于查询数据,使查询更加效率,相对的也有缺点,不利于去修改,比较麻烦,有索引便于查询,那就意味着索引创建的越多越好么?然而并不是:索引越多,越不便于大量的修删改,反而会使数据库的性能下降:表里的数据如果大多数甚至只是是用来查询的话,那可以稍微的多创建几个索引以便于查询. 一.创建索引 &1 创建表 时 创建索引 create table create_index( id ) unique, age int,key (age) );…
MYSQL - 外键.约束.多表查询.子查询.视图.事务 关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生表引用过来,关系也是一条数据:根据范式要求应该存储学生的编号,而不是学生的姓名等其它信息 同理,科目表也是关系列,引用科目表中的数据 创建表的语句如下 create table scores( id int primary key auto_increment, stuid int, subid i…
事务 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行. 在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的.这特别适用于多用户同时操作的数据通信系统.例如:订票.银行.保险公司以及证券交易系统等. 如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库的永久组成部分,如果事务遇到错误且必须取消或回滚,则所有数据修改均会被清除. 开始事务 BEGIN TRANSACTION 提交事务 COMMIT TRANSACTION 回…
事务.视图.索引: 事务:当生活逻辑中的“一个步骤”,需要使用多条SQL去完成时,必须使用事务来确保其“完整性“. 视图:简化数据库结构,方便你编写SQL语句(简化SQL语句的编写) 索引:提高“数据检索效率” 事务: ---- 用于保证多条SQL语句的同步执行(要么一起全部执行成功,要么全部都回滚不执行) ---- 语法: Begin Transaction        (开始事务) {  多条SQL语句 } commit  Transaction    (提示事务) rollback  T…
第五章:事务.视图.索引.备份和恢复 5.1:事务 事务的概念:事务(transcation)是讲一系列数据操作捆绑成为一个整体进行统计管理. 如果某一事务执行成功了,则该事务进行操作的所有数据将会提交,如果数据在执行的时候遇到错误且必须取消或回滚,则数据将会全部恢复到操作之前的状态,所有的数据更改将被清除. 5.1.1:为什么需要事务 如果不用事务进行捆绑一些操作的话,在执行过程中有可能一条执行成功,中途发生错误,一些失败了,这样的话执行完之后的数据就有问题,所有我们要引入事务!! 我们有时候…
[索引] 帮助快速查询 MyISAM ,InnoDB支持btree索引 Memory 支持 btree和hash索引 存储引擎支持 每个表至少16个索引   总索引长度至少256字节   创建索引的优点: 1, 加快查询速度 2, 创建唯一索引来保证数据表中数据的唯一性 3,  实现数据的完整性 4, 实现数据的完整性,,加速表和表之间的连接, 5, 减少分组和排序的时间 索引的分类 1,唯一索引和普通索引 2,单列索引和组合索引最左前缀 3,全文索引 fulltext  在定义的索引的列上 可…
1.操作分类:  DML. DDL. DCL manipulation     definition   control 2.transction 事务 起始于DML,遇到 commit ,rollback语句自动commit提交. 正常断开时,自动提交:非正常断开时,自动回滚. 3.组合约束 e.g.   constraint stu_name_email_uni unique(name,email)   主键选择   stu                      (sno,sname)…
1.事务(Transaction): 事务是将一系列数据操作绑成一个整体进行统一管理. 如果一事务执行成功,则咋子该事务中进行的所有数据更改均会提交,称为数据库中的永久成部分. 如果事务执行是遇到错误且必须取消或回滚,则数据将全部恢复到操作前的状态,所有数据的更改均被清除. 定义: 事务是一种机制.一个操作序列,包含了一组数据库操作命令,并且把所欲的命令作为一个整体起向系统提交侧小操作请求,即这一组数据库命令要么都执行,要么都不执行.   Eg: 转账过程就是一个整体 它需要两条UPDATE语句…
事务 事务是作为单个逻辑工作单元执行的一系列操作,一个逻辑工作单元必须具备四个属性.即:原子性.一致性.隔离性.持久性,这些特性通常简称为ACID.   原子性(Atomicity) 事务是不可分割的工作逻辑单元 多个操作作为一个整体向系统提交,要么都执行,要么都不执行. 一致性(Consistency) 当事务完成时,数据处于一致状态. 隔离性(Isolation) 并发事务之间彼此隔离.独立,它不应以任何方式依赖于或影响其他事务. 持久性(Durability) 事务完成后,它对数据库的修改…