MySQL Table modification

Source: Internet
Author: User
Tags dname

CREATE TABLE tab2 as (SELECT * from TAB1)
The storage engine for this practice table also uses the server's default storage engine instead of the source table's storage engine, which copies the contents of the table together.

CREATE talbe tab2 Engine=myisam, charset= ' UTF8 ' as (SELECT * from TAB1)
You can specify your own storage engine and character set to compensate for the lack of method one

CREATE TABLE tab2 like Tab1
Create a new table using the same structure as the TAB1 table, and the column names, data types, empty fingers, and indexes will also be copied, but the contents of the table will not be copied. Foreign keys and private permissions are not replicated.

MySQL copy table structure and data to a new table
CREATE TABLE tab_new SELECT * from Tab_old

Copy data from old table to new table (assuming two table structure)
INSERT into Tab1 SELECT * from TAB2

Copy data from old table to new table (assuming two table structure is different)
INSERT into Tab1 (Field 1, Field 2, ...) SELECT Field 1, Field 2, ... From TAB2

Change table name
ALTER TABLE employee RENAME to staff

Change Column type
ALTER TABLE employee MODIFY COLUMN truename VARCHAR (Ten) not NULL DEFAULT ' '

Change Column Name
ALTER TABLE Employee Change COLUMN truename employeename VARCHAR (Ten) not NULL DEFAULT '

Add a default value
Alter TABLE employee ALTER COLUMN truename SET DEFAULT '

Delete default values
Alter TABLE employee ALTER COLUMN truename deop DEFAULT


MySQL Modify table
The structure of the table is as follows:

Mysql> Show create table person;
| person | CREATE TABLE ' person ' (
' Number ' int (one) DEFAULT NULL,
' Name ' varchar (255) DEFAULT NULL,
' Birthday ' date DEFAULT NULL
) Engine=myisam DEFAULT Charset=utf8 |
To delete a column:

ALTER TABLE person DROP COLUMN birthday;
To add a column:

ALTER TABLE person ADD COLUMN birthday datetime;
Modify the column to change the number to bigint:

ALTER TABLE person MODIFY number BIGINT not NULL;
or change number to ID, type bigint:

ALTER TABLE person change number ID BIGINT;


To add a primary key:

ALTER TABLE person ADD PRIMARY KEY (ID);
To delete a primary key:

ALTER TABLE person DROP PRIMARY KEY;
To add a unique index:

ALTER TABLE person ADD UNIQUE name_unique_index (' name ');
A unique index was created for the Name column, and the name of the index is name_unique_index.



To add a normal index:

ALTER TABLE person ADD INDEX birthday_index (' birthday ');


To delete an index:

ALTER TABLE person DROP INDEX Birthday_index;
ALTER TABLE person DROP INDEX Name_unique_index;


Disabling non-unique indexes

ALTER TABLE person DISABLE KEYS;
ALTER TABLE ... DISABLE keys let MySQL stop updating non-unique indexes in the MyISAM table.

Activating non-Unique indexes

ALTER TABLE person ENABLE KEYS;
ALTER TABLE ... ENABLE keys to recreate the missing index.



Change the default character set of the table and all character columns (CHAR, VARCHAR, TEXT) to the new character set:

ALTER TABLE person CONVERT to CHARACTER SET UTF8;
Modify the encoding of a column in a table

ALTER TABLE Person Change name name varchar (255) CHARACTER SET UTF8;
Change the default character set for only one table

ALTER TABLE person DEFAULT CHARACTER SET UTF8;
Modify Table Name

RENAME TABLE person to Person_other;
Move a table to another database

RENAME TABLE current_db.tbl_name to Other_db.tbl_name;





In MySQL we modify the Data table field command as long as the use of alter on it, let me give you a detailed description of MySQL in the Modified table field names/Fields length/field type and so on some methods introduced, there is need to know the friend can refer to.

Let's take a look at the usual methods.
MySQL's simple syntax, often used, is not easy to remember. Of course, these SQL syntaxes are basically common in each database. Listed below:
1. Add a field
ALTER TABLE user add COLUMN new1 VARCHAR () DEFAULT NULL; Add a field, default is empty
ALTER TABLE user add COLUMN new2 VARCHAR (a) not NULL; Add a field that cannot be empty by default
2. Delete a field
ALTER TABLE user DROP COLUMN new2; Delete a field
3. Modify a Field
ALTER TABLE user MODIFY New1 VARCHAR (10); Modify the type of a field
ALTER TABLE user change new1 new4 int; To modify the name of a field, be sure to re-

Primary key
ALTER TABLE tabelname add new_field_id int (5) unsigned default 0 NOT NULL auto_increment, add primary key (NEW_FIELD_ID);
Add a new column
ALTER TABLE T2 add d timestamp;
ALTER TABLE infos add ex tinyint NOT null default ' 0′;
Delete Column
ALTER TABLE T2 drop column C;
renaming columns
ALTER TABLE T1 change a b integer;
Changing the type of a column
ALTER TABLE T1 change b b bigint not null;
ALTER TABLE infos change list list tinyint not null default ' 0′;
Renaming a table
ALTER TABLE t1 rename T2;
Add index
Mysql> ALTER TABLE tablename change depno depno int (5) is not null;
Mysql> ALTER TABLE tablename ADD index index name (field name 1[, field Name 2 ...]);
Mysql> ALTER TABLE tablename Add index Emp_name (name);
Index of the plus primary keyword
Mysql> ALTER TABLE TableName ADD PRIMARY key (ID);
Index with unique restriction criteria
Mysql> ALTER TABLE tablename add unique emp_name2 (cardnumber);
Delete an index
Mysql>alter table tablename DROP index emp_name;
Add Field:
mysql> ALTER TABLE table_name ADD field_name Field_type;
Modify the original field name and type:
mysql> ALTER TABLE table_name change old_field_name new_field_name field_type;
To delete a field:
mysql> ALTER TABLE table_name DROP field_name;
MySQL Modify field length
ALTER TABLE name modify column field name type;
For example
The User table name field in the database is varchar (30)
can be used
ALTER TABLE user modify column name varchar (50);


