表的操作:
1.表的创建:
create table if not exists table_name(字段定义);
例子:
create table if not exists user(id int auto_increment,
uname varchar(20),
address varchar(200),
updateTime datetime,
primary key(id)); // 设置主键
2.表(show tables;)定义查看:
show create table table_name;
DESC table_name;
show full columns from table_name;
3.表的更新:
(1) 表的重命名:alter table old_user_name rename to new_user_name;
rename table old_user_name to new_user_name ;
(2) 增加列:alter table table_name add column column_nname(修饰);
在表的第一个位置增加字段,在语句最后加上FIRST,在表的指定字段之后添加,在最后加上AFTER 属性名;
例子:alter table user add column age int not null default 0 after uname;//在uname列后增加age列,并且不为空,默认为0.
(3) 删除列:alter table table_name drop (column) column_name;
(4).字段修改:alter table table_name change cloumn old_column_name new_cloumn_name 属性名 数据类型;
例子:alter table user change column adddress address varchar(1024) not null default 'beijing';// 将adddress重新命名为address,范围为1024,不为空,默认值为beijing
(5).表的删除:drop table table_name;
(6):复制表:create table new_table_name like old_table_name ;
4.操作表的约束:
(1).非空约束(not null); 直接跟在字段后,比如:name varchar(20) not null;
(2).设置字段默认值(default 默认值); 直接跟在字段后,比如:name varchar(20) default 'name';
(3).设置唯一约束(unique); 唯一约束指的是不能添加重复值 ;直接跟在字段后,比如:name varchar(20) unique;
(4).设置主键约束(primary key);
单字段主键:constraint pk_name primary key(name);直接跟在字段后,比如:id int primary key;
多字段主键:constraint pk_name1_name2 primary key(name1, name2);这个语句放在创建表的最后就可以.
(5).设置值自动增加(auto_increment);直接跟在字段后,比如:id int auto_increment;
(6).设置外键约束(foreign key):
语法:constraint 外键约束名 foreign key(属性名1) references 表名(属性名2);设置外键只能放在外键存在的表中,放在建表的最后一句,设置之后 不能插入父表中不存在的值.
语法例子:constraint fk_deptno foreign key(deptno) references t_dept(deptno);
上面6个中除了外间约束和多字段主键约束只能放在创建表的最后一句,其余都应该放在创建表时的字段之后,多个约束条件直接紧随其后.比如:name varchar(20) not null default 'name';//设置name不为空默认值为name.
索引的操作:
1.索引的创建
(1).普通索引:
create index index_name on table_name(属性名);
例子: create index idx_name on users(username);
查询时:通过explain select * from users where username = "条件";可以看出type为rel,而普通查询是ALL,也就是全盘扫描,降低效率,建立索引可以提高查找效率.
(2).唯一索引(值唯一不可以重复):
create unnqiue index index_unique_name on table_name(属性名);
例子:create unique index idx_unique_name on users(username); // 不可以添加姓名相同的记录.
(3).主键索引(一定是唯一索引,但唯一索引不一定是主键索引):
alter table table_name add primary key(属性名);
(4).复合索引:
alter table table_name add index index_name(属性名1,属性名2....);
复合索引只有在复合查找中才起作用,也就是说多条件查询时起作用.
(5).全文索引(innodb不支持全文索引):
create fulltext index index_name on table_name(属性名);
2.索引的查看:
show create table table_name;
show index from table_name;
3.索引的删除:
drop index index_name on table_name;
索引是不能直接更新的,只有通过先删除再添加来模仿更新.通过mysql workbench中的索引操作可以详细看出执行的语句,来加深理解.
- MySQL 多表查询与事务的操作
表连接查询 什么是多表查询 # 数据准备 # 多表查询的作用 * 比如:我们想查询孙悟空的名字和他所在的部门的名字,则需要使用多表查询 # 如果一条 SQL 语句查询多张表,因为查询结果在多张不同的表 ...
- dbstructsync 多套mysql环境表、字段、索引的差异sql产出(原创)
最近写了一个工具(比较两套测试环境数据库表.表字段.索引的差异) 功能:可以比较两套环境中mysql指定库中表.表字段及索引的差异,返回具体需要同步的执行sql A环境的数据库db 作为sourced ...
- mysql 复制表结构(包括索引等)、表内容
=============================================== 2019/7/16_第1次修改 ccb_warlock == ...
- Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化
参考书籍<mysql是怎样运行的> 非常推荐这本书,通俗易懂,但是没有讲mysql主从等内容 书中还讲解了本文没有提到的子查询优化内容, 本文只总结了常见的子查询是如何优化的 系列文章目录 ...
- Mysql不同表的同名字段索引名可以相同
mysql中不同表的相同字段索引是可以重名的,因为索引文件一表一个: 命名规则: 普通索引:idx_字段名 唯一索引:ux_字段名
- mysql 全表扫描、全索引扫描、索引覆盖(覆盖索引)
full index scan:全索引扫描,查询时,遍历索引树来获取数据行.如果数据不是密集的会产生随机IO 在执行计划中是Type列,index full table scan:通过读物理表获取数据 ...
- mysql 修改表结构以支持事务操作
修改表的类型为 INNODB 的 SQL: alter table category_ ENGINE = innodb; 查看表的类型的 SQL show table status from ...
- Mysql建表的时候创建索引
创建表时可以直接创建索引,这种方式最简单.方便.其基本形式如下: CREATE TABLE 表名( 属性名 数据类型[完整性约束条件], 属性名 数据类型[完整性约束条件], ...... 属性名 数 ...
- Elasticsearch-PHP 索引操作(转)
索引操作 本节通过客户端来介绍一下索引API的各种操作.索引操作包含任何管理索引本身(例如,创建索引,删除索引,更改映射等等). 我们通过一些常见的操作的代码片段来介绍,然后在表格中列出剩下的方法.R ...
随机推荐
- 实现win的on程序数据更新
枚举是一组描述性的名称定义一组有限的值,不包含方法对可能的值进行约束枚举是一组指定的常数,对可能的值进行约束枚举使用时直观方便.更易于维护 pictureBox控件属性名称 说明image ...
- [LTR] 信息检索评价指标(RP/MAP/DCG/NDCG/RR/ERR)
一.RP R(recall)表示召回率.查全率,指查询返回结果中相关文档占所有相关文档的比例:P(precision)表示准确率.精度,指查询返回结果中相关文档占所有查询结果文档的比例: 则 PR 曲 ...
- jsp pageEncoding属性详解
Java pageEncoding原理详解 首先看下文章解释: 意思是jsp文件本身的编码 巨大的疑问:这里有一个很大的问题,既然你都已经从jsp中读到了这条属性,证明内容读取正确,那你还需要知道这条 ...
- 剑指Offer-二叉树的下一个结点
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 思路 分析二叉树的下一个节点,一共有以下情况: 二叉树 ...
- css3动画transition详解
一.transition-property 语法: transition-property : none | all | [ <IDENT> ] [ ',' <IDENT> ] ...
- Windows用户模式下注入方式总结
注入技术在病毒木马.游戏.打补丁等编程中应用很广泛,学习该技术不仅能帮助理解Windows工作原理,还能对病毒木马技术手段有更加深刻的理解,下面我们了解下各种注入方式吧. 一.DLL注入 在注入技术中 ...
- Linux实用的网站
ABCDOCKER网站 https://www.abcdocker.com/ 徐亮伟网站 http://www.xuliangwei.com/ 安装centos物理服务 ...
- Zookeeper分布式服务协调组件
1.简介 Zookeeper是一个分布式服务协调组件,是Hadoop.Hbase.Kafka的重要组件,它是一个为分布式应用提供一致性服务的组件. Zookeeper的目标就是封装好复杂易出错的服 ...
- 高级OOP特性(6)
PHP不支持的高级OPP特性 PHP不支持通过函数重载实现多态 PHP不支持多重继承 PHP不支持根据所修改数据类型为操作符赋予新的含义 对象克隆 克隆实例 在对象前面添加clone关键字来克隆对象, ...
- spring cloud之坑,访问服务时找不到报404
主要是因为: 启动时 而我访问时,api是按照下面这样访问的: 所以报404找不到