MYSQL须知

作者: Stella_叶 | 来源:发表于2018-05-13 20:29 被阅读201次

执行:

1.创建数据库

create database 库名 charset=utf8;

2.使用数据库

use 数据库名;

3.创建表

create table 表名(字段名 类型 约束条件, 字段名 类型 约束条件...);

注意: varchar类型必须限制字数,int无所谓

4.修改表结构

增加字段: alter table 表名 add 字段名 约束;

增加多个字段: alter table 表明 add 字段名1 约束,add 字段名2 约束;

删除字段:alter table 表名 drop 字段名;

删除多个字段: alter table 表名 drop 字段名1,drop 字段名2;

修改字段:alter table 表名 modify 列名 类型及约束,modify 列名 类型及约束;

改名:alter table 表名 change 旧字段名 新字段名 新字段名 约束,change 旧字段名 新字段名 约束;

5.删除表信息

物理删除:delete from 表名 ; 删除全部信息

部分信息:delete from 表名 where 条件= ;

逻辑删除: update 表名 set is_delete = 1;

6.删除表

drop table 表名;

7.插入信息和修改

insert into 表名(字段1,字段2..)values(值1,值2,..);

全列插入:值的顺序与表中字段的顺序对应

insert into students values(0,’郭靖‘,1,'蒙古','2016-1-2');

全列多行插入:值的顺序与给出的列顺序对应

insert into classes values(0,'python1'),(0,'python2');

insert into students(name) values('杨康'),('杨过'),('小龙女');

修改表信息:

update 表名 set 列1=值1,列2=值2... where 条件

查看:

1.查看表信息

select * from 表名;

表的创建语句: show create table 表名;

2.查看表结构

desc 表名;

3.查看当前所在的数据库

select database();

4.查看特定字段的信息

select 字段名,字段名 from 表名;

5.联合查询

select 字段名,字段名 from ( 表A名 inner join 表B名 on 表A.XX=表B.XX);

取交集  自联结

note:MYSQL会先显示 inner join 前方的表的字段

括号可加可不加,加括号可以使sql语句看起来结构性更强

注意:联合查询必须在各表有一致的键时才能成立,若有重名的字段名,需用表A.字段名或表B.字段名加以区分.

左联: select * from 表A left join 表B on 条件;

以A表为基准,取并集

右联:select * from 表A right join 表B on 条件;

以B表为基准,联合表A和表B,取并集

6.子查询(×难点×)

查询班级学生平均年龄

查询大于平均年龄的学生

select * from students where age > (select avg(age) from students);

列级子查询

查询还有学生在班的所有班级名字

找出学生表中所有的班级 id

找出班级表中对应的名字

select name from classes where id in (select cls_id from students);

行级子查询

需求: 查找班级年龄最大,身高最高的学生

行元素: 将多个字段合成一个行元素,在行级子查询中会使用到行元素

select * from students where (height,age) = (select max(height),max(age) from students);

子查询中特定关键字使用

in 范围

格式: 主查询 where 条件 in (列子查询)

7.分组

select gender from students group by gender;

+--------+

| gender |

+--------+

| 男    |

| 女    |

| 中性  |

| 保密  |

+--------+

select gender,group_concat(name) from students group by gender;

+--------+-----------------------------------------------------------+

| gender | group_concat(name)                                        |

+--------+-----------------------------------------------------------+

| 男    | 彭于晏,刘德华,周杰伦,程坤,郭靖                                |

| 女    | 小明,小月月,黄蓉,王祖贤,刘亦菲,静香,周杰                        |

| 中性  | 金星                                                      |

| 保密  | 凤姐                                                      |

+--------+-----------------------------------------------------------+

8.聚合函数

为了快速的得到数据 我们经常使用以下五个函数

总数

count(*)表示计算总行数,括号中写星与列名,结果是相同的

例1:查询学生总数

select count(*) from students;

最大值

max(列)表示求此列的最大值

例2:查询女生的编号最大值

select max(id) from students where gender=2;

最小值

min(列)表示求此列的最小值

例3:查询未删除的学生最小编号

select min(id) from students where is_delete=0;

求和

sum(列)表示求此列的和

例4:查询男生的总年龄

select sum(age) from students where gender=1;

-- 平均年龄

select sum(age)/count(*) from students where gender=1;

平均值

avg(列)表示求此列的平均值

例5:查询未删除女生的编号平均值

select avg(id) from students where is_delete=0 and gender=2;

9. 排序  默认是 asc 升序

例1:查询未删除男生信息,按学号降序

select * from students where gender=1 and is_delete=0 order by id desc;

例2:查询未删除学生信息,按名称升序

select * from students where is_delete=0 order by name;

例3:显示所有的学生信息,先按照年龄从大-->小排序,当年龄相同时 按照身高从高-->矮排序

select * from students  order by age desc,height desc;

高阶:

#视图

叫什么视图

有什么用:

1.一个复杂sql语句可以使用视图替换,代替

2. 数据库表结构更换了,我们可以不用更换python代码

代码:

create view v_视图名 as (select xxxxxx);

删除

drop view v_视图名;

注意:

不要在视图上去修改数据(道德).

#事务

1.事务

2.事务作用:保证数据修改的完整性

3. 特性:

    数据操作后可以,可以回滚(注意删除表,删除库没办法)

    acid  原子性,一致性,隔离性,持久性

#索引

1.叫索引

2.有什么用:加快查询的速度

3. 原理:对我们的字段进行分组,如果大并发的情况下,修改数据会变慢

4. 创建

5. create index 名字 on 表名(索引的字段);

6. 查看

7. show index from 表名;

8. 删除

9. drop index 索引名 on 表名;

相关文章

  • MYSQL须知

    执行: 1.创建数据库 create database 库名 charset=utf8; 2.使用数据库 use ...

  • LAMP架构(1)编译安装在Centos6

    TIPS:LAMP(LINUX APACHE MYSQL PHP)版本选择须知php 5.5 开始就不支持wind...

  • INSERT...ON DUPLICATE KEY UPDATE

    参考:MySQL8.0使用手册 使用须知: 通常,您应该尽量避免ON DUPLICATE KEY UPDATE 在...

  • 使用shell脚本一键安装linux程序

    安装须知 此脚本安装包含jdk,maven,git.mysql,oracle一键安装脚本 输入:任意键 所有脚...

  • Mysql高性能索引须知

    一、索引的优点: 1,大大减少服务器需要扫描的数量2,可以帮助服务器避免排序和临时表3,可以将随机I/O变为顺序I...

  • Java操作MySQL入门须知

    基本步骤 使用Java操作MySQL按步骤分为: 加载驱动 建立连接 创建Statement对象 传递SQL语句,...

  • 上饶德兴市函授大专报考须知

    上饶德兴市函授大专报考须知 上饶德兴市函授大专报考须知 上饶德兴市函授大专报考须知 考试须知 1、凡领先志愿报考我...

  • 「简书交友」同城约玩投稿须知

    【简书交友】投稿须知 【交友故事】投稿须知 「情书」投稿须知 这是独立于【简书交友】之外的新玩法。 在交友社群逐渐...

  • 蹦床公园安全守则,你遵守了吗?

    ​​蹦床公园安全守则,你遵守了吗? 商家经营蹦床乐园的安全须知和法律须知 顾客进蹦床公园必须了解的安全须知! 蹦床...

  • 知道|做到

    一个人, 必须知道该说什么, 必须知道什么时候说, 必须知道对谁说, 必须知道怎么说, 对别人述说自己, 是一种天...

网友评论

    本文标题:MYSQL须知

    本文链接:https://www.haomeiwen.com/subject/ztjldftx.html