一.有关和数据库和表的操作
1. 查看所有数据库
show databases;
2.创建一个数据库
create database 数据库名字 (cahrset 字符集);
创建一个数据库时可以指定字符集,默认情况下是拉丁文字符集,不可以表示中文;
3.选中一个数据库
use 数据库的名字;
4.删除一个数据库
drop database 数据库的名字;
5.创建一个表
create table 表名 (列名 类型,列名 类型…);
6.查看数据表
show tables;
7. 查看表的结构
desc 表名;
8.删除一个表
drop table 表名;
二. 表的增删查改
1. 插入数据
insert into 表名 values(对应的值…);
insert into 表名 (指定列) values(对应的值);
可以同时插入多条数据,图一:
可以指定插入数据,图二:
相比于单次插入数据,一次插入多次数据高效;
2. 查找操作
- 全列查找:
selecct* from 表名字;
- 指定列进行查询
select 列名,列名…from 表名;
- 查询还可以是表达式
例如上面表中的年龄,我们可以同一加上10岁,但是原来表中的数据不变.
上述中可以代表是总成绩,可以使用别名:
4)去重查询,使用distinct对指定的列进行去重(重复的值保留一个)
- 查询结果排序
使用order by 指定列,指定列;
如果后面加desc就是升序排序的,
后面可以指定多个指定列,如果第一个指定列的数据相同,那就先按照第一个指定列进行排序,然后再按照第二个制定了咧进行拍苏就按照第二个指定列来排序;
- 条件查询 使用where来进行筛选
使用以下的条件限制符号:
其中的between and是一个前闭后闭的区间.
还有就是模糊匹配,使用关键字like;
like后面可以添加%和_;来进行模糊匹配.
-
分页查询
使用limit
就是限制查询的结果有几个
…limit 查询的个数 offset 从第几行开始查询
等价于 …limit 从第几行 ,查询几个.
其中从第几行开始查询是不包括那一个行的. -
更新数据
update 表名 set列名=值,列名=值…where 条件;
其中也可以添加排序order by和limit限制个数.
删除一个记录行
delete from 表名 where 条件;
三. 数据库的约束
四.聚合查询:
五.表的设计
一对一
一对多
多对多
强制实施参照完整性约束:使用外键可以将父表和子表之间的关系进行定义和约束,使得当我们在父表中删除或更新一行记录时,相关联的子表中有关记录也会同时被处理(自动删除或者更新)。
提高查询效率:在建立外键之后,我们可以使用join语句进行查询,从而使得多张表之间的数据交互更加方便快捷、高效,让计算机为我们自动执行连接操作。这样就能够避免繁琐的手动匹配表格内容,节省时间和人力成本。
加强数据安全性:外键可以通过其定义的引用关系避免无效数据,保证数据的正确性和有效性。如果我们试图向子表中一个无法对应父表记录的行,数据库系统将会拒绝这个操作。
降低数据冗余和复杂度:使用外键可以通过将数据拆分成多个单独的表,实现数据规范化,避免数据重复存储和数据冗余,从而减少数据库的存储空间和查询时间。同时,使用外键还可以让我们更加清晰明了地掌握数据库中的关系,提高数据管理的可读性和可维护性。
六.联合查询
当需要查询的两个数据不在同一张表中的时候就要使用联合查询,联合查询就是将两张表在一起并排显示,然后使用一些约束条件从而得到自己想要查询的数据.
select * from 表名 (left,right,full outer) join on 条件;
自连接查询:自连接需要使用别名.
作用是将行转换成了列的效果.
子查询
把多个查询语句合并成一个,就是将另一个语句查询的结果作另一个查询语句的一部分.
union的使用