📑1. 数据库的操作
MySQL命令是不区分大小写的,为了风格统一,以下只使用小写字母。
🌤️1.1 显示当前的数据库
show databases;
示例:显示MySQL中的数据库
还记得刚开始用MySQL,总是忘记写分号…
🌤️1.2 创建数据库
create database 数据库名;
示例:创建一个test数据库
注意
:MySQL 5.7 及之前版本默认的字符集是 latin1 ,MySQL 8.0 版本默认的字符集是 utf8mb4 。
🌤️1.3 选中数据库
必须先选中要使用的数据库,才可以操作数据库。
use 数据库名;
如果没选中数据库,就对数据库进行操作,就会出现报错:
选中后,才能正常使用:
🌤️1.4 删除数据库
drop database 数据库名;
使用drop删除数据库时,会把数据库中的表和数据全部删除。
注意:删除操作一定要慎重、慎重,删除后数据基本上不可恢复。
示例:删除test数据库
📑2. 表的操作
🌤️2.1 查看表结构
desc 表名;
示例:查看book结构
🌤️2.2 创建表
create table 表名(字段名 字段类型,字段名 字段类型,...);
示例:创建book表
🌤️2.3 删除表
drop table 表名;
注意:删除操作一定要慎重、慎重,删除后数据基本上不可恢复。
示例:删除book表
🌤️2.4 向表中插入数据
💫2.4.1 单行数据 + 全列插入
insert into 表名 values(...,...,...);
注意括号内的数据必须和定义表的列的数量和顺序一致
示例:向book表中插入一条数据
插入结果:
在MySQL中,now()函数用于返回当前日期和时间。它支持日期和时间的不同格式,并且可以在查询中使用。
💫2.4.2 多行数据 + 指定列插入
insert into 表名 (字段名,字段名,...) values(...,...,...);
注意括号内的数据必须和定义表的列的数量和顺序一致
示例:向book表中插入这样一个数据,作者名为:作者 、价格为:2 的数据。
如果要插入多行数据,只需:insert into 表名 (字段名,字段名,…) values(…,…,…),(…,…,…);即在values后面多加几个小括号,括号中间使用逗号分隔即可。
示例:向book表中一次性插入2个数据。
🌤️2.5 查询
注意:查询也是一个非常危险的操作,在工作中要慎重使用!!因为在工作中表中的数据量很多,这就意味着在查询时服务器要传输大量的数据,可能影响其他人对数据库进行操作,一不小心公司的损失就要进入按分钟计时了!!
💫2.5.1 全列查询
select * from 表名;
示例:查询book表中的内容
💫2.5.2 指定列查询
select 字段名,字段名,.... from 表名
示例:查询book表中的书名和作者
💫2.5.3 查询字段为表达式
select 字段名,字段名... 查找的值,查找的值... from 表名
示例:查询名字为“1”的书
查询book中的书名,以及对应价格+10后的价格。
注意:这里的价格+10后,并不影响数据库中的价格,数据库中的价格仍然是原价格。
💫2.5.4 别名(as)
select 字段名 as 别名 from 表名;
示例:查询一下学生表中的各学生总分
💫2.5.5 去重(distinct)
select distinct 字段名 from 表名;
示例:给english这一列去重
注意:去重并没有改变原数据库中的内容。
💫2.5.6 排序(order by)
select ... from 表名 order by 字段名;
在字段名后面可以写上asc(升序)/desc(降序),如果不写,则默认为升序
注意:
- 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
- NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
- 可以对多个字段进行排序,排序优先级随书写顺序
示例1:在students表中按student_id进行升序排序
示例2:在students表中按student_id进行降序排序
示例3:在students表中依次按数学降序,英语升序,语文升序的方式显示
💫2.5.7 条件查询(where)
比较运算符:
逻辑运算符:
注意:
- where条件可以使用表达式,但不能使用别名
- and的优先级高于or,在同时使用时,需要使用小括号()包裹需要优先执行的部分
示例1: 在studens表中查询englis小于70的学生
示例2: 在studens表中查询所有分数大于70的学生
示例3: 在studens表中查询数学大于70,英语分在[75,85]之间的学生
示例4: 在studens表中查询姓张的学生
💫2.5.8 分页查询(limit)
select ... from 表名 limit s offset n;
以上命令的效果为,从表中查找…,从s开始,向后查n条内容。
1.如果不写s和offset,则默认从0位置开始查找。
2.第一条数据的下标为0
示例1:在studens表中查询2个学生
示例2:在studens表中从第二个学生开始向后查找5个学生
💫2.5.9 修改(Update)
update 表名 set 字段名 = ... ;
注意:修改操作会真正影响数据库中存储的数据
示例1:在studens表中将math这一列全部设置为100
示例2:在students表中将小红的english改为95
💫2.5.10 删除(Delete)
delete from 表名;
示例:在students表中删除张三的成绩
注意:delete和drop是MySQL中两个不同的操作。
- delete操作是用于从表中删除数据行。delete语句可以使用where子句指定删除的条件,以确定哪些数据行将被删除。delete语句执行后,被删除的数据行将从表中移除,但表的结构和其他数据行将保持不变。
- drop操作是用于删除整个表。drop table语句将删除指定的表以及表中的所有数据和索引。