django数据库之mysql使用命令

知识点: 分三部分(对数据库库的操作、表的操作、数据的操作)
所需数据: school.sql、mysql基础命令.xmind
school.sql链接:
https://pan.baidu.com/s/1Em-7Z54kOgIr5OjnX0JosA
基础命令.xmind链接:
https://pan.baidu.com/s/1c8t_s_sL0uZEWvQtuI0Uzw
说明:

  • 库名: student
  • 表名:s
  • 部分表中字段:
    c_address: 地址
    c_name:姓名
    c_gender:性别
    x:某个表的字段名

--------------------2020/10/11更新----------------------

数据类型和约束

数据类型:
	整数 int、bit
	小数 decimal
	字符串 varchar、char、text
	日期时间 date、time、datetime
	枚举类型 enum
数据约束:
	主键 PK
	非空 not null
	唯一 unique
	默认 default
	外键 fk

基础库表命令

查看MySQL服务状态
sudo service mysql status

停止MySQL服务
sudo service mysql stop

启动
sudo service mysql start

重启
sudo service mysql restart

登录数据库
mysql -uroot -p

退出登录
quit \ exit

查看数据库
show databases

创建数据库
create database 数据库名 charset=utf8

使用数据库
use 数据库名

查看当前使用的数据库
select database()

删除数据库
drop database 数据库名

查看表
show tables

创建表
create table student(
	id int primary key auto_increment not null,
	name varchar(20) not null,
	age tinyint unsigned default 0,
	height decimal(5, 2)
	gender enum('男', '女')
)

修改表-添加字段
alter table 表名 add 列名 类型 约束

修改表-修改字段类型(modify不能修改字段名)
alter table 表名 modify 列名 类型 约束

修改表-修改字段名和字段类型
alter table 表名 change 原名 新名 类型 约束

修改表-删除字段
alter table 表名 drop 列名

查看创表SQL语句
show create table 表名

查看创库SQL语句
show create database 数据库名

删除表
drop table 表名

表数据操作命令

查:
	select * from 表名
	select 列1,2 from 表名
	
增:
	insert into 表名 values ()
	insert into 表名 (1,2) values ()
	insert into 表名 values (), ()
	insert into 表名 () values (), ()
	
改:
	update 表名 set1=1, ... where 条件
	
删:
	delete from 表名 where 条件

as和distinct关键字

as:
	起别名
	
distinct:
	过滤重复数据
	select distinct 列1 from 表名

where条件查询

格式:
	select * from 表名 where 条件
	
支持的运算符:
	比较运算符(=><>=<=!=)
	逻辑运算符(andornot)
	模糊查询(like、%、_)
	范围查询(between..and..int)
	空判断(is null、is not null)
# 例子

查询编号大于3的学生:
select * from student where id > 3

查询编号大于3的女同学:
select * from student where id > 3 and gender = 0

查询姓黄并且“名”是一个字的学生:
select * from student where name like '黄_'

查询编号为38的学生:
select * from student where id between 3 and 8

查询没有填写身高的学生:
select * from student where height is null

排序

select * from 表名 order by 列 asc|desc

# 例子

查询未删除男生信息,按学号降序:
select * from student where gender=1 and is_delete=0 order by id desc

显示所有的学生信息,先按照年龄从大-->小排序,当年龄相同时 按照身高从高-->矮排序:
select * from student order by age desc, height desc

分页查询

select * from 表名 limit start, count

# 例子

查询前3行男生信息:
select * from student where gender=1 limit 0, 3

查询学生表,获取第n页数据的SQL语句:
select * from student limit (n-1)*m, m

聚合函数

通常对表中数据进行统计和计算,配合group by

count()
max()
min()
sum()
avg()
# 例子

返回身高中非NULL数据的总行数:
select count(height) from student

查询女生的编号最大值:
select max(id) from student where gender=0

查询未删除的学生最小编号:
select min(id) student where is_delete=0

查询男生的总身高:
select sum(height) student where gender=1

求男生的平均身高(聚合函数不统计null值,平均身高有误):
select avg(height) from student where gender=1
求男生的平均身高, 包含身高是null的
select avg(ifnull(height, 0)) from student where gender=1

分组查询

将查询结果按照指定字段分组

# group by
根据gender字段来分组:
select gender from student group by gender

# group by + group_concat()
根据gender字段进行分组,查询gender字段和分组的name字段信息:
select gender, group_concat(name) from student group by gender

# group by + 聚合函数
统计不同性别的人的平均年龄:
select gender, avg(age) from student group by gender

# group by + having
根据gender字段进行分组,统计分组条数大于2:
select gender, count(*) from student group by gender having count(*) > 2

# group by + with rollup
根据gender字段进行分组,汇总所有人的年龄:
select gender, group_concat(age) from student group by gender with rollup

连接查询

内连接
左连接
右连接
自连接
# 内连接

使用内连接查询学生表与班级表:
select * from student as s inner join classes as c on s.cls_id=c.id

# 左连接

使用左连接查询学生表与班级表:
select * from student as s left join classes as c on s.cls_id=c.id

# 右连接

使用右连接查询学生表与班级表:
select * from student as s right join classes as c on s.cls_id=c.id

# 自连接

create table areas(
	id varchar(30) not null primary key,
	title varchar(30),
	pid varchar(30)
)

select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id where p.title = '山西省';

子查询

查询大于平均年龄的学生:
select * from students where age > (select avg(age) from students)

索引

查看表中已有索引
show index from 表名

创建索引
alter table 表名 add index 索引名 (1,2)

优点:
	加快查询速度
缺点:
	创建索引会耗费时间和占用磁盘空间,并随着数据的增加而增加
	
原则:
	最左原则
	数据经常更新的要避免创建过多索引,经常查询的可以适当创建索引
	数据量小最好不要使用

在这里插入图片描述

我是清茶!欢迎你和我一起讨论,我们下期见。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值