mysql创建、修改、删除索引和主键

把自增ID从1000起

alter table users AUTO_INCREMENT=1000;

添加一个字段并让他默认是0

alter table res_ad_template add type TINYINT(4) not null DEFAULT 0 ;
  1. 登陆到MYSQL环境:
    mysql> mysql -u root -p ;

  2. 输入密码:

  3. 显示所有的数据库名称
    mysql> show databases ;
    ±-------------------+
    | Database |
    ±-------------------+
    | information_schema |
    | gg |
    | hz |
    | mysql |
    | performance_schema |
    | sys |
    ±-------------------+
    6 rows in set (0.00 sec)

  4. 切换数据库
    use hh ;

  5. 显示当前数据库名称
    mysql> select database();
    ±-----------+
    | database() |
    ±-----------+
    | gg |
    ±-----------+
    1 row in set (0.00 sec)

  6. 显示一个数据库的所有表
    show tables ;

  7. 创建表
    mysql> CREATE TABLE mytable1(
    ID INT NOT NULL ,
    username VARCHAR(16) NOT NULL ,
    INDEX index1 (username(16))
    );
    Query OK, 0 rows affected (0.02 sec)

  8. 插入数据
    insert into mytable1(id,username) values (1,“dongwan”);
    Query OK, 1 row affected (0.01 sec)

  9. 给表增加字段
    alter table mytable1 add phone varchar(20);

  10. 给表删除字段
    alter table mytable1 add class varchar(20);

  11. 修改字段名称和类型
    mysql> alter table mytable1 change phone sex tinyint ;
    Query OK, 1 row affected (0.03 sec)
    Records: 1 Duplicates: 0 Warnings: 0

  12. 修改字段类型
    mysql> alter table mytable1 change sex sex char ;
    Query OK, 1 row affected (0.03 sec)
    Records: 1 Duplicates: 0 Warnings: 0

  13. 修改表名称
    mysql> alter table mytable1 rename t1 ;
    Query OK, 0 rows affected (0.00 sec)

  14. 重命名表名称 -----方式二,而且这种方式可以同时修改好多个表
    mysql> rename table t1 to t2 ;
    Query OK, 0 rows affected (0.01 sec)

mysql> rename table t2 to t1 ,n1 to t2 ;
Query OK, 0 rows affected (0.00 sec)

  1. 普通索引的创建方式

    创建索引:1--创建表的时候直接创建索引
    mysql> 		CREATE TABLE mytable1(
    					ID INT NOT NULL , 
    					username VARCHAR(16) NOT NULL , 
    					INDEX index1 (username(16)) 
    							);
    创建索引:2--最普通的索引创建方式
    create index t2index4 on t2 (school,username);
    
    创建索引:3--修改表结构创建方式
    ALTER table t2 ADD INDEX t2index6 (school);
    
    删除索引:
    

删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。

DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下:

 drop index index_name on table_name ;
 alter table table_name drop index index_name ;
  alter table table_name drop primary key ;

其中,在前面的两条语句中,都删除了table_name中的索引index_name。
而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引
,因此不需要指定索引名。
如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。

如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。
如果删除组成索引的所有列,则整个索引将被删除。
删除索引的操作,如下面的代码:

	显示一个表中的所有索引
	mysql> show index from t1 ;
	+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
	| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
	+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
	| t1    |          1 | index1   |            1 | username    | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
	+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
	1 row in set (0.00 sec)


	如果一个表中没有索引结果为空
	mysql> show index from t2 ;
	Empty set (0.00 sec)

	mysql> show index from t2 ;
	+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
	| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
	+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
	| t2    |          1 | t2index  |            1 | school      | A         |           1 |     NULL | NULL   | YES  | BTREE      |         |               |
	| t2    |          1 | t2index2 |            1 | username    | A         |           1 |     NULL | NULL   | YES  | BTREE      |         |               |
	| t2    |          1 | t2index2 |            2 | school      | A         |           1 |     NULL | NULL   | YES  | BTREE      |         |               |
	| t2    |          1 | t2index3 |            1 | username    | A         |           1 |     NULL | NULL   | YES  | BTREE      |         |               |
	| t2    |          1 | t2index3 |            2 | school      | A         |           1 |     NULL | NULL   | YES  | BTREE      |         |               |
	| t2    |          1 | t2index4 |            1 | school      | A         |           1 |     NULL | NULL   | YES  | BTREE      |         |               |
	| t2    |          1 | t2index4 |            2 | username    | A         |           1 |     NULL | NULL   | YES  | BTREE      |         |               |
	+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
	7 rows in set (0.00 sec)
  1. 唯一索引
    它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

    创建索引
    CREATE UNIQUE INDEX indexName ON mytable(username(length))

    修改表结构
    ALTER table mytable ADD UNIQUE [indexName] (username(length))

    创建表的时候直接指定
    CREATE TABLE mytable(

    ID INT NOT NULL,

    username VARCHAR(16) NOT NULL,

    UNIQUE [indexName] (username(length))

    );

全文索引

	ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。
  1. 主键
    添加主键:
    ALTER TABLE tablename ADD PRIMARY KEY (column_name);
    删除主键
    ALTER TABLE tablename DROP PRIMARY KEY;
    2、如果发现主键设置错了,应该是id是主键,但如今表里已经有好多数据了,不能删除表再重建了,
    仅仅能在这基础上改动表结构。
    先删除主键
    alter table table_test drop primary key;
    然后再增加主键
    alter table table_test add primary key(id);

  2. 清空一个表中的数据
    truncate table 表名 ;
    delete 逐行删除
    drop 删除表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值