Mysql数据库知识点

一.mysql基本结构

            -简介 最流行的关系型数据库管理软件(开源的,免费的),web应用 -数据结构

1.库+表的形式

2.所有的操作都是围绕表中的数据

3.表中的数据都是有严格规则和关系的,所以关系型数据库

二.mysql库级和表级的操作

        控制台,虚拟环境 -命令行;                            进入数据库 mysql -u用户名 -p密码              (不能随便输 root qwe123)

        -库级命令:

1.显示所有的库:show databases;

2.创建库:create database db_name; create database if not exists db_name; 如果存在会报错

3.删除库:drop datebase db_name;          drop database if exists db_name;

4.进入数据库:use db_name; ****** 数据库名有大小写之分

        -表级命令:

1.显示所有的表:show tables;

2.创建表: create table student (id int, name varchar(128), age int, male enum('男','女'));

3.显示创建信息:show create table tb_name;

4.删除表:drop table if exists tb_name;

      -mysql表中数据的操作(重点)                        CRUD操作(增删改查操作)

1.插入数据:

1. 1指定字段插入 insert into student (name, age) values ('wuhongcheng', 18);

1.2全字段插入 insert into student values (2,'hengxu', 19, 'male' );

1.3多行插入

insert into student values  (2, 'liukui', 16, 'male'),(3, 'zhuoda', 20, 'male'),(4, 'houyingying',16, 'female'),(5, 'liuying', 16, 'female');

2.删除数据:

2.1 删除所有数据 delete from student;                  (切记,不要用)

2.2删除指定数据 delete from student where conditions; delete from student where male is null; ****** 一定要加上where 不然就全删了 

3修改数据:

3.1修改一个字段的所有数据 update student set male='female';

3.2修改多个字段的数据 update student set id=1,age=22 where name='hexu';

3.3修改满足条件的数据 update student set age=18 where id=2; ****** 一定要加上where 不然就全改了

4.查询数据

4.1全字段查询 select * from tb_name;

4.2指定字段查询 select name, age from student;

4.3带条件查询

查询所有年龄大于17的数据 select * from student where age>17;

查询所有女性的数据 select * from student where male='female';

        -字段类型(了解) 表中每列数据必须指定类型 大致分为3类:

1.数值型

2.日期时间型

3.字符串类型

三.Mysql高级查询

1.筛选条件

1.1比较运算符

1.1.1等于:=(注意,不是==) select * from student where sex = 'male';

1.1.2不等于:!= 或则 <> select * from student where age != 18; 

1.1.3大于:>

1.1.4小于:<

1.1.5大于等于:>= select * from student where age >= 18; 

1.1.6小于等于:<=

1.1.7空:is null select * from student where sex is null;

1.1.8不为空:is not null select * from student where sex is not nULL;

1.2逻辑运算符

1.2.1 and 与 男性里面年龄大于18的数据 select * from student where sex='male' and age>18;

1.2.2 or 或 报名python_all 或者 python_web的学员 select * from enroll where course='python_all' or course='python_web';

1.2.3 其他操作

排序:order by                                                字段名 按照年龄排序                                        正序:select * from student order by age asc;  # asc可以省略 默认                                  倒序:select * from student order by age desc;

限制:limit

只要三条:                                                  select * from student order by id limit 3;          从第二条开始:                                          select * from student order by id limit 1, 3;

去重:distinct                                                  查出表中所有的不同名字 select distinct student from enroll;

模糊查询:like                                                   

-任意多个字符:% 查询名字中包含'l':

select * from enroll where student like '%l%';

查询名字中一'l'开头的:

select * from enroll where student like 'l%';                           

      -任意一个字符:                                          _ 查询名字是四个字符的:                      select * from enroll where student like '____'; **like如果不和 % 或 _ 就和= 一样的效果   

范围查询

1.连续范围:between a and b 包含a和b 查询年龄介于17到20之间的学生:            select * from student where age between 17 and 20;

*** 一般用数值,日期时间,字符串理论是可以的,但是一般不用


2.间隔范围:in in (10, 20, ....) 查询 报名python_all 或者 python_web的学员

select * from enroll where course in ('python_web', 'python_all', 'abc');


2.聚合与分组(重点,难点)

2.1聚合(统计):

2.1.1统计个数:count(字段)

年龄大于18的有几个人:

select count(id) from student where age>18; ***如果字段里有null 不会计算

2.1.2求和:sum(字段)

报名python课程的支付总金额:

select sum(pay) from enroll where course like '%python%';


2.1.3平均值:avg(字段)

学生年龄平均值:

select avg(age) from student;


2.1.4最大值:max(字段)

学生年龄的最大值:

select max(age) from student;


2.1.5最小值:min(字段)

学生年龄的最小值:

select min(age) from student;


2.2分组:

2.2.1group py 按照课程分组查询 报名的总金额:

select course, sum(pay) from enroll group by course;     

按照学生分组查询报名的总金额:

*** 别名:select student, sum(pay) as total_pay from enroll group by student;

-having 子句 (因为:where关键字无法和统计函数用在一起)                                     

--按照学生分组,查询总金额大于5000的数据

select student, sum(pay) as total_pay from enroll group by student having sum(pay) > 5000;                                                                       

-按照学生分组,查询总金额大于2000,报名python课程的数据

select student, sum(pay) as total_pay from enroll where course like '%python%' group by student having sum(pay) > 2000;

*** where 条件 要写到 group by 前面                  -执行顺序。 一个查询语句同时包含了 别名,聚合函数,where 和 having 执行顺序:                                                               

1.最先执行 where ;2.然后执行聚合函数和别名 ;3.最后再执行having。


3.子查询(了解)

查询年龄小于平均年龄的学生数据              3.1先查出平均年龄 select avg(age) from student;   

3.2在根据平均年龄查询 select * from student where age < 平均值; 子查询:select * from student where age < (select avg(age) from student);                                                  要求:                                                                1.嵌套在查询语句内 2.必须用括号包裹 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,976评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,249评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,449评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,433评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,460评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,132评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,721评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,641评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,180评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,267评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,408评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,076评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,767评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,255评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,386评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,764评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,413评论 2 358

推荐阅读更多精彩内容