基本操作
指定位置添加列
- 添加
new_column_name
到old_column_name
之后(AFTER)
ALTER TABLE tablename ADD COLUMN new_column_name VARCHAR(255) CHARACTER SET UTF8 AFTER old_column_name;
- 添加
new_column_name
到第一列(FIRST)
ALTER TABLE tablename ADD [COLUMN] new_column_name VARCHAR(255) CHARACTER SET UTF8 FIRST
表修改
- 修改表名
ALTER TABLE table_name RENAME TO new_table_name;
- 修改列名
ALTER TABLE table_name CHANGE old_column_name new_column_name;
- 修改属列属性
ALTER TABLE table_name MODIFY column_name VARCHAR(1500);
视图
- 创建视图
(create view ... as ...)
CREATE VIEW view_name AS
SELECT column1, SUM(column2 * column3) sum
FROM table_name
GROUP by column1
ORDER BY sum DESC;
删除表数据
- 删除指定数据
(delete)
DELETE FROM table_name [conditions];
- 删除全部数据
(truncate, delete)
# 删除全部数据, id重置为0
TRUNCATE table_name;
# 仅删除全部数据
DELETE FROM table_name;
- 删除表
(drop)
DROP table_name;
插入数据(INSERT)
- 插入数据
INSERT INTO table_name(field1, field2,... fieldN)
VALUES(value1, value2,... valueN); - 表间相互插入
(INSERT INTO ... SELECT)
- 两张表间相互插入
INSERT INTO table_name1(field1, field2)
SELECT field1, field2
FROM table_name2; - 三张表间相互插入
INSERT INTO table_name1(field1, field2)
SELECT * FROM
(SELECT table_name2.field1, table_name3.field2
FROM b JOIN c) AS tb
- 两张表间相互插入
查找(SELECT)
- 查找重复记录
- 查找全部重复记录
重复字段(column_1, column_2, ..., column_n)
SELECT * FROM table_name
WHERE (column_1, column_2, ..., column_n)
IN (
SELECT column1, column2, ..., column_n
FROM table_name
GROUP BY colum_1, column_2, ..., column_n
HAVING COUNT(*) > 1
);
- 过滤重复记录(只显示一条)
SELECT * FROM table_name
WHERE (column_1, column_2, ..., column_n)
IN (
SELECT column1, column2, ..., column_n
FROM table_name
GROUP BY colum_1, column_2, ..., column_n
HAVING COUNT(*) > 1
) AND id
IN (
SELECT MIN(ID) FROM table_name
GROUP BY colum_1, column_2, ..., column_n
HAVING COUNT(*) > 1);
- 查找全部重复记录
- 删除重复记录只保留id最小记录
select * from vitae a
where
(a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq
having count(*) > 1)
and rowid not in (select min(rowid) from vitae group
by peopleId,seq having count(*)>1)
数据库导出(mysqldump)
用法: mysqldump -u用户名 -p密码 [-d] 数据库名 [表名] > 脚本名;
- 导出数据库
db_name
的表结构到db.sql [-d]
mysqldump -uroot -pdbpasswd -d db_name > db.sql;
- 导出数据库
db_name
中表table_name
的结构到db.sql [-d]
mysqldump -uroot -pdbpasswd -d db_name table_name > db.sql;
- 导出数据库
db_name
所有表结构及数据到db.sql
mysqldump -uroot -pdbpasswd db_name > db.sql;
- 导出数据库
db_name
中表table_name
结构及数据到db.sql
mysqldump -uroot -pdbpasswd db_name test > db.sql;