MySQL 常用操作总结(一):表管理和索引创建

一、数据库的操作

1、数据库的创建

CREATE DATABASE|SCHEMA [IF NOT EXISTS] db_name [CHARACTER SET ] [COLLATE (排序规则)]
例如: CREATE DATABASE IF NOT EXISTS STUDENT CHARACTER SET ‘utf8’ collate ‘utf8_general_ci’

2 、 数据库的删除

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

二、表的操作

1、表的三种创建方法

  • 直接定义一张空表

单字段定义:
CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination constraint….. )

例如:CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name CHAR(20) NOT NULL, Age TINYINT NOT NULL) ENGINE =’InnoDB’

多字段定义:
CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination ,constraint)

例如:CREATE TABLE tb2 (id INT UNSIGNED NOT NULL AUTO_INCREMENT, Name CHAR(20) NOT NULL, Age TINYINT NOT NULL, PRIMARY KEY(id),UNIQUE KEY(name),INDEX(age))

备注:查看表的信息使用如下语句:
show table status like ‘表名’\G ;

  • 创建一张和另外一张表相同的结构的表 ,使用关键字like

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name LIKE old_tbl_name

  • 创建一张表并且数据来源于其它表

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
select_statement
例如:create table if not exists tb3 select*from tb1 ;

2、修改表操作

ALTER TABLE tbl_name [alter_specification ]

备注: alter_specification 在linux 系统中使用help alter table 命令查看帮助文档

  | ADD [COLUMN] (col_name column_definition,...)
  | ADD {INDEX|KEY} [index_name]
        [index_type] (index_col_name,...) [index_option] ...
  | ADD [CONSTRAINT [symbol]] PRIMARY KEY
        [index_type] (index_col_name,...) [index_option] ...
  | ADD [CONSTRAINT [symbol]]
        UNIQUE [INDEX|KEY] [index_name]
        [index_type] (index_col_name,...) [index_option] ...
  | ADD SPATIAL [INDEX|KEY] [index_name]
        (index_col_name,...) [index_option] ...
  | ADD [CONSTRAINT [symbol]]
        FOREIGN KEY [index_name] (index_col_name,...)
        reference_definition
  | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  | CHANGE [COLUMN] old_col_name new_col_name column_definition
        [FIRST|AFTER col_name]
  | MODIFY [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
  | DROP [COLUMN] col_name
  | DROP PRIMARY KEY
  | DROP {INDEX|KEY} index_name
  | DROP FOREIGN KEY fk_symbol
  | RENAME [TO|AS] new_tbl_name

3、表查询

1) 多表查询的连接方式总结:

  • 交叉连接:笛卡尔乘积

select *from tb1,tb2;

  • 自然连接

select tab1.name,tb2.age from tb1,tb2 where tb1.name=tb2.name;

  • 外连接
    左外连接:... LEFT JOIN ... ON ...
    右外连接: ... RIGHT JOIN ... ON ...
  • 自连接

2) 子查询常用操作总结:

  • 比较操作中使用子查询:子查询只能返回单个值;
  • IN(): 使用子查询;
  • 在FROM中使用子查询;

3)查询中常用的聚合函数总结:

SUM(), MIN(), MAX(), AVG(), COUNT()

4)查询中执行流程总结如下:
这里写图片描述

4、创建表索引

CREATE INDEX index_name ON tb_name (col [(length)] [ASC | DESC],…);
备注:显示指定表上的索引
SHOW INDEXES FROM tb_name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值