mysql数据库的基础知识和操作,笔记2,权亮

Use 数据库,是未来使用数据库的必要的操作,之后才能使用这个数据库内的数据表格。
Mysql workbench 左侧观看SCHEMAS,刷新按钮,下面可以看到新建的数据库。

Utf8,数据库的编码格式,编码结构一致,
Excel 的编码格式Ansi,
文件分为文本文件和二进制文件,文本文件可以用记事本打开,可以认出来内容。二进制文件在文本里打开是二进制编码。
文本文档在转换成excel文件格式时候,另存为,保存类型,必须是所有文件,不要用文本文档。
数据类文本文件包含两种内容,数据内容和分隔符。Csv文件的分隔符是,。Txt文件的分隔符是Tab(制表符)
转换格式时候,如果不保存为所有文件,文件会自动把,换成制表符。
出现乱码,想把格式改成utf8,可以在每次使用数据库,然后输入命令:
Alter database 数据库名称 character set utf8;

观看所有数据库列表命令:
Show databases;
使用数据库test:
Use test;
删除数据库test:
Drop database test;

用表结构信息来其他人看得懂,其次有利于清晰的写命令。
在这里插入图片描述
包含:表名,字段,字段表述,数据类型,约束。
建表
Create table 表名(…表内内容);
在这里插入图片描述
每一行用逗号结束后,最后一行不用写逗号

查表
Show tables; 查询数据库中所有的表格
删表
Drop table 表名;

1046错误,没有指明使用某一个数据库,无法操作。
在这里插入图片描述
常用的数据类型
在这里插入图片描述
Int类型,如果想把标明无符号类型,就在定义后面加上一个unsigned。Int(显示位数),推荐不写括号。
FLOAT(M,D)m代表所有显示的位数,d代表小数后面的位数。
在这里插入图片描述
无论是date,还是time,转换到excel都是长时间格式。
不同软件,数据类型不同,要检查是否兼容。
在这里插入图片描述
Varchar(m),可变长度符串,只要我实际录入的长度小于m,那我数据库会记录我实际长度,增加效率。Mysql中M不是字节数,是字符数。和其他软件兼容,需要确认是不是字节。

约束条件
在这里插入图片描述
在这里插入图片描述
主键约束分为单字段主键和和多字段,特点非空,唯一。多字段主键需要在定义最后单独定义。主键只能有一个,但是可以由多个字段,也就是primary key只能出现一次。
命令单词之间用空格,同一命令字段之间用逗号。
非空约束,就是不能有空值。
唯一性约束,数值是惟一的,可以出现一次空值。
默认约束,初始值,default’’,默认值必须和前面的定义值一样。
自增字段,需要是主键一部分,而且要是int整数型。

填充数据
Insert into 表名(字段1,字段2,…) values(值1,值2,….)字段1和值1,插入数据必须字段的数据类型一样。

导入外部数据
在这里插入图片描述
第一句是路径下的文件导入,路径必须是英文。路径的斜杠必须向左,且写到扩展名
第二句是导入表中
第三句给数据库提示分隔符,‘\t’这是txt,csv是‘,’
第四局是忽略第一行

导数据不能重复操作,如果已经导数据,发现错误,删除,重新建表。

验证导入数据的准确性。
Select * from 表名; //检查表的信息。
Select count(*) from 表名; //检查总行数。
Desc 表名; //检查表结构。
修改数据表

Alter table 表名 rename 新表名;//改新表名
Alter table 表名 modify 字段 新数据类型;//重新定义新数据类型,如果之前有not null,之后没有,就没有了。
Alter table 表名 change 旧字段名 新字段名 数据类型约束; //重新命名并定义新字段,属性。
Alter table 表名 add 字段名 约束属性;//添加新字段,并排在最后。

Alter table 表名 modify 字段名 属性 first; //将字段放在最前面,其实也是重新定义字段。
Alter table 表名 modify 字段名 属性 after 字段名; //将字段放在某字段后,其实也是重新定义字段。
Alter table 表名 drop 字段;//删除字段
Alter table 表名 drop primary key;//删除主键。
Alter table 表名 add primary key(……);//增加主键。

SQL的数据查询功能
查完数据最好从业务逻辑上进行验证,不是写了命令就是一定是对的数据。
三个方向验证,横竖斜。
两个逻辑,表之间的逻辑,汇总逻辑。
中括号[],是可以省略的语句。
在这里插入图片描述
Where 是对原始数据进行筛选,having是对汇总后的数据记性筛选。Where group by,having order by,顺序不能改。

对主键进行分组查询,等于没分组,数据和主键是一一对应的。
Select * from monthly_indicator where city_name=’北京’;
Select max(pm25) from monthly_indicator group by monthly_dindicator;
在这里插入图片描述
select city_name,avg(pm10) from monthly_indicator group by city_name order by apm10 desc; 根据pm10的值降序查询不同城市PM10的平均值

在这里插入图片描述

select city_name,avg(pm10) from monthly_indicator group by city_name order by avg(pm10) desc;//根据pm10平均值降序排列查询不同城市的pm10的平均值。

连接逻辑
关键字段,里面的信息
方向性 左表 Left/right join 右表
主附关系,连接方向,决定谁是主表,谁来出具数据范围
对应关系,决定结果行数,所有连接可能性,都要表现出来,没有的用null代替。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

只要有重复的字段名,同名字段,不论卸载那里,就要在前面加上表名,否则不知道哪个表的字段,如果字段名字不一样,可以省略表名.。

联合查询
上下查询结果在一起。
合并后的字段名上边的字段名,所以我们要两个查询保证数据类型和顺序一致。

//使用union和union all必须保证各个select 集合的结果有相同个数的列,并且每个列的类型是一样的。但列名则不一定需要相同,oracle会将第一个结果的列名作为结果集的列名

在这里插入图片描述
在这里插入图片描述
查询操作符

在这里插入图片描述
Where 字段内容 like ‘a%’; //开头以a开始的内容,%a%,这是查找任意内容中有a的。
Where 字段内容 like ‘b_’, b开头后面只有一位。
Not 放在操作符前面,除了is not null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章