MYSQL 前5章总结
查询:WHERE
/*以EXCEL表展示(直观)*/
SELECT *FROM 表名; //* 所有
/*IN*/
SELECT 列名 FROM 表名 WHERE 列名 IN(类型一致);
/*BETWEEN*/
SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 下限 AND 上限; //min AND max(INT)
/*<> !=*/
SELECT 列名 FROM 表名 WHERE 列名 <>33.1; //关系运算符后是DECIMAL(15,0);或者 INT
或者 FLAOT;
/*AND OR*/
SELECT 列名 FROM 表名 WHERE 列名=" " AND 列名=" "; //同时满足条件
SELECT *FROM 表名 WHERE 列名="" OR 列名=""; //存在其中之一就显示
/*IS NULL*/
SELECT 列名 FROM 表名 WHERE 列名 IS NULL; //创建表时,不设置NOT NULL
/*NOT*/
SELECT *FROM 表名 WHERE 列名 IS NOT NULL; //除了这行中有空值的,其他的都显
示
/*LIKE*/
SELECT *FROM 表名 WHERE 列名 LIKE '_%%ss_%'; // _占位符(一个字母或汉字) %通配
符(0个或1个或多个) ss字符串(字符串满足有ss的)
插入:
/*主键为NULL时可以多次添加 1---无限AUTO_INCREMENT*/ pk_id INT PRIMARY KEY
AUTO_INCREMENT,
INSERT INTO 表名 VALUES(NULL,"",3434,""),
(NULL,"",4352,"");
/*主键为特定值时只能添加一次 PK具有唯一性 1---6*/
INSERT INTO 表名 VALUES(1,"",3212,""),
(2,"",2145,"");
/*将First_group_new(旧表)中的两列数据复制到Second_group(空白表)*/
INSERT INTO 已有空白表(列名 VARCHAR(30),列名 INT) SELECT 列名 VARCHAR(30),列名 INT
FROM 已有数据旧表名 WHERE AGE<20,AND SEX="MAN"; //前面有括号,后面没有 对应类
型一致
修改行:
/*将ID为 1 的行数据改为ID为 8 的行数据*/
UPDATE 表名 SET ID=新值 WHERE ID=旧值;
/*将ID为 8 的行数据改为ID为 1 的行数据---还原*/
修改列:
/*修改单列数据*/
UPDATE 表名 SET 列名=新值 WHERE 列名=旧值;
/*修改多列数据*/
UPDATE 表名 SET 同行列名=新值,同行列名=新值 WHERE 列名=旧值;
/*修改列的类型*/
ALTER TABLE 表名 CHANGE COLUMN 列名 列名 类型;
/*添加列*/
ALTER TABLE 表名 ADD COLUMN 列名;
删除:
/*删除表数据(扫描),记录写入LOG日志*/
DELETE FROM 表名;
/*删除表数据 ID=1,2,3*/
DELETE FROM 表名 WHERE ID IN(1,2,3); //这个查询效率高
DELETE FROM 表名 WHERE ID<4;
DELETE FROM 表名 WHERE ID BETWEEN 1 AND 3;
/*删除表数据中年龄为21的行数据*/
DELETE FROM 表名 WHERE age=21;
/*永远删除表数据,记录不会写入LOG日志(效率高)*/
TRUNCATE 表名;
|
/*删除列*/
ALTER TABLE 表名 DROP COLUMN 列名;
备份表:
/*备份表*/
CREATE TABLE 新表名 SELECT *FROM 旧表名;
CREATE TABLE 新表名 SELECT 列名1,列名2 FROM 旧表名 WHERE 条件; //这个备份快
/*将First_group_new(旧表)中的两列数据复制到Second_group(空白表)*/
INSERT INTO 已有空白表(列1,列2) SELECT 列1,列2 FROM 旧表名 WHERE 条件;
SQL语句:
/*主键序号自动増长*/
AUTO_INCREMENT
/*删除重复*/
DISTINCT
/*升/降序排列*/
列名 ORDEY BY ASC/DESC; //默认升序