1、修改主键
第一步,删除原来的主键:
ALTER TABLE table_name DROP PRIMARY KEY;
ALTER TABLE table_name ADD PRIMARY KEY(id);
2、增加,删除,修改列
增加列: ALTER TABLE table_name ADD COLUMN cloumn_nameVARCHAR(255);
删除列:ALTER TABLE table_name DROP COLUMN column_name;
修改列的数据类型:ALTER TABLE table_name MODIFY column_name BIGINT(20);
修改列名:ALTER TABLE table_name CHANGE old_name new_name INTEGER;
修改列的顺序:ALTER TABLE table_name MODIFY field [int not null default 0] AFTER other_field;
ALTER TABLE table_name MODIFY field [int not null default 0] first;
连接其他表来修改列的值:UPDATE tb1, tb2 [INNER JOIN | LEFT JOIN] tb1 ON tb1.C1 = tb2. C1 SET tb1.C2 = tb2.C2, tb2.C3 = expr WHERE condition;
3、浏览数据库,表,字段
查看数据库: SHOW DATABASES;
使用某个数据库: USE database_name;
查看数据库中的表:SHOW TABLES;
查看某个表的结构:DESCRIBE table_name;
查看某个表的创建格式:SHOW CREATE TABLE table_name;
4、添加和删除外键
添加外键:ALTER TABLE table_name ADD FOREIGN KEY (filed) REFERENCES other_table_name (field‘);删除外键:1,SHOW CREATE TABLE table_name; (查找table_name_ibfk_1)
2,ALTER TABLE table_name DROP FOREIGN KEY table_name_ibfk_1;(通过table_name_ibfk_1删除外键)
5、删除完全重复记录的思路
原因:设计表时,没有设置主键, uid重复。
思路:添加自增的主键--------ALTER TABLE tb_name ADD id INTEGER AUTO_INCREMENT PRIMARY KEY;
删除重复记录----------DELETE FROM table_name, (SELECT *, MIN(id) FROM table_name GROUP BY uid HAVING COUNT(uid) > 1) AS temp WHERE table_name.id > temp.id;
取消主键-----------------见1
删除列--------------------见2
重新设置主键----------见1
结论:比较笨的方法,网上有的答案,但没什么效果。
6、把一个数据库中的表复制到另一个数据库中
把table1的数据从数据库a复制到数据库b:CREATE TABLE b.table1 AS SELECT * FROM a.table1;
把table1的结构从数据库a复制到数据库b:CREATE TABLE b.table1 LIKE a.table1;
7、给另一个ip授权
给ip授予全部数据库的全部权限:GRANT ALL PRIVILEGES ON *.* TO usrName@ip IDENTIFIED BY password;
给ip授予部分数据库的部分权限:GRANT select,update ON database_name.* TO usrName@ip IDENTIFIED BY password;
8、对表的创建、修改、删除
修改表的名字:ALTER TABLE oldName RENAME newName;
彻底删除表:DROP TABLE tableName;
删除表的全部数据:DELETE FROM tableName;
9、数据库备份与恢复
导出整个数据库:(进入MySQL的bin目录下或者如bin已添加至path,进入控制台即可)mysqldump -h hostAddress -u usrName -p databaseName > fileName.sql; (Password不必显式写入命令行,提示时再输入,下同)
导出数据库中的一个表:mysqldump -u usrName -p password databaseName tableName > fileName.sql;
导出一个数据库结构:mysqldump -u usrName -p password -d --add-drop-tabledatabaseName > d:\fileName.sql
导入一个数据库:(进入mysql数据库控制台)use databaseName; source d:\fileName.sql
注意:把导出的文件再导入时须先建立一个数据库
10、索引创建与删除
创建全文索引:CREATE FULLTEXT INDEX index_name ON tableName (fieldName, fieldName ...) ;
删除全文索引:DROP INDEX index_name ON talbe_name;
查看索引:SHOW INDEX FROM tableName;