mysql使用2 Mysql可视化工具Navicat for MySQL

Mysql可视化工具Navicat for MySQL

1 alter命令

修改字段

alter+drop删除i字段

ALTER TABLE testalter_tbl  DROP i;

alter+add添加i字段(column),会默认在末尾添加

 ALTER TABLE testalter_tbl ADD i INT;

alter+add+first/after

ALTER TABLE testalter_tbl ADD i INT FIRST;

ALTER TABLE testalter_tbl ADD i INT AFTER c;

 

修改字段类型和名称

alter+modify修改字段的类型

ALTER TABLE testalter_tbl MODIFY c CHAR(10);

alter+change修改字段的名称和类型

ALTER TABLE testalter_tbl CHANGE i j BIGINT;

ALTER TABLE testalter_tbl CHANGE j j INT;

 

修改字段默认值

default为默认值,不声明为null alter table X alter set default

ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;

删除字段的默认值alter alter drop default

ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

 

修改表名 rename to

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

2 索引

创建索引

a.CREATE INDEX indexName ON mytable(username(length)); 

B)ALTER mytable ADD INDEX [indexName] ON (username(length)) 

C创建表的时候直接指定

CREATE TABLE mytable(  

ID INT NOT NULL,   

username VARCHAR(16) NOT NULL,  

INDEX [indexName] (username(length))  

 );  

删除索引

DROP INDEX [indexName] ON mytable; 

 

创建唯一索引,允许有空值 unique index

A.CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

B.ALTER mytable ADD UNIQUE [indexName] ON (username(length)) 

C.CREATE TABLE mytable(  

ID INT NOT NULL,   

username VARCHAR(16) NOT NULL,  

 UNIQUE [indexName] (username(length))  

 );  

 

添加主键,保证not null

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。

 

显示索引信息

SHOW INDEX FROM table_name\G

 

3mysql临时表

MySQL临时表只在当前连接可见当关闭连接时,Mysql会自动删除表并释放所有空间。

退出mysql时,会自动删除,也可用drop手动删除

CREATE TEMPORARY TABLE SalesSummary();

4 。复制表 inser into   select

 

SHOW CREATE TABLE runoob_tbl \G;

  • 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
  • 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。

CREATE TABLE `clone_tbl` (

  -> `runoob_id` int(11) NOT NULL auto_increment,

  -> `runoob_title` varchar(100) NOT NULL default '',

  -> `runoob_author` varchar(40) NOT NULL default '',

  -> `submission_date` date default NULL,

  -> PRIMARY KEY  (`runoob_id`),

  -> UNIQUE KEY `AUTHOR_INDEX` (`runoob_author`)-> ) ENGINE=InnoDB;

  • 如果你想复制表的内容,你就可以使用 INSERT INTO ... SELECT 语句来实现。

INSERT INTO clone_tbl (runoob_id,

    ->                        runoob_title,

    ->                        runoob_author,

    ->                        submission_date)

    -> SELECT runoob_id,runoob_title,

    ->        runoob_author,submission_date

    -> FROM runoob_tbl;

  • 5 更新
  • Update 表名 set 字段=值 where 条件
  • 6处理重复数据
  • 统计重复数据

SELECT COUNT(*) as repetitions, last_name, first_name

    -> FROM person_tbl

    -> GROUP BY last_name, first_name

    -> HAVING repetitions > 1;

  • 过滤重复数据 加关键字DISTINCT

SELECT DISTINCT last_name, first_name

    -> FROM person_tbl

    -> ORDER BY last_name;

                也可以使用 GROUP BY 来读取数据表中不重复的数据:

mysql> SELECT last_name, first_name

    -> FROM person_tbl

    -> GROUP BY (last_name, first_name);

 

删除重复数据  选出不重复的数据保存到新表中,删除旧表

mysql> CREATE TABLE tmp SELECT last_name, first_name, sex

    ->                  FROM person_tbl;

    ->                  GROUP BY (last_name, first_name);

mysql> DROP TABLE person_tbl;

mysql> ALTER TABLE tmp RENAME TO person_tbl;

也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录

ALTER IGNORE TABLE person_tbl

    -> ADD PRIMARY KEY (last_name, first_name);

 

 

posted @ 2016-08-29 16:29  zdmlcmepl  阅读(527)  评论(0编辑  收藏  举报