当前位置:首页 > 黑马程序员:数据库MYSQL
3.5 DOS操作数据乱码解决
我们在dos命令行操作中文时,会报错
insert into user(username,password) values(‘张三’,’123’); row 1
ERROR 1366 (HY000): Incorrect string value: '\\xD5\\xC5\\xC8\\xFD' for column 'username' at
原因:因为mysql的客户端编码的问题我们的是utf8,而系统的cmd窗口编码是gbk
解决方案(临时解决方案):修改mysql客户端编码。
show variables like 'character%'; 查看所有mysql的编码
在图中与客户端有关的编码设置: client connetion result 和客户端相关 database server system 和服务器端相关 ? 将客户端编码修改为gbk.
set character_set_results=gbk; / set names gbk;
以上操作,只针对当前窗口有效果,如果关闭了服务器便失效。如果想要永久修改,通过以下方式:
? 在mysql安装目录下有my.ini文件
default-character-set=gbk 客户端编码设置 character-set-server=utf8 服务器端编码设置
注意:修改完成配置文件,重启服务
黑马程序员郑州中心 编著
第4章 SQL查询语句
查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表。 ? 创建账务表:
CREATE TABLE zhangwu (
id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID name VARCHAR(200), -- 账务名称 money DOUBLE, -- 金额 );
? 插入表记录:
INSERT INTO zhangwu(id,name,money) VALUES (1,'吃饭支出',247); INSERT INTO zhangwu(id,name,money) VALUES (2,'工资收入',12345); INSERT INTO zhangwu(id,name,money) VALUES (3,'服装支出',1000); INSERT INTO zhangwu(id,name,money) VALUES (4,'吃饭支出',325); INSERT INTO zhangwu(id,name,money) VALUES (5,'股票收入',8000); INSERT INTO zhangwu(id,name,money) VALUES (6,打麻将支出,8000); INSERT INTO zhangwu(id,name,money) VALUES (7,null,5000);
4.1 查询的语法:
? 查询指定字段信息
select 字段1,字段2,...from 表名;
例如:
select id,name from zhangwu;
? 查询表中所有字段
select * from 表名;
例如:
select * from zhangwu;
注意:使用\在练习、学习过程中可以使用,在实际开发中,不推荐使用。原因,要查
询的字段信息不明确,若字段数量很多,会导致查询速度很慢。
黑马程序员郑州中心 编著
? distinct用于去除重复记录
select distinct 字段 from 表名;
例如:
select distinct money from zhangwu;
? 别名查询,使用的as关键字,as可以省略的.
别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。
表别名格式:
select * from 表名 as 别名; 或
select * from 表名 别名; 列别名格式:
select 字段名 as 别名 from 表名; 或
select 字段名 别名 from 表名;
例如
表别名:
select * from zhangwu as zw; select money as m from zhangwu; 或
select money m from zhangwu; 列别名:
? 我们在sql语句的操作中,可以直接对列进行运算。
例如:将所有账务的金额+10000元进行显示. select pname,price+10000 from product;
黑马程序员郑州中心 编著
4.2 条件查询
where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。 格式 :select 字段 from 表名 where 条件; while条件的种类如下: 比较运算符 > < <= >= = 大于、小于、大于(小于)等于、不等于 <> BETWEEN ...AND... 显示在某一区间的值(含头含尾) 显示在in列表中的值,例:in(100,200)
IN(set) LIKE 通配符 模糊查询,Like语句中有两个通配符: % 用来匹配多个字符;例first_name like ‘a%’; _ 用来匹配一个字符。例first_name like ‘a_’; 判断是否为空 is null; 判断为空 is not null; 判断不为空 IS NULL 逻辑运算符 and or not 多个条件同时成立 多个条件任一成立 不成立,例:where not(salary>100); 例如:
查询所有吃饭支出记录
黑马程序员郑州中心 编著
共分享92篇相关文档