MySql 基础 -_-"
来源:互联网 发布:淘宝客网址 编辑:程序博客网 时间:2024/05/24 02:20
2017.05.12
GBK ERROR
CREATE TABLE myzhangwu2(id INT PRIMARY KEY AUTO_INCREMENT, zname VARCHAR(200), zmoney DOUBLE)ENGINE=InnoDB DEFAULT CHARSET=utf8;
excute:
INSERT INTO myzhangwu2(id, zname, zmoney) VALUES (1, "吃饭支出", 1000);
error:
ERROR 1366 (HY000): Incorrect string value: '\xB3\xD4\xB7\xB9\xD6\xA7...' for column 'zname' at row 1
solve:
set names gbk; INSERT INTO myzhangwu2(id, zname, zmoney) VALUES (1, "吃饭支出", 1000);
insert
INSERT INTO zhangwu(id,zname,zmoney) VALUES (1,'吃饭支出',247);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (2,'工资收入',12345);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (3,'服装支出',1000);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (4,'吃饭支出',325);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (5,'股票收入',8000);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (6,'打麻将支出',8000);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (7,NULL,5000);
select
/* 查询指定列的数据 格式: select 列名1,列名2 from 表名*/SELECT zname,zmoney FROM zhangwu;/* 查询所有列的数据 格式: select * from 表名*/SELECT * FROM zhangwu;/* 查询去掉重复记录 DISTINCT 关键字 跟随列名*/SELECT DISTINCT zname FROM zhangwu/* 查询重新命名列 as 关键字*/SELECT zname AS 'name' FROM zhangwu /* 查询数据中,直接进行数学计算 列对数字进行计算*/SELECT zname,zmoney+1000 AS'sum' FROM zhangwu-- 查询所有的吃饭支出SELECT * FROM zhangwu WHERE zname='吃饭支出'-- 查询金额大于1000SELECT * FROM zhangwu WHERE zmoney>1000-- 查询金额在2000到5000之间 SELECT * FROM zhangwu WHERE zmoney >= 2000 AND zmoney <= 5000-- 改造成between and 方式SELECT * FROM zhangwu WHERE zmoney BETWEEN 2000 AND 5000-- 查询金额是 1000,3500,5000 SELECT * FROM zhangwu WHERE zmoney = 1000 OR zmoney=3500 OR zmoney=5000-- 改造成in方式SELECT * FROM zhangwu WHERE zmoney IN (1000,3500,5000)-- like 模糊查询 配合通配符-- 查询所有的支出SELECT * FROM zhangwu WHERE zname LIKE '%支出%'-- 查询账务名字,五个字符的SELECT * FROM zhangwu WHERE zname LIKE'_____'-- 查询账务名,不为空的SELECT * FROM zhangwu WHERE zname IS NOT NULLSELECT * FROM zhangwu WHERE NOT ( zname IS NULL )SELECT * FROM zhangwu WHERE NOT ( zname IS NULL AND zmoney = 1000)
sum & group by & order by & having
分组查询: group by 被分组的列名 必须跟随聚合函数 select 查询的时候,被分组的列,要出现在select 选择列的后面*/ SELECT SUM(zmoney),zname FROM zhangwu GROUP BY zname-- 对zname内容进行分组查询求和,但是只要支出SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'GROUP BY znameORDER BY getsum DESC-- 对zname内容进行分组查询求和,但是只要支出, 显示金额大于5000-- 结果集是分组查询后,再次进行筛选,不能使用where, 分组后再次过滤,关键字 havingSELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'GROUP BY zname HAVING getsum>5000
add & modify & change & drop & rename
CREATE TABLE users ( uid INT PRIMARY KEY AUTO_INCREMENT, uname VARCHAR(20), uaddress VARCHAR(200) ); /* 添加列,添加字段 alter table 表名 add 列名 数据类型 约束 */ ALTER TABLE users ADD tel INT ; /* 修改列, 在原有的列上修改 修改列名,数据类型约束 alter table 表名 modify 列名 数据类型 约束 */ ALTER TABLE users MODIFY tel VARCHAR(50); /* 修改列名 alter table 表名 change 旧列名 新列名 数据类型 约束 */ ALTER TABLE users CHANGE tel newtel DOUBLE; /* 删除列 alter table 表名 drop 列名 */ ALTER TABLE users DROP newtel; /* 修改表名 rename table 表名 to 新名 */ RENAME TABLE users TO newusers
update & delete
/* 对数据进行更新操作 数据在原有的基础上修改 格式: update 表名 set 列1=值1,列2=值2 where 条件 where 条件: 数据中的唯一性*/-- 修改智能手机,价格上调到15999UPDATE product SET price = 15999 WHERE id=2-- 修改彩色电视,名字改为黑白电视机,价格,100UPDATE product SET pname='黑白电视机', price=100 WHERE id = 6/* 修改条件的写法 id=6 id<>6 id<=6 与或非 && || ! && and || or ! not id in (1,3,4,5,6) 包含*/-- 将笔记本的价格,和空调的价格,全部修改为2000UPDATE product SET price = 2000 WHERE id = 1 OR id = 7;/* 删除表中的数据 格式: delete from 表名 where 条件 drop table 表名 删除整个数据表*/-- 删除热水器DELETE FROM product WHERE id=8;
- mysql命令_基础
- MySql 基础 -_-"
- MySQL必知必会_基础查询
- MySQL操作01_基础命令
- mysql基础总结_思维导图总结
- MYSQL基础_聚合函数_分组和多表连接查询
- 基础_积累_思考
- 软件工程基础_概述
- 设计模式_基础
- python基础_序列
- Java基础_函数
- Java基础_多线程
- Java基础_序
- Java基础_环境变量
- Java基础_标识符
- Java基础_数据类型
- Java基础_变量
- Java基础_多态
- https自签名证书_浏览器_Android_Tomcat实践
- 数据分析与数据挖掘
- Hadoop学习笔记(5)
- MapReduce多路径输出
- 【RabbitMQ】——三种Exchange模式(Fanout、Direct、Topic)
- MySql 基础 -_-"
- mysql事务和锁InnoDB
- python基础----随机数和md5加密
- deform.3D.v5.03.rar
- python2.7版本在win7、64位系统安装遇到的问题
- redis主从(自用)
- Hadoop学习笔记(6)
- BootStrap学习笔记,优缺点总结
- Kali2.0安装Eclipse+pyDev,规避Kali2.0java1.7版本