mysql基础(一)——表、索引、视图
SQL语句不区分大小写
创建数据库
create database myData
删除数据库
drop database myData
创建表
create table company (
code int(6) PRIMARY KEY,
name varchar(20) NOT NULL
); create table mybook(
id int auto_increment primary key,
bookId varchar(20),
bookName varchar(20),
bookType int(5),
companyNo int(6),
foreign key (companyNo) references company (code)
);
表中新增一列
alter table company add column country varchar(20);
删除主键
主键不自增 alter table company drop primary key;
如果主键自增的话需要先改变自增 例如:删除图书表的主键
1.alter table mybook change id id int;
恢复主键自增:alter table mybook change id id int auto_increment
2.alter table mybook drop primary key;
增加主键
alter table company add primary key(id);
查看索引
show index from mybook;
或者
show keys from mybook;
创建索引
create index myIndex on company(code);
create unique index myIndex on company(code)
CREATE INDEX可对表增加普通索引或UNIQUE索引。不能用CREATE INDEX语句创建PRIMARY KEY索引。
alter table company add index myIndex(code); alter table company add unique (code); alter table company add primary key(code);
索引类型:
1.PRIMARY KEY (主键索引) alter table table_name add primary key ( `column` )
2.UNIQUE 或 UNIQUE KEY (唯一索引) alter table table_name add unique (`column`)
3.FULLTEXT (全文索引) alter table table_name add fulltext (`column` )
4.INDEX (普通索引) alter table table_name add index index_name ( `column` )
5.复合索引 (多列索引) alter table `table_name` add index index_name ( `column1`, `column2`, `column3` )
我们创建了(a1, b2,c3)的复合索引,那么其实相当于创建了(a1,b2,c3)、(a1,b2)、(a1)三个索引,这被称为最佳左前缀特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。
删除索引
drop index myIndex on company;
alter table company drop index myIndex ; alter table company drop primary key ;
创建视图
create view myView as select b.bookid,a.name,b.bookname from company a,mybook b where b.companyNo=a.code 视图相对于普通的表的优势主要包括以下几项:
<1> 简单:使用视图的用户完全不需要关心视图中的数据是通过什么查询得到的,视图中的数据对用户来说已经是过滤好的符合条件的结果集;
<2> 安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行或某个列,但是通过视图就可以简答地实现;
<3> 数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,原表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。
删除视图
drop view myView 视图的限制:
<1> 不能在视图上创建索引
<2> 在视图的FROM子句中不能使用子查询; 变通:可以将from字句的子查询创建成一个视图 最后变成 create view newView from tableA,oldView where... 其中oldView就是原始from中子查询
查看视图
show tables 查看视图的定义:
show create view myview;
更改视图
alter view mybiew as select_statement
mysql基础(一)——表、索引、视图的更多相关文章
- MySQL基础(4) | 视图
MySQL基础(4) | 视图 基本语法 1.创建 CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下. <视图名>:指定视图的名称.该名 ...
- MySQL基础(五)——视图
MySQL基础(五)--视图
- mysql基础-数据库表的管理-记录(四)
0x01 MySQL中字符大小写 1.SQL关键字及函数不区分大小写 2.数据库.表及视图名称的大小写区分与否取决于底层OS及FS 3.存储过程.存储函数及事件调度器的名字不区分大小写,但触发器区分大 ...
- 总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法
1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show ...
- mysql查看数据表索引信息
查看索引 mysql> show index from tblname; mysql> show keys from tblname; · Table 表的名称. · Non_unique ...
- oracle中查询用户表/索引/视图创建语句
不多说,直接上干货 1.查询当前用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future') from dual; 2.查询其他用户下表的创建 ...
- mysql基础-数据库表简单查询-记录(五)
0x01 MySQL的查询操作 单表查询:简单查询 多表查询:连续查询 联合查询 选择和投影 投影:挑选要符合的字段 select ...
- MySQL基础学习之索引
创建新表新索引 CREATE TABLE 表名(数据名 类型,INDEX 索引名称(属性)) 创建存在表的索引 CREATE INDEX 索引名称 ON 表名(属性) 修改索引 ALTER TAB ...
- MySQL基础之表的管理
添加和删除字段操作 添加字段 alter table tbl_name add 字段名称 字段属性 [完整性约束条件] [first|after 字段名称之后]; 删除字段 alter table t ...
- 【MySQL基础总结】索引的使用
索引的使用 概述 1.索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度 2.索引的优点是可以提高检索数据的速度 3.缺点是创建和维护索引需要耗费时间 4.所以索引可以提高查询速度,减 ...
随机推荐
- LeetCode 题解之 Two Sum
1.题目描述 2.问题分析 使用hashTable 寻找,target - num[i] ,将时间复杂度降低到 O(n): 3.代码 vector<int> twoSum(vector ...
- Ehcache缓存配置和基本使用
前言 在java项目广泛的使用中.它是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案. 正因为Ehcache具有健壮性(基于java开发).被认证(具有apache ...
- 建站相关-github+hexo, Markdown
sunwhut的博客写的tutorial非常详细,参照该文一步步来会很顺利. 以后有时间也可以鼓捣一下Django. hexo: 使用了上面博客推荐的NexT主题.NexT主题配置方式见此文. hex ...
- 转:jQuery选择器大全(48个代码片段+21幅图演示)
选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器的理解,它们本身用法就非常简单,我更希望的是它能够提升个人编写 ...
- 移动端真机调试抓包,fiddler web debugger
小白一枚,在公司大神指导下加之找了好多资料才勉强将fiddler的使用摸透,果然很好用. 一.设置手机 二.设置fiddler
- 作为一名GIS从业人员,这些网站你应该关注
前言:今年工作的第二年,端午节后,入职新公司.总算是回归本行,从事GIS相关工作.这个系列算是对在公司工作和学习成长的记录吧. 数据篇: 作为遥感的商业应用,首先考虑的是遥感数据的产品化. ...
- MySql详解(一)
MySql详解(一) 作为一名Java开发人员,数据库的地位不用多说了.从大学时期的SqlServer,到现在最流行的MySql和Oracle.前者随着阿里巴巴的去IOE化,在互联网公司中的使用比例是 ...
- BZOJ 1834 网络扩容 最大流+最小费用流
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1834 题目大意: 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是 ...
- 【转】Android实战技巧之四十九:Usb通信之USB Host
零 USB背景知识 USB是一种数据通信方式,也是一种数据总线,而且是最复杂的总线之一. 硬件上,它是用插头连接.一边是公头(plug),一边是母头(receptacle).例如,PC上的插座就是母头 ...
- PHP 使用 jwt 方式用户身份认证
封装类 // +---------------------------------------------------------------------- // | Created by PhpSt ...