表的操作:
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 ...
随机推荐
- linux小白成长之路7————Docker安装mysql
[内容指引] 从Docker检索mysql镜像: Mysql Docker镜像下载: 查看本地镜像列表: 设置Mysql的Docker镜像开机自动运行: 常用Docker指令及参数: 1.从Docke ...
- [转]C++ 初始化列表的初始化顺序
构造函数初始化列表仅用于初始化成员的值,并不指定这些初始化执行的次序.成员被初始化的次序就是定义成员的次序.第一个被定义的成员先被初始化,依次类推.一般,初始化的顺序无关紧要,然而,如果一个成员是根据 ...
- linux下各种解压方法
linux下各种格式的压缩包的压缩.解压方法.但是部分方法我没有用到,也就不全,希望大家帮我补充,我将随时修改完善,谢谢! .tar 解包:tar xvf FileName.tar 打包:t ...
- pyc反编译-uncompyle2的安装及使用
pyc反编译-uncompyle2的安装及使用 0x00 安装 1.下载并解压到安装目录 python setup.py install //安装 2.下载链接: 链接:https://pan.bai ...
- alpha冲刺第七天
一.合照 二.项目燃尽图 三.项目进展 问答界面问答内容呈现 设置里的帐号设置呈现 能爬取教务处网站的内容保存到本地数据库 四.明日规划 继续完善各个内容的界面呈现 查找关于如何自动更新爬取内容 搜索 ...
- Alpha冲刺Day2
Alpha冲刺Day2 一:站立式会议 今日安排: 首先完善前一天的剩余安排工作量,其次我们把项目大体分为四个模块:数据管理员.企业人员.第三方机构.政府人员.数据管理员这一模块,数据管理员又可细分为 ...
- 20145237 实验五《Java网络编程》
20145237 实验五<Java网络编程> 一.实验内容 •1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: •2.利用加解密代码包,编译运行代码,一人加密,一人解密: •3 ...
- 如何使用ILAsm与ILDasm修改.Net exe(dll)文件
一.背景 最近项目组新上项目,交付的时间比较急迫,原本好的分支管理习惯没有遵守好,于是出现下面状况: 多个小伙伴在不同的分支上开发. 原本QA环境也存在一个阻碍性的bug A 一位同事在QA环境发布了 ...
- github感悟
刚学GitHub进入网页全英文的,感觉很惊讶,自己竟然要在全英文的网站上学习,虽然是英文的但并不感觉有压力,可能之前用eclipse就是全英文的现在除了惊讶,没太多的想法.然后就是我的GitHub地址 ...
- CentOS 7 使用yum安装出现错误
CentOS 7 使用yum安装软件出现错误: Loaded plugins: fastestmirror 此错误信息可能是因为DNS配置错误,可以通过更改配置文件来解决: 1. 使用vi打开DNS的 ...