4.SQL基础应用

  • 连接数据库
~]# mysql
-u:用户名 
-p:密码
-S:socket文件
-h:ip
-P:端口
-e:直接执行的命令
<:恢复数据
  • 字符集
> show charset;
#常用
utf8:3个字节
utf8mb4:4个字节,支持emoji
  • 排序规则
utf8mb4_general_ci:大小写不敏感
utf8mb4_bin:大小写敏感
  • 数据库定义
#创建数据库
> CREATE DATABASE zabbix CHARSET utf8mb4 COLLATE  utf8mb4_bin;

#查看数据库
> SHOW DATABASES;
> SHOW CREATE DATABASE zabbix;

#删除数据库
> DROP DATABASE oldguo;
  • 查询语句
    • 查询语句优先级
select  列   
from  表   
where 条件  
group by  条件 
having   条件 
order by 条件
limit
    • 普通查询
#查询表中 name和population的值
SELECT  NAME ,population   FROM  city;
    • 条件查询
#SELECT配合WHERE 子句使用
#查询中国所有的城市名和人口数
SELECT  NAME,population FROM city WHERE countrycode='CHN';

#世界上小于100人的城市名和人口数
SELECT NAME,population FROM city WHERE population<100;
    • 逻辑操作符
#1. 查询中国人口数量大于1000w的城市名和人口
SELECT NAME,population FROM city WHERE countrycode='CHN' AND population>8000000;

#2. 查询中国或美国的城市名和人口数
SELECT NAME,population FROM city WHERE countrycode='CHN' OR countrycode='USA';

#3. 查询人口数量在500w到600w之间的城市名和人口数
SELECT NAME,population FROM city WHERE population>5000000 AND population<6000000;
    • 模糊查询
#where 配合 like 子句 模糊查询
#查询一下contrycode中带有CH开头,城市信息
SELECT * FROM city  WHERE countrycode  LIKE 'CH%';
    • in语句
#where 配合 in 语句
#查询中国或美国的城市信息
SELECT NAME,population FROM city WHERE countrycode='CHN' OR countrycode='USA';
    • 分组查询
#GROUP BY 
#将某列中有共同条件的数据行,分成一组,然后在进行聚合函数操作.

#1. 统计每个国家,城市的个数
SELECT  countrycode ,COUNT(id) FROM city GROUP BY countrycode;

#2. 统计每个国家的总人口数.
SELECT countrycode,SUM(population) FROM city GROUP BY countrycode;

#3. 统计每个 国家 省 的个数
SELECT  countrycode,COUNT(DISTINCT district) FROM city GROUP BY countrycode;

#4. 统计中国 每个省的总人口数
SELECT district, SUM(population) FROM  city WHERE countrycode='CHN' GROUP BY district ;

#5. 统计中国 每个省城市的个数
SELECT district, COUNT(NAME) FROM  city WHERE countrycode='CHN' GROUP BY district ;

#6. 统计中国 每个省城市的名字列表GROUP_CONCAT()
SELECT district, GROUP_CONCAT(NAME) FROM  city WHERE countrycode='CHN' GROUP BY district ;

  

  

上一篇:MySQL基础


下一篇:用Python实现遗传算法