MYSQL数据库一周基础入门(第三天)

Posted 小白的学习之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL数据库一周基础入门(第三天)相关的知识,希望对你有一定的参考价值。

删除表中的数据
drop database 库名 # 删除一个数据库
drop table 表名 # 删除一个表
delete from 表名 # 删除表中的数据【全部数据】
delete from 表名 where 条件 # 删除表中的数据【仅仅删除符合条件的数据】
truncate 表名 # 删除表中的数据,而且会截断表
截断表
表的主键可能会自增,如果用delete删除表中的数据后,主键依然会在前面的基础继续自增
截断表:删除表中的数据,同时让主键重新从1开始自增
TRUNCATE 表名
总结:

删除表中的数据

delete:删除数据

truncate:删除数据并且截断表

删除表、库本身,但是不能删除数据

drop
修改表中的数据
# 格式1:修改表中的全部的记录
update 表名 set 字段 =
# 格式2:修改表中的符合条件的记录
update 表名 set 字段 =where 条件
案例:将tb004表中的所有记录的age修改为30
将表中id大于3的用户的age修改为45
update tb004 set age=30;
update tb004 set age=45 where id>3;
修改数据库(名字,字符集)
数据库的名字无法修改
修改数据库的名字可以先将原有的数据库导出,
然后删除原来的库,
然后创建一个新的数据库,
最后将导出的数据导入到新数据库中
修改数据的字符集
alter database 库名 character set "字符集" collate "排序规则";

案例:将db2的字符集修改为utf8,排序规则修改为utf8_general_ci

ALTER DATABASE db2 CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表(只做了解)
增加字段
ALTER TABLE 表名 ADD COLUMN 字段名 字段属性 AFTER 字段名;

案例:在tb005表中增加一个字段,字段名aihao ,字符串类型,最多30个字符,不允许为空,默认值是sleep,将这个字段放到addr字段的后面
ALTER TABLE tb001 ADD COLUMN aihao char(30) not null default "sleep" AFTER addr;

删除字段

建议,不要删除字段​

alter table 表名 drop column 字段名

修改字段名

alter table 表名 CHANGE COLUMN 字段名 新字段名 属性约束;

案例:将tb005表中aihao字段名修改为abc,
alter table tb005 change COLUMN aihao abc char(30) not null;

修改字段的默认值

alter table 表名 MODIFY COLUMN 字段名 属性

案例:将job的默认值设置为stdent
alter table tb005 MODIFY COLUMN job char(30) default "student";

修改字段顺序

alter table 表名 modify column 字段名 属性 位置

案例:将job字段放到name字段的后面
alter table tb005 modify column job char(30) default "student" after
name
总结
创建库:create database 库名 character set "字符集" collate "排序规则"
删除库:drop database 库名
选择库:use 库名
创建表:create table 表名(字段 属性...,字段 属性.....)
在表中插入数据:insert into 表名 values() insert into 表名(字段名,字段名...) values(,
值...)
删除表:drop table 表名
删除表中的数据:delete from 表名 delete from 表名 where 条件
截断表:truncate 表名
查看表结构:desc 表名
查看表中的数据:select * from 表名
修改表结构:alter table 表名 ...
修改表中的数据:update 表名 set 字段=update 表名 set 字段=where 条件


备份与还原
导出:先对数据库进行备份,然后提取备份文件中的sql语句

导入:

方法1:创建和原始数据库同名的数据,然后执行从备份文件中导出的sql语句【此方法不需要修改导出sql语句】

方法2:在数据库中直接运行导出的sql语句【此方法往往需要先修改数据库文件】

简单查询

查询的格式

select  查询的内容  from  表名 where 条件


*:表示所有的内容
一个或者多个字段的名字:表示仅仅查询一个或者多个字段
查询多个字段的时候,多个字段之间,用逗号分割
注意:
select 后面的那个查询内容是用于控制显示结果中,有几个字段,它无法控制显示结果中有几条记录
通过where后面的条件,可以控制显示几条记录

where后面的条件的写法

>                    大于
>=                   大于等于
<                    小于
<=                   小于等
<>                   不等于
!=                   不等于  
between ... and ...  判断范围
is null              是空
is not null          不是空
like                 模糊查询
in                   判断某个字段是否在给定的集合中

​通配符 %:

%

表示的任意多个任意字符

可以表示0个、1个或者是多个任意的字符

案例:查询学生姓名中有字母n的学生的姓名

SELECT name FROM students WHERE name like "%n%";
排序
select 查询内容 from 表名 where 条件 order by 字段名

order by 字段 : 根据指定的字段进行排序
asc:升序【默认】
desc:降序

案例

# 将所有的学生按照年龄排序,并且是升序
SELECT * FROM students order by age
SELECT * FROM students order by age asc
# 显示所有学生的信息,结果按照年龄和班级id进行排序,年龄是降序,班级id是升序
SELECT * FROM students order by age desc,classid asc

​指定输出几条记录

默认输出所有符合条件的记录

limit 数字

查询格式
select 查询内容 from 表名 where 条件 order by 字段名 limit 数字

案例:查询所有学生的姓名,结果按照年龄升序排序,最后只显示3条记录
select name from students order by age limit 3

聚合函数

sum() 求和
avg() 求平均值
max() 求最大值
min() 求最小值
count() 统计记录条数

案例:

 计算所有学生的平均年龄
select avg(age) from students;
查询显示最大的年龄
select max(age) from students;
计算所有学生的年龄之和
select sum(age) from students;
计算一共有多少条记录
select count(*) from students;
计算年龄大于50的用户的平均年龄
select avg(age) from students where age>50;
分组
group by 字段
分组后加条件 having 条件

案例:

统计年龄大于20的学员中,男性和女性分别有多少人
select gender,count(gender) from students where age>20 group by gender;
统计各个班级中,分别有多少个学员,要求只显示班级人数大于3的班级
select classid,count(classid) from students group by classid having count(classid)>3;


以上是关于MYSQL数据库一周基础入门(第三天)的主要内容,如果未能解决你的问题,请参考以下文章

第一周第三天日报

Mysql基础第三十三天,改善性能

三天爆肝快速入门机器学习:线性回归逻辑回归岭回归第三天

带你入门nodejs第三天—express路由

带你入门nodejs第三天—express路由

三天入门 Linux 系统 - 第三天:Linux 高级命令