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数据库一周基础入门(第三天)的主要内容,如果未能解决你的问题,请参考以下文章