mysql基础命令

    xiaoxiao2021-12-14  22

    -- 基础 CREATE TABLE table2 (NAME VARCHAR(20), sex CHAR(1));  -- 建表  DESCRIBE MYTABLE;   #表结构  SHOW TABLES; #查看表  SHOW DATABASES; #查看数据库  CREATE DATABASE cmm_text1; #创建数据库  DROP DATABASE cmm_text1;  # 删除数据库  USE mmc_text; #使用数据库  INSERT INTO MYTABLE VALUES ('hhh','m') ;  #插入数据  LOAD DATA LOCAL INFILE 'E:/沈阳项目/mysql.txt' INTO TABLE MYTABLE;  #文本方式将数据装入表  SELECT * FROM mytable ; # 查询  TRUNCATE TABLE mytable ;  # 清空表  CREATE TABLE  MYTABLE1  LIKE  MYTABLE;   -- 复制表结构  CREATE TABLE  mytable2 AS SELECT * FROM mytable  WHERE 1=2  -- 复制表结构  DROP TABLE MYTABLE2; -- 删除表  ALTER TABLE mytable ADD COLUMN  depno VARCHAR(20) ;  -- 添加列  ALTER TABLE mytable ADD PRIMARY KEY (depno) ; -- 添加主键  ALTER TABLE mytable DROP PRIMARY KEY ;  # 删除主键  CREATE INDEX  indname  ON mytable(NAME); # 创建索引  SHOW INDEX FROM mytable ; # 查询索引  DROP INDEX indname ON mytable ;  -- 删除索引  CREATE OR REPLACE VIEW myview AS SELECT * FROM  mytable; -- 创建视图  DROP VIEW myview;  -- 删除视图  SELECT * FROM mytable ; -- 查询表    INSERT INTO table2  VALUES ('c3','m'); -- 插入数据   UPDATE mytable  SET NAME='mamingchen' WHERE depno='01' ;  -- 更新数据  DELETE FROM mytable  WHERE depno='01';  -- 删除数据  SELECT  COUNT(1) AS c FROM mytable WHERE depno LIKE '0%'  -- like 查相似, count(1) 查行数  SELECT * FROM mytable  ORDER BY depno DESC;  -- 由高到低排序  SELECT SUM(depno) FROM mytable ;  -- 求和  SELECT AVG(depno) FROM mytable ;  -- 求平均数  SELECT MIN(depno) FROM mytable ;  -- 最小值  SELECT MAX(depno) FROM mytable ;  -- 最小值  UNION  -- 合并去重   UNION ALL -- 合并  SELECT a.* FROM  table1 a LEFT JOIN table2  b ON (a.name=b.name)  WHERE b.name IS NULL ;  # 第一张表里有,第二张表没有  SELECT a.* FROM table1 a  INNER JOIN table2  b USING (`NAME`) ; # 两张表都有,去重  SELECT * FROM table1 a LEFT JOIN table2 b ON (a.name=b.`NAME`) ; -- 左关联,两表的匹配行和左表的所有行  SELECT * FROM table1 a RIGHT JOIN table2 b ON (a.`NAME`=b.`NAME`) ; -- 右关联, 两表的匹配行和右表的所有行  SELECT * FROM  table1 a FULL JOIN table2 b ON (a.`NAME`=b.name) ; -- 全关联 , 两表的匹配行和所有行  SELECT a.`name` ,MIN(depno),MAX(depno),AVG(depno),SUM(depno),COUNT(depno) FROM mytable a GROUP BY  a.`NAME`;-- 分组     -- 提升 INSERT INTO table2 SELECT * FROM table1  ;    -- 复制表数据 SET @a=0;  -- 设定变量   SELECT @a := @a + 1 AS rownum,b.name, b.sex FROM table2 b,(SELECT @a := 0)a ;  -- 变量使用 -- 删除重复数据 --  delete a -- from table2 a left join(  -- select (name) from table2 group by name -- )b on (a.name=b.name) -- where b.name is null ;     DROP TABLE IF EXISTS table3;  -- 如果存在删除 CREATE TABLE heyf_t10 (empid INT ,deptid INT ,salary DECIMAL(10,2) );  -- 建表 INSERT INTO heyf_t10 VALUES (1,10,5500.00), (2,10,4500.00), (3,20,1900.00), (4,20,4800.00), (5,40,6500.00), (6,40,14500.00), (7,40,44500.00), (8,50,6500.00), (9,50,7500.00);   -- 插入 SELECT empid,deptid,salary,rank FROM ( SELECT heyf_tmp.empid,heyf_tmp.deptid,heyf_tmp.salary,@rownum:=@rownum+1 , IF(@pdept=heyf_tmp.deptid,@rank:=@rank+1,@rank:=1) AS rank, @pdept:=heyf_tmp.deptid FROM ( SELECT empid,deptid,salary FROM heyf_t10 ORDER BY deptid ASC ,salary DESC ) heyf_tmp ,(SELECT @rownum :=0 , @pdept := NULL ,@rank:=0) a ) result;   #  根据部门来分组,显示各员工在部门里按薪水排名名次. -- 函数 SELECT NOW();  -- 当前时间 SELECT SYSDATE();  -- 当前时间 SELECT CURRENT_TIMESTAMP(); -- 当前时间 SELECT CURTIME();  -- 当前hh:mm:ss SELECT CURRENT_TIME();  -- 当前hh:mm:ss SELECT CURDATE(); -- 当前yyyy-mm-dd SELECT CURRENT_DATE(); -- 当前yyyy-mm-dd SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());  -- 返回时间戳,可以添加format格式'%Y %D %M %h:%i:%S' SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s');-- 2016-12-01 16:08:49 SELECT DATE_SUB("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND);  -- 减去1天1时1分1秒 SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR)  ;  -- 减去1天10小时 SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);  -- 减去31天 SELECT EXTRACT(YEAR FROM NOW());  -- 显示年 SELECT EXTRACT(YEAR_MONTH FROM NOW()); -- 显示年月 SELECT EXTRACT(DAY_MINUTE FROM SYSDATE());  SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");  -- 天到分 SELECT NOW() + INTERVAL 1 SECOND;   -- 加上1秒 SELECT INTERVAL 1 DAY + SYSDATE();  -- 加上1天 SELECT SYSDATE() - INTERVAL 1 SECOND; -- 减上1秒  SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 SECOND);   -- 加上1秒 SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 DAY);  -- 加上1天 SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND);  -- 加上1分1秒 SELECT PERIOD_DIFF(9802,199703); -- 返回时期之间的月数 SELECT PERIOD_ADD(9801,5);  -- 增加月份 SELECT SECOND(NOW());  -- 返回秒数 SELECT DAYOFYEAR(SYSDATE());  -- 一年中的第几天 SELECT GREATEST(101,1) ;  -- 返回最大值 SELECT LEAST(101,1);  -- 返回最小值 SELECT TRUNCATE(3.1415926,4);  -- 保留小数,不进位 SELECT ROUND(3.1415926,6);-- 四舍五入 SELECT UPPER('aaaaaa'); -- 全部大写 SELECT LCASE('AAAAAAA'); -- 全部小写 SELECT INSERT('asdfghjkl',5,4,'qwer'); -- 替换字符串 SELECT REVERSE('asdfghjkl');  -- 颠倒字符串顺序 SELECT REPEAT('mmc',3); -- 字符串复制 SELECT REPLACE('aaaaaaa','a','A');  -- 替换指定字符串 SELECT TRIM('    aaaaa    ');  -- 去除两边空格    trim(both/leading/trailing 'x' from 'xxxxabcxxx')   ltrim/rtrim() SELECT SUBSTRING_INDEX('www.mmc.com','.',-2);  -- 返回指定位置前的字符串 SELECT SUBSTRING('asdfghjkl',6); -- 从指定位置开始的字符串 SELECT RIGHT('asdfghjkl',5); --  右侧指定长度字符串 SELECT LEFT('asdfghjkl',5);  --  左侧指定长度字符串 SELECT RPAD('mmc',5,'!@');   --  字符串长度右侧填补 SELECT LPAD('mmc',5,'!@');   --  字符串长度左侧填补 SELECT INSTR('asdfghjkl','g');  -- 返回字符串第一次出现的位置 SELECT LOCATE('sd','asdfgsds',5);  -- 字符串在指定位置后第一次出现的位置 SELECT LENGTH('asdfghjkl');   -- 返回长度 SELECT CONCAT('asd','123','zxc','qwe');  -- 连接字符串
    转载请注明原文地址: https://ju.6miu.com/read-963029.html

    最新回复(0)