MYSQL 前5章总结

来源:互联网 发布:淘宝应用权限设置 编辑:程序博客网 时间:2024/05/20 20:46
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;  //默认升序