企业如何给MYSQL创建表,查询表,创建索引实例

创建表

数据类型   int(整形,整数) not null,char(字符) tinyint(最小的整形) varchar (变长的字符类型)

create table xiaohu(

id int(4) not null,

name char(20) not null,

age tinyint(2) not null default ‘0‘,(不可以为空,但可以给0)

dept varchar(16) default null (可以为空)

mysql> create table student(

-> id  int(4) not null,

-> name char(20) not null,

-> age tinyint(20) not null default ‘0‘,

-> dept varchar(16) default null

-> );

Query OK, 0 rows affected (0.01 sec)

查看见过表的语句:

show  create table 表名\G;

mysql> show create table student\G;

*************************** 1. row ***************************

Table: student

Create Table: CREATE TABLE `student` (

`id` int(4) NOT NULL,

`name` char(20) NOT NULL,

`age` tinyint(20) NOT NULL DEFAULT ‘0‘,

`dept` varchar(16) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

查看表结构

desc  加表名

mysql> desc student;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id    | int(4)      | NO   |     | NULL    |       |

| name  | char(20)    | NO   |     | NULL    |       |

| age   | tinyint(20) | NO   |     | 0       |       |

| dept  | varchar(16) | YES  |     | NULL    |       |

+-------+-------------+------+-----+---------+-------+

4 rows in set (0.01 sec)

创建索引  提升查询速度

索引分类:

主键索引   主键列所有内容必须唯一  比如学号,准考证号

mysql> create table student(id int(4) not null AUTO_INCREMENT,递增 name char(20) not null, age tinyint(2) not null default ‘0‘, dept varchar(16) default null, primary key(id),主键索引  key index_name (name)普通索引 );

Query OK, 0 rows affected (0.01 sec)

如果在创建表的时候忘记加索引怎么办?

可以添加  语法

mysql> alter table student change id id  int primary key auto_increment;

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student

-> ;

+-------+-------------+------+-----+---------+----------------+

| Field | Type        | Null | Key | Default | Extra          |

+-------+-------------+------+-----+---------+----------------+

| id    | int(11)     | NO   | PRI | NULL    | auto_increment |

| name  | char(20)    | NO   |     | NULL    |                |

| age   | tinyint(2)  | NO   |     | 0       |                |

| dept  | varchar(16) | YES  |     | NULL    |                |

+-------+-------------+------+-----+---------+----------------+

4 rows in set (0.00 sec)

普通索引:

mysql> alter table student add index index_name(name);  改表 表的名字 添加 索引  索引名字(在哪个列上添加)

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;

+-------+-------------+------+-----+---------+----------------+

| Field | Type        | Null | Key | Default | Extra          |

+-------+-------------+------+-----+---------+----------------+

| id    | int(11)     | NO   | PRI | NULL    | auto_increment |

| name  | char(20)    | NO   | MUL | NULL    |                |

| age   | tinyint(2)  | NO   |     | 0       |                |

| dept  | varchar(16) | YES  |     | NULL    |                |

+-------+-------------+------+-----+---------+----------------+

4 rows in set (0.00 sec)

指定前N个字符创建索引

mysql> create index index_dept  on  student(dept(8));  创建 索引 索引名  在 表(第几个列(前几个字符))

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

查看索引 详细

mysql> show index from student\G;

*************************** 1. row ***************************

Table: student

Non_unique: 0

Key_name: PRIMARY

Seq_in_index: 1

Column_name: id

Collation: A

Cardinality: 0

Sub_part: NULL

Packed: NULL

Null:

Index_type: BTREE

Comment:

*************************** 2. row ***************************

Table: student

Non_unique: 1

Key_name: index_name

Seq_in_index: 1

Column_name: name

Collation: A

Cardinality: NULL

Sub_part: NULL

Packed: NULL

Null:

Index_type: BTREE

Comment:

*************************** 3. row ***************************

Table: student

Non_unique: 1

Key_name: index_x

Seq_in_index: 1

Column_name: age

Collation: A

Cardinality: NULL

Sub_part: NULL

Packed: NULL

Null:

Index_type: BTREE

Comment:

*************************** 4. row ***************************

Table: student

Non_unique: 1

Key_name: index_dept

Seq_in_index: 1

Column_name: dept

Collation: A

Cardinality: NULL

Sub_part: 8

Packed: NULL

Null: YES

Index_type: BTREE

Comment:

4 rows in set (0.00 sec)

联合索引语法

create index index_name_dept on student(name,dept);

Table: student

Non_unique: 1

Key_name: ind_name_dept

Seq_in_index: 2

Column_name: dept

Collation: A

Cardinality: NULL

Sub_part: NULL

Packed: NULL

Null: YES

Index_type: BTREE

Comment:

6 rows in set (0.00 sec)

mysql> drop index ind_name_dept on student; 删除索引 索引名 在 哪个表

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

创建联合索引前几个字符创建索引

create index ind_name_dept on student(name(8),dept(10));

到底给那些数据创建索引呢?

索引占空间,更新数据库还需要维护索引数据 写频繁读取好的语句少建立索引 十到几百行的小表不用创建索引

尽量在唯一值多的大表上建立索引

运维就是开个慢查询的语句开个监控

时间: 2024-12-24 06:24:51

企业如何给MYSQL创建表,查询表,创建索引实例的相关文章

创建表,创建数据库, 删除表 ,删除数据库

创建表,创建数据库, 删除表 ,删除数据库 创建数据库 Create  database  text2  创建数据库text2 2. 删除数据库 Drop  database   text2  删除数据库text2 创建表 Create  table class   创建一个表叫class                  这是个主表 ( Code  varchar(20)  primary key,                                     创建序号 Name  

oracle创建表空间 创建用户指定表空间并授权

1.创建表空间 例如: (1)表空间名为myplace: (2)数据文件路径为E:\oracle\oracle_home\oradata\myspace (3)文件名为mydbf.dbf,空间大小为32M (4)设置表空间自动扩展,每次扩展32M,最大空间为2048M (5)本地管理表空间 create tablespace myspace     logging       datafile 'E:\oracle\oracle_home\oradata\myspace\mydbf.dbf' 

关于MySQL InnoDB表的二级索引是否加入主键列的问题解释

关于MySQL InnoDB表的二级索引是否加入主键,总结如下: 1对于MySQL InnoDB表的二级索引是否加入主键,官方也有明确的说明,建议线上MySQL的二级索引创建时强制加入主键所有的列,可以做到所有的MySQL 版本统一. 2.MySQL 5.6.9之前,InnoDB引擎层是会对二级索引做自动扩展,但是优化器不能识别出扩展的主键. 3.MySQL 5.6.9开始InnoDB引擎层是会对二级索引做自动扩展,优化器能识别出扩展的主键. 4.索引的大小一样,二级索引有没有加入主键列,在In

MySQL数据库表空间及索引的查看

本文我们介绍MySQL数据库表空间和索引的查看方法,并详细地给出了其代码,接下来我们一一介绍. 1.查看索引 (1)单位是GB SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024*1024), 2), ' GB') AS 'Total Index Size' +------------------+ | Total Index Size | +------------------+ | 1.70 GB | +------------------+ (

MySQL之表的创建、删除、修改、删除、查看及索引

创建数据库 create database|schema [if not exists] db_name [character set= ] [collate= ] 注:schema可以理解为方案或者数据库,与database一个意义 例创建一个students数据库,且默认字符集为'gbk'.默认排序为'gbk_chinese_ci'; create schema if not exists students character set 'gbk' collate 'gbk_chinese_c

MySQL workbench8.0 CE基本用法(创建数据库、创建表、创建用户、设置用户权限、创建SQL语句脚本)

原文地址:https://blog.csdn.net/zgcr654321/article/details/82156277 安装完成MySQL后,打开MySQL workbench8.0. 可以看到MySQL Connections下面是我们设置的MySQL本地登录账号,这个账号是我们在安装MySQL过程中设置的,一般命名为root,端口为3306,密码默认为空.双击进入. 要注意一点的是,在MySQL中,database(数据库)==schema(模式).在左下角schema下方区域鼠标右键

PostgreSQL连接python,postgresql在python 连接,创建表,创建表内容,插入操作,选择操作,更新操作,删除操作。

安装 PostgreSQL可以用Python psycopg2模块集成. sycopg2是Python编程语言的PostgreSQL数据库的适配器. 其程序代码少,速度快,稳定.不需要单独安装这个模块,因为它默认情况下被运往随着Python版本在2.5.x一起的.如果不把它安装在机器上,然后可以使用yum命令安装它,如下所示: $yum install python-psycopg2 要使用psycopg2的模块,首先必须创建一个Connection对象,它表示数据库然后再可以选择创建游标对象,

Mysql之表的操作&索引&explain&profile

创建一个表create table(help create table) =>rename table A to B  更改表名 =>alter table A rename to B 更改表 =>drop table A   删除表 mysql> show create database gtms; #查看建库语句 +----------+---------------------------------------------------------------+ | Data

MySQL数据表的创建、查看、插入

数据表:数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础. 1.首先我们打开一个数据库(这里我打开的是新创建的一个aaa数据库). 打开数据库:use + 数据库名; 2.开始创建一个表,表名定为tb1. 行称之为记录,列称之为字段. 创建一个为名字.年龄.工资的表 VARCHAR 为字符类型 20 为数量限制20个字符 age 为整型 UNSIGNED 为不需要负数. FLOAT(8,2) 为整数八位数,小数点后面保留两位.00000000.00 查看(数据库以存在): SHOW

使用solr的DIHandler 构建mysql大表全量索引,内存溢出问题的解决方法

solr官方给出的解决方式是: DataImportHandler is designed to stream row one-by-one. It passes a fetch size value (default: 500) to Statement#setFetchSize which some drivers do not honor. For MySQL, add batchSize property to dataSource configuration with value -1