MySQL Change table structure: Add, delete, modify fields, adjust field order
Mysqltablenulluserlist
To add a field:

ALTER TABLE ' User_movement_log '
Add column Gatewayid int not null default 0 after ' RegionID ' (which field is added later)

To delete a field:

ALTER TABLE ' user_movement_log ' drop column Gatewayid

To adjust the order of fields:

ALTER TABLE ' user_movement_log ' Gatewayid ' gatewayid ' int not null default 0 after RegionID

Primary key

ALTER TABLE tabelname add new_field_id int (5) unsigned default 0 NOT NULL auto_increment, add primary key (NEW_FIELD_ID);

Add a new column

ALTER TABLE T2 add d timestamp;
ALTER TABLE infos add ex tinyint NOT null default ' 0 ';

Delete Column

ALTER TABLE T2 drop column C;

renaming columns

ALTER TABLE T1 change a b integer;

Changing the type of a column

ALTER TABLE T1 change b b bigint not null;
ALTER TABLE infos change list list tinyint not null default ' 0 ';

Renaming a table

ALTER TABLE t1 rename T2;

Add index

Mysql> ALTER TABLE tablename change depno depno int (5) is not null;
Mysql> ALTER TABLE tablename ADD index index name (field name 1[, field Name 2 ...]);
Mysql> ALTER TABLE tablename Add index Emp_name (name);

Index of the plus primary keyword

Mysql> ALTER TABLE TableName ADD PRIMARY key (ID);

Index with unique restriction criteria

Mysql> ALTER TABLE tablename add unique emp_name2 (cardnumber);

Delete an index

Mysql>alter table tablename DROP index emp_name;

To modify a table:

Add Field:

mysql> ALTER TABLE table_name ADD field_name Field_type;

Modify the original field name and type:

mysql> ALTER TABLE table_name change old_field_name new_field_name field_type;

To delete a field:

mysql> ALTER TABLE table_name DROP field_name;


MySQL table structure modification detailed

Modify the syntax of a table
=========================
Add column [Add column name]
=========================
①alter table name Add column list Type column parameter "Add column to last face of table"
Example: ALTER TABLE test add username char (a) not null default ';
ALTER TABLE test add birth date not null default ' 0000-00-00 ';

②alter table name Add column list type column parameter after a column "Add a new column after a column"
Example: ALTER TABLE test add gender char (1) NOT null default "after username;

③alter table name Add column list type column parameter First "Add new column to the front"
Example: ALTER TABLE TEST add PID int NOT null default 0 first;

=========================
Delete column [drop column name]
=========================
①alter table Name drop column name
Example: ALTER TABLE test drop PID;

=========================
Modify column [modife column name]
=========================
①alter table name Modify column name new type new parameter "Modify column type"
Example: ALTER TABLE test modify gender char (4) NOT null default ';
②alter table name change old column name new column name new type new parameter "Modify column name and column type"
Example: ALTER TABLE test change PID UID int. unsigned NOT NULL default 0;

=========================
Query columns
=========================
①DESC table name "Querying all Columns"
Example: DESC test;
Mysql> DESC Department;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Did | Int (11) | NO |         PRI |       | |
| Dname | varchar (32) |     YES | |       NULL | |
+-------+-------------+------+-----+---------+-------+

②show columns from table name "Effect as DESC"
Mysql> Show columns from department;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Did | Int (11) | NO |         PRI |       | |
| Dname | varchar (32) |     YES | |       NULL | |
+-------+-------------+------+-----+---------+-------+

③show CREATE TABLE table name "View Creation code for table"
Mysql> Show CREATE TABLE department;
CREATE TABLE ' Department ' (
' Did ' int (one) is not NULL,
' dname ' varchar (+) DEFAULT NULL,
PRIMARY KEY (' did ')
) Engine=innodb DEFAULT Charset=utf8

mysql> ALTER TABLE table_name DROP field_name;_name new_field_name field_type;), default) primary key (NEW_FIELD_ID);




ORDER by _column1, _column2; /* _column1 Ascending, _column2 ascending */
ORDER by _column1, _column2 DESC; /* _column1 Ascending, _column2 descending */
ORDER by _column1 DESC, _column2; /* _column1 Descending, _column2 ascending */
ORDER by _column1 Desc, _column2 desc; /* _column1 Descending, _column2 descending */
Sort in reverse order by DESC (that is, sort from large to small)
Use ACS to sort by positive order (i.e., from small to large)



The order should be sorted by the ASCII code of the Chinese characters, the following is the alphabetical order according to Chinese characters
SELECT * from Corp_data where Chengshi as "Tumushuke DACLC" ORDER by convert (name using GBK);


#select Count (*) as Count from Corp_data where Chengshi like "Tumushuke DACLC";
SELECT * from Corp_data where Chengshi as "Tumushuke DACLC" ORDER by convert (name using GBK);
#delete from Corp_data where Chengshi like "Tumushuke DACLC";
#desc Corp_data;
#alter table corp_data Modify column Hangye varchar (100);
#alter table corp_data Modify column Jianjie varchar (10000);

MySQL Table modification

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.