第一天记录学习过程-----记录第10天学习数据分析—sql基础操作
今天,是我第一次写博客,小小激动,但希望自己能坚持,在数据分析道路,我希望自己能走得更远。
今天我主要学了当代数据库类型,和创建数据库表,对于一些关系字符进行了解,约束条件,还有查询(where,group by ,having,order by),更改,删除和较为复杂的查询操作列表
1.文本转换
txt,asci(excle版本)想在mysql操作,得变成utf8:create database 数据库名称 character set utf8;
2.类型–常用
int整形,整数型,如果是有符号,则在语句后面加unsigned 变成无符号
float(m,d)(小)浮点型 ,double(m,d)(大) 浮点型
M为总体位数,d小数点后位数
字符串:Varchar(字符长度) 可变长度文本型,不需要换算字节 ,可节 省空间
Char 固定长度文本,空下来的就用空来填充
日期型:Datatime:YYYY-MM-DD HH:MM:SS
注意:一个汉字占两个字符的长度,但是sql仍然作为一个字符取
3.执行语句
数据库:
创建:create database 库名;
查询:show create database ;
**使用数据库:use 库名;这个操作数据库经常用
删除:drop database 库名;
drop table 表名;
drop class 类名;
表:
创建:create table 表名;
查看所有表:show tables;
创建表时候,字段用逗号,最后括号后用分号

第一天记录学习过程-----记录第10天学习数据分析---sql基础操作

  **约束条件:(可多个一起用)**
          	primary key:主键,非空不重复  单个主键:sno int primary key   多个主键:primary    key(sno,sname)**
          	not null:非空
          	unique:唯一约束,确保表的一列或多列不出现重复值
          	auto_increment:一个表只能有一个自增字段,自增字段必须为主键的一部分。默认情况下从1开始自增,不出现空值,唯一
          	default:默认值’:把空值null’改成默认值   跟着替代那个的类型
          	![在这里插入图片描述](https://img-blog.csdnimg.cn/20181104205132848.)

导入数据:
方法一:insert into student (“A001”,“小明”,“23”);
方法二:外部导入:
load data local infile ‘C:/Users/CDA/Desktop/data/t1.csv’------这里的路径要“/”
into table test1 ---------------------把文件加入test1表
fields terminated by ‘\t’ --------------------分割符是’\t’,操作前看你文件是什么分隔符
ignore 1 line ---------------不需要第一列,所以忽略

**查询:(select...from..)**
	   	导入内容:select * from 表名;
	    行数: select count(*) from 表名;
		检查表结构:desc 表名;
**更改,跟新:(alter table)**
		改表名: rename
		Alter table 表名1 rename 表名2;
		改变字段后的属性 modify     把老的删掉
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20181104210032662.)
	   改变字段和字段后面属性 change    把老的删掉
	.	![在这里插入图片描述](https://img-blog.csdnimg.cn/20181104210110769.)
	   增加新字段 add
	.	![在这里插入图片描述](https://img-blog.csdnimg.cn/20181104210144890.)
	   改变顺序: first,after   之前的数据已经被删除,所以也要连着属性一起写
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20181104210204558.)
	   删除字段
			alter table empdep drop maname
			删除主键:alter table empdep drop primary key;

Select语句深入
select * from 表
where条件
group by 字段 having 条件、 groupby 分组 where分组前条件,having分组后条件
desc 字段 Desc降序,默认升序 若有两个字段,则先执行第一个字段,再执行第二 个字段

a.聚合类函数:avg,sum,max,min ,count
1、having放在group by 的后面
2、group by 后面只能放非聚合函数的列
3、where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据, 条件中不能包含聚组函数,使用where条件显示特定的行。
4、having,是进行分组后,的筛选条件
b.连接方式(表*表):
内连接:Select * from 表1 inner join 表2 on 表A.key=表B.key ------ 内连接是链接相同key数据,不同不要
左连接:select * from 表1 left join 表2 on 表A.key=表B.key ------ 左连接是右边有左边有一样的key的数据都写上,若左有,右没有,则还是写,只是值为null
右连接:select * from表1 right join 表2 on 表A.key=表B.key
------跟左连接一样的反过来
第一天记录学习过程-----记录第10天学习数据分析---sql基础操作

c.联合语句(多个查询语句)
Union结果去掉重复项:Select 表1.* from t1 union select t2.* from t2
Union all:结果没有去除重复项:Select 表1.* from t1 union all select t2.* from t2
相当于纵向合并:即使两表名字不同,计算机都是叠加一起,跟excle PQ不同(pq要有相同名称)
d.查询操作符列表:
第一天记录学习过程-----记录第10天学习数据分析---sql基础操作
注意:
all 和any语句,是跟比较符一起用
第一天记录学习过程-----记录第10天学习数据分析---sql基础操作
有时候,in和all相同,得出结果相同。
第一天记录学习过程-----记录第10天学习数据分析---sql基础操作

e.删除重复记录
Select distinct 字段 from表
以主键分组=没分组,因为主键只有一个

下面就是一些琐碎的知识:
1.不要直接打开sql文件,因为没有跟sql instance链接,而是 打开数据库后,把sql拖进里面
2.注释“-- ”横杠横杠空格 或者“#”
4.错误代码:1046 没有使用数据库
5.sys数据库的自己系统,不能改
Schemas下的是对象—子对象(表,视图(数据映射),存储过程(编写批处理),函数)

相关文章:

  • 2022-01-18
  • 2021-04-19
  • 2021-06-02
  • 2022-12-23
  • 2021-06-25
  • 2021-08-06
  • 2022-01-20
  • 2021-04-02
猜你喜欢
  • 2021-06-04
  • 2022-01-03
  • 2021-09-08
  • 2022-12-23
  • 2021-08-11
  • 2021-11-13
  • 2021-06-26
相关资源
相似解决方案