今天网龙笔试遇到了几个SQL题,现在顺便就总结一下常用的SQL操作。
内连接:只将符合条件的行显示出来
SELECT s.name,m.mark FROM student s,mark m WHERE s.id=m.studentid;
SELECT s.name,m.mark FROM student s INNER JOIN mark m ON s.id=m.studentid
左连接:将左表所有的行显示,右表只显示符合条件的行
SELECT s.name,m.mark FROM student s LEFT JOIN mark m ON s.id=m.studentid;
全连接:将所有行都显示出来,不论两表是否有符合的对应项
SELECT s.name,m.mark FROM student s FULL JOIN mark m ON s.id=m.studentid
复制A表
CREATE Table_B LIKE Table_A; SELECT* INTO Table_B FROM Table_A; /*B表不存在,自动创建B表*/ INSERT INTO Table_B(fld1, fld2) SELECT fld1, 5 from Table_A; /*B表存在*/
将A表的column为1的结果抽取给B表
INSERT Table_B SELECT * FROM Table_A WHERE column=1;
根据column为B表建立降序索引
CREATE INDEX Index_B ON Table_B(column desc);
根据date统计B表
SELECT COUNT(*) FROM Table_B GROUP BY date;
在B表中删除id=1的列
DELETE FROM Tabe_B WHERE id=1;
删除index和删除B表
DROP INDEX Index_B;
DROP TABLE Table_B: