把自增ID从1000起
alter table users AUTO_INCREMENT=1000;
添加一个字段并让他默认是0
alter table res_ad_template add type TINYINT(4) not null DEFAULT 0 ;
-
登陆到MYSQL环境:
mysql> mysql -u root -p ; -
输入密码:
-
显示所有的数据库名称
mysql> show databases ;
±-------------------+
| Database |
±-------------------+
| information_schema |
| gg |
| hz |
| mysql |
| performance_schema |
| sys |
±-------------------+
6 rows in set (0.00 sec) -
切换数据库
use hh ; -
显示当前数据库名称
mysql> select database();
±-----------+
| database() |
±-----------+
| gg |
±-----------+
1 row in set (0.00 sec) -
显示一个数据库的所有表
show tables ; -
创建表
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) -
插入数据
insert into mytable1(id,username) values (1,“dongwan”);
Query OK, 1 row affected (0.01 sec) -
给表增加字段
alter table mytable1 add phone varchar(20); -
给表删除字段
alter table mytable1 add class varchar(20); -
修改字段名称和类型
mysql> alter table mytable1 change phone sex tinyint ;
Query OK, 1 row affected (0.03 sec)
Records: 1 Duplicates: 0 Warnings: 0 -
修改字段类型
mysql> alter table mytable1 change sex sex char ;
Query OK, 1 row affected (0.03 sec)
Records: 1 Duplicates: 0 Warnings: 0 -
修改表名称
mysql> alter table mytable1 rename t1 ;
Query OK, 0 rows affected (0.00 sec) -
重命名表名称 -----方式二,而且这种方式可以同时修改好多个表
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--创建表的时候直接创建索引 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)
-
唯一索引
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:创建索引
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 ,用于全文索引。
-
主键
添加主键:
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); -
清空一个表中的数据
truncate table 表名 ;
delete 逐行删除
drop 删除表