1. 插值
将另一个表中数据插入当前表中
INSERT INTO TableName_1
SELECT * FROM TableName_2 WHERE conditions;
直接插入值
INSERT INTO TableName (ColumnName, ColumnName)
VALUES( value, value );
将多个表的数据汇总插入当前表中
INSERT INTO TableName ( name, id )
SELECT table1.name, table2.id
FROM table1,table2
WHERE table1.date = table2.date;
2. 更新语句
直接更新表中一些值
UPDATE TableName SET date = NULL;
3. 查看语句
查看属于某个属性的集合中该属性的个数,如下面就是看属于某天的某个人的记录总数
SELECT DATE, NAME, COUNT(*) FROM TABLENAME GROUP BY 1,2;
查看按照某列值分组,并且是分组里实例个数大于1的所有值。如:计算每天的总数大于1的文档个数。
SELECT COUNT(*) FROM TableName GROUP BY date HAVING COUNT(*)>1
查看按照某列分组,并且是分组里实例个数大于1的值的个数。如:每天文档总数大于1的天数。在上面的基础上给新建的表取别名。
SELECT COUNT(*) FROM (SELECT COUNT(*) FROM TableName GROUP BY date HAVING COUNT(*)>1) e ;
查看某列的所有元素,且去除重复元素。
SELECT DISTINCT FieldName FROM TableName;
4. 查看表结构
DESC TableName;
文件导入导出
从CSV文件导入数据,其中最后的括号内需填写的是你需要从文件读取的属性名,如你需从文件中读入的是id,name。则括号中写成(id,name)。注意顺序和文件中的顺序一致。
LOAD DATA LOCAL INFILE 'D:\\YOUR_ROUTE\\YOUR_FILE_NAME.csv' INTO TABLE TableName
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (DB_FIELDS_1, DB_FIELDS_2);
P.S. CSV文件是一种Excel支持的文件格式,可以从Excel中直接将文件导出致CSV文件。其格式是一条数据一行,以转行符分隔(Linux下是'\r',Windows下是'\r\n')。数据的每个属性由逗号隔开。
从SQL文件导入数据,先选择或者创建数据库,然后再数据库下执行命令。
SOURCE SQL_FILENAME
表合并
表A和表B共有一个字段F,要将表B中数据按照该字段F写入表A中。使用INNER JOIN语句,即先对表A和表B用字段F做内积。再整列的更新表。
UPDATE TABLE1 a INNER JOIN TABLE2 b ON (a.match = b.match) SET a.FIELD1 = b.FIELD2;
Linux上建立数据库
建立数据库:
CREATE DATABASE DbName DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
建立表格:
修改表格:
ALTER TABLE TableName ADD ColName1 varchar(30) AFTER ColName2;
ALTER TABLE TableName CHANGE ColName1 ChangeName varchar(30);
数据处理
处理时间戳:
FROM_UNIXTIME(TIMESTAMP, ‘%Y%m%d’) UNIX_TIMESTAMP('DATETIME')
Little Tips
1. 注释: 单行用 --; 多行用 /**/