查看数据库和表
查看所有的数据库
show databases;

建立一个新的数据库
create database database_name;
也可以是
create database if not exists database_name;
表示这个数据库不存在才建立 而不会打断其他sql语句的执行,而如果没有加的话,创建的数据库存在就会直接报错终止程序的执行

数据库中储存数据的表是数据的主要组织单元
查看数据库中的表时,需要先使用这个数据库
use database_name;
查看所拥有的表
show tables;

表操作
创建表用来储存数据
create table (if not exists) table_name(
-- 储存数据类型的字段
name varchar() comment '名字', -- comment是注释,方便我们阅读字段,
-- 并不会对表的创建有什么影响
age int --最后的一个字段不用加分号
);
创建一张相同属性的表
create table newclass like class;

将旧表的值写入新表
insert into newclass select * from class;

查看表的属性
desc table_name;

修改表的属性 alter
向表中插入一行新的表
alter table class add email varchar(20) after name; -- 在name后面插入新的一行,email 字符长度为20

修改表中的的属性
alter table class modify email varchar(200); -- 将email的大小修改为200
 删除原有的列
删除原有的列
alter table class drop email;

重命名原有列
 alter table class rename column name to newName;
 重命名表名
重命名表名
alter table rename to/as new_table_name;


CRUD
向表中插入元素
insert into table_name values (数据……),(数据……); -- 没有指定插入的数据对应的字段,那么就是默认的插入顺序就是跟表的插入顺序一样
insert into table_name(插入的字段) values (数据),(数据); 插入的数据要和前面的字段一一对应
修改数据
update students_mark set chinese = 100 where name = '琼恩';
  
查询数据
全列查询
select * from table_name;
查询指定的字段
select 字段1,字段2…… from table_name;
条件查询
select * from table_name where 限制条件
分页查询
select * from table_name limit 0,4; -- 从第0条数据开始先后查询4条数据
select * from table_name limit 4; -- 也是从第0条数据开始先后查询4条数据
select * from table_name limit 4 offset 0; -- 也是从第0条数据开始先后查询4条数据
查询去重
select distinct * from table_name;

删除这个语法了解下,忘了也行
删除数据 慎用
delete from table_name where condition
删数据库 了解下别用
drop database db_name;
删表
drop table table_name;
排序
升序

降序

条件查询


运算符
| and | 一假全为假 | 
| or | 一真全为真 | 
| not | 条件为真输出为假,反之亦 | 
比较运算符
| = | 对null的比较是不安全的,比如null = null 还是null | 
| <=> | 对null是安全的,null<=>null是true | 
| value between a0 and a1 | 范围查询,在[a0,a1]之间,也能加not | 
| like | 模糊匹配,%是匹配任意个字符,_是至多一个字符 not like取放 | 
| value in (option……) | 若值在option中就返回true | 
聚合函数
| count([distinct] elem) | 返回查询到的总数,都可以加上distinct去重 | 
| sum(elem) | 返回查询的数据的总和,不是数字无意义 | 
| avg(elem) | 返回查询到的数据的平均值,不是数字无意义 | 
| max(elem) | 返回查询到的数据的最小值,不是数字无意义 | 
| min(elem) | 返回查询到的数据的最小值,不是数字无意义 | 
不是数字无意义但是不会报错


使用format来保留俩位小数点

对使用group by 的查询,要分组的话要使用having
select role, sum(salary) from emp group by role having avg(salary)>2000; -- 查找薪水平均在2000以上的
where分组的是真实的数据进行条件过滤 having是对分组后的组进行过滤









![[C语言]指针和数组](https://i-blog.csdnimg.cn/direct/c79f52357b1b4a56875017d053aa7b50.png)









