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.所以索引可以提高查询速度,减 ...
随机推荐
- webstorm使用过程中的一些问题与技巧
这一篇会随着使用逐渐更新: 1. 问题:string templates are not supported by current javascript version 解决 : setting &g ...
- Python3 sqlacodegen 根据已有数据库生成 ORM 使用的 model.py
pip install sqlacodegen pip install pymysql sqlacodegen mysql+pymysql://username:password@127.0.0.1: ...
- Mysql使用优化之处(转)
1 开启事务之前需要rollback 连接句柄.(清理垃圾)2 mysql_ping 失败,程序需要处理重连逻辑:3 mysql_query()执行的SQL语句是一个以‘/0’结尾的字符串,而mysq ...
- MySQL-死锁查询
1.查询是否锁表 show OPEN TABLES where In_use > 0; 查询到相对应的进程 === 然后 kill id 2.查询进程 show processlist 补 ...
- MySQL客户端连接方式
MySQL连接方式MySQL除了最常见的TCP连接方式外,还提供SOCKET(LINUX默认连接方式).PIPE和SHARED MEMORY连接方式.各连接方式的服务器.客户端启动选项,及连接默认值见 ...
- Springboot系列:Springboot与Thymeleaf模板引擎整合基础教程(附源码)
前言 由于在开发My Blog项目时使用了大量的技术整合,针对于部分框架的使用和整合的流程没有做详细的介绍和记录,导致有些朋友用起来有些吃力,因此打算在接下来的时间里做一些基础整合的介绍,当然,可能也 ...
- MySQL基础之 LIKE操作符
LIKE操作符 作用:用于在WHERE子句中搜索列中的指定模式. 语法:SELECT COLUMN_NAME FROM TABLE_NAME WHERE COLUMN_NAME LIKE ...
- xml的xsi:type序列化和反序列化
最近在做HL7V3的对接,关于XML的序列化和反序列化遇到xsi:type的问题解决方法 实体类定义: public class HL7V3_ProviderOrganization { public ...
- Alpha冲刺报告(5/12)(麻瓜制造者)
今日已完成 明日计划 部分api示意图 燃尽图 scrum会议照片 今日已完成 邓弘立: 完成部分首页逻辑功能 符天愉: 写代码写着写着想起来昨天的登录接口有个非常zz的逻辑错误,今天修改完后应该没有 ...
- PyQt5---firstwindow
# -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...