-- 基础
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