MySQL

时间:2022-07-18 14:08:52

数据库和表的基本操作

数据库基础知识

创建数据库

  就是在数据库系统中划分一块存储数据的空间

  CREATE DATABASE itcast;

查看数据库

  SHOW CREATE DATABASE 数据库名称;

修改数据库

  ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin;

删除数据库

  DROP DATABASE 数据库名称;

数据类型

  整数类型

  浮点数类型和定点数类型

  日期与时间类型

  字符串和二进制类型

数据表的基本操作

创建数据表

查看数据表

  show create table 表名\G;

  describe 表名;

修改数据表

  修改表名

    alter table 旧表名 rename [to] 新表名;

  修改字段值

    alter table表名 change 旧字段名 新字段名 新数据类型;

  修改字段的数据类型

    alter table 表名 modify 字段名 数据类型;

  添加字段

    alter table 表名 add 新字段名 数据类型[约束条件][first|after已存在字段名];

    “FIRST” 是可选参数,用于将新添加的字段设置为表的第一个字段。

    “AFTER”是可选参数,用于将新添加的字段添加到指定的“已存在字段名”的后面。

  删除字段

    alter table 表名 drop 字段名;

  修改字段的排序位置

    alter table 表名 modify 字段名1 数据类型 first|after 字段名2;

删除数据表

  drop table 表名;

表的约束

  主键约束(primary key)

    唯一标识表中的记录

    字段名 数据类型 primary key

    primary key(字段名1,字段名2,...)

  外键约束(foreign key)

  非空约束(not null)

    字段的值不能为NULL

    字段名 数据类型 not null;

  唯一约束(unique)

    保证数据表中字段的唯一性,即表中字段的值不能重复出现

    字段名 数据类型 unique

  默认约束(default)

    字段名 数据类型 default 默认值

设置表的字段值自动增加

  为表中插入的新记录自动生成唯一的ID

  字段名 数据类型 auto_increment

索引

索引的概念

  好比新华字典的音序表,它是对数据库表中一列或多列的值进行排序后的一种结构,其作用就是提高表中数据的查询速度。

  6种索引

    普遍索引是由KEY或INDEX定义的索引,它是MySQL中的基本索引类型,可以创建在任何数据类型中,其值是否唯一和非空由字段本身的约束条件所决定。

    唯一性索引是由UNIQUE定义的索引,该索引所在字段的值必须是唯一的。

    全文索引是由FULLTEXT定义的索引,它只能创建在CHAR、VARCHAR或TEXT类型的字段上,而且,现在只有MyISAM存储引擎支持全文索引。

    单列索引指的是在表中单个字段上创建索引,它可以是普通索引、唯一索引或者全文索引,只要保证该索引只对应表中一个字段即可。

    多列索引指的是在表中多个字段上创建索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。

    空间索引是由SPATIAL定义的索引,它只能创建在空间数据类型的字段上。

创建索引

  1、创建表的时候创建索引

    CREATE TABLE 表名(字段名 数据类型[完整性约束条件],

            字段名 数据类型[完整性约束条件],

            ......

      字段名 数据类型

      UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY

            [别名] (字段名1 [(长度)]) [ASC|DESC])

      );

    UNIQUE:可选参数,表示唯一索引

    FULLTEXT:可选参数,表示全文索引

    SPATIAL:可选参数,表示空间索引

    INDEX和KEY:用来表示字段的索引,二者选一即可

    ASC和DESC:可选参数,ASC表示升序排列,DESC表示降序排列

    别名:可选参数,表示创建的索引的名称

    字段名1:指定索引对应字段的名称

    长度:可选参数,用于表示索引的长度

  2、使用CREATE INDEX 语句在已经存在的表上创建索引

    CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名

    ON 表名 (字段名 [(长度)] [ASC|DESC]);

  3、使用ALTER TABLE语句在已经存在表上创建索引

    ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL]  INDEX

      索引名 (字段名 [(长度)] [ASC|DESC])

 

删除索引

  1、使用ALTER TABLE删除索引

    ALTER TABLE 表名 DROP INDEX 字段名

  2、使用DROP INDEX删除索引

    DROP INDEX 索引名 ON 表名;