目录
前言
————新的一周学习开始了,简单学习了解了C语言、MYSQL————
一、C 语言
C语言是一种计算机程序设计语言。
1、执行C程序
1.1 代码
代码如下(示例):
#include <stdio.h>
int main()
{
printf("Hello,My C! \n");
}
/* \n: 换行*/
1.2 练习
平均成绩
替换两个数的值
二、MYSQL
MySQL是一个关系型数据库管理系统
1.1 了解mysql
数据库:关联表的合集;
数据表:数据库中的电子表格;
主键:(id)主键是唯一的,一个数据表中只能有一个主键,用来查询数据;
外键:外键用于关联两个表;
数据库由一个或者多个表格组成,表格由:
表头:header 每一列的名称;
列:col 有相同数据类型的数据;
行:row 每一行描述记录的具体信息;
值:value 行的具体信息,值必须与列数据类型相同;
键:key 键的值在列中具有唯一性;
2.命令
创建数据库:create database + 数据库名称;
删除数据库:drop database + 数据库名称;
选择数据库:use + 数据库名称;
创建数据表:create table table_name(自己取得名字);
删除数据表:drop table table_name(自己取得名字);
插入数据:insert into table_name(自己取得名字) values();
查询数据:select * from table_name;
自增:auto_increment;
查表:show tables;
更新:update 表名 set 字段名=字段值,字段名=字段值 from 表名 where 条件;
例:update book_tab set price=90 where id=7;
3.查询(检索)
SELECT 字段 FROM 表名 WHERE
SELECT 字段1,字段2...字段n FROM 表名 WHERE
通配符:* 表所有字段
SELECT * FROM 表名 WHERE
1.1 别名
给字段,表起一个名称
SELECT 字段(AS)别名,.... FROM 表名 (AS)别名
表名设别名
SELECT b.* FROM book_tab b;
1.2 条件查询
序列 | 条件 | 案列 |
---|---|---|
1. | > | book_id >3 |
2. | < | book_id <5 |
3. | between_and | book_id between 3 and 5 |
4. | AND | book_title='西游记' AND book_price>30.00; |
5. | OR | book_title='西游记' OR book_price>30.00; |
注意:OR产生SQL注入漏洞 1='1';
SELECT * FROM book_tab WHERE book_id=-999 OR 1='1' ; -- SQL注入漏洞
1.3 模糊查询
LIKE
通配符:% ---- 任意(个)字符
_ ---- 任意一个字符
SELECT * FROM book_tab WHERE book_title='%西%'; -- 书名中有西的
SELECT * FROM book_tab WHERE book_title='_西%'; -- 书名中第二个字符是西的
1.4 统计函数
sum()
求和函数:
SELECT SUM(emp_sal) FROM emp_tab;
avg()
平均值函数
SELECT AVG(emp_sal) FROM emp_tab;
count()
统计函数:
注意: 统计多少行,与数据无关。
SELECT COUNT(*) FROM emp_tab;
max();min()
最大;最小
SELECT MAX(emp_sal) 最高工资, MIN(emp_sal) 最低工资 FROM emp_tab;
group by 分组
SELECT 分组字段,统计函数 FROM 表名 GROUP BY
SELECT * FROM emp_tab GROUP BY emp_dept;
SELECT emp_dept 部门名称,count(*) 部门人数,avg(emp_sal),平均工资 max(emp_sal) 最高工资 FROM emp_tab GROUP BY emp_dept;
group by 后+ having
更加精确;跟在group by后用 (select 后结果)
SELECT emp_dept 部门名称,count(*) 部门人数,avg(emp_sal) 平均工资,
max(emp_sal) 最高工资 FROM emp_tab GROUP BY emp_dept HAVING 部门人数>=7;
排序
ORDER BY 排序字段
SELECT 字段名 FROM 表名 ORDER BY
SELECT * FROM emp_tab ORDER BY emp_sal;
SELECT * FROM emp_tab ORDER BY emp_sal ASC;-- 正序(ASC)
SELECT * FROM emp_tab ORDER BY emp_sal DESC;-- 降序(DESC)
分页
LIMIT m, n
m-第几行(从0开始)
n- 几行
SELECT * FROM emp_tab ORDER BY emp_birth LIMIT 0,2;-- 从小到大
练习
世界杯32队:
表存储32队:fifa_tab
fifa_id
fifa_country
fifa_coach(教练)
fifa_group(组A-H)
fifa_color(队服颜色)
fifa_score(积分)
fifa_goal(进球数)
fifa_continent(洲)
fifa_sort(世界排名)
-- 每个州有几个球队
SELECT fifa_continent 大洲,COUNT(*)个数 FROM fifa_tab GROUP BY fifa_continent;
-- 欧洲进球最多的球队名称
SELECT fifa_continent 洲, fifa_country 国家 FROM fifa_tab WHERE fifa_continent='欧洲' ORDER BY fifa_goal DESC LIMIT 0,1;
-- H组积分排前两名的球队
SELECT fifa_country 国家 FROM fifa_tab WHERE fifa_group='H' ORDER BY fifa_score DESC LIMIT 0,2;
-- F组积分最低的球队 --
SELECT fifa_country 国家 FROM fifa_tab WHERE fifa_group='F' ORDER BY fifa_score LIMIT 0,1;
-- 教练名字中带(尔)球队
SELECT fifa_country 国家队,fifa_coach 教练名 FROM fifa_tab WHERE fifa_coach LIKE '%尔%';
-- 找出世界排名10~15的球队
SELECT fifa_country 国家队,fifa_sort 世界排名 FROM fifa_tab WHERE fifa_sort BETWEEN 10 AND 15;
多表关联
SELECT e.*,d.dept_name,d.dept_loc FROM empx_tab e,dept_tab d WHERE e.e_dept = d.dept_id;
总结
在新的一周的学习中,了解了C语言,熟悉了MySQL基本用法。