MySQL之增删改查(以查为主)

创建表

create table 表名(字段 类型 约束,字段 类型…);
在这里插入图片描述
create 创建一个表名是wj_39的表
wj_39这个表里边有name和age两个字段
name的字段是占10个字节的字符串类型
age字段是不能为负数的整数类型
unsigned是一个约束,不能为负的约束

里边的括号 逗号 分号等符号都必须是英文的符号。在这里插入图片描述
注释快捷键“ctrl+?”,注释是解释这段代码的内容

删除表

把表名为wj_39的表删掉
DROP TABLE wj_39;
如果这个表存在就删掉,如果不存在就不删
DROP TABLE if EXISTS wj_39;

创建数据库

CREATE database 数据库名称;

删除数据库

drop database 数据库名称;

查看数据库

show database;

使用数据库

use 数据库名;

查看数据库中有多少张表

show table;

查询语句

查询wi_39这个表里边的所有内容
select * from wj_39;

换成students表(创建表和添加数据没写这里)

查询指定字段

查询students表中的age和name字段
select students.age student.name from students;
给students起一个别名s,as可以省略
select s.age,s.name from students as s;
如果只有一个表可以把表名s省略,如果是多表需要加表名
select name,age from students;

给字段起别名(字段的别名可以为中文,给studentNo起名为学号,name起名为名字)
select studentNo as 学号,name as 名字 from students;

去掉重复的性别,只显示唯一的
select distinct sex from students;

where后面支持多种运算符,进行条件的处理
1、比较运算 =, >, >=, <=, !=, <>
2、逻辑运算 and, or, not
3、模糊查询 like _ ,like %
4、范围查询 in,between …and…
5、空判断 is null

比较运算符

等于: =
大于: >
大于等于: >=
小于: <
小于等于: <=
不等于: != 或 <>

查询id为1的数据;
select * from students where id = 1;
查询王昭君的年龄
select age from students where name=‘王昭君’;
查询年龄大于20岁的数据
select * from students where age > 20;
查询家乡不在北京的数据
select * from students where hometown != ‘北京’;
select * from students where hometown <> ‘北京’;

逻辑运算符
and
or
not

查询大于20岁的男同学
select * from students where age>20 and sex =‘男’;
查询家乡不是北京的
select * from students where not hometown = ‘北京’;
查询1班或2班的同学
select * from students where class = ‘2班’ or class=‘1班’;

模糊查询

like
%表示任意多个任意字符
_表示一个任意字符

查询姓百里的学生(加一个下划线代表一个字符,两个下划线代表两个字符)
select * from students where name like ‘百里_’;
select * from students where name like ‘百里%’;

范围查询

in表示在一个非连续的范围内
between … and …表示在一个连续的范围内

查询家乡是北京和上海的
select * from students where hometown in(‘北京’,‘上海’);
查询年龄在25-30之间的
select * from students where age between 25 and 30;

空判断

null与’‘是不同的,null会显示在数据库中,’'是空的字符串
判空is null
判非空is not null

select * from students where card is null;
select * from students where card = ‘’;

排序
默认是从小到大排序
asc 升序
desc 降序

查询所有年龄信息,按照年龄从高到低排序
select * from students order by age desc;
查询所有学生信息,按年龄从大到小排序,年龄相同时按学号从小到大排序
select * from students order by age desc ,studentNo;

聚合函数

count(*)表示计算总行数,括号中写星与列名,结果是相同的
聚合函数不能在 where 中使用
max(列)表示求此列的最大值
min(列)表示求此列的最小值
sum(列)表示求此列的和
avg(列)表示求此列的平均值

查询学员的总数
select count() from students;
查询男生的人数
select count(
) from students where sex =‘男’;
查询年龄最大的
select max(age) from students;
查询年龄最小的
select min(age) from students;
查询所有学员年龄的平均数
select avg(age) from students;
查询所有学员年龄的总和
select sum(age) from students;

分组
group by

查询学员中男生女生各多少人
select sex,count(*) from students group by sex;

添加语句

添加一行记录
insert into 表名 values(值1,值2…);
insert into wj_39 values(1,‘lebo’);

添加多行记录
insert into wj_39 values(2,‘lebo2’);
insert into wj_39 values(3,‘lebo3’);
insert into wj_39 values(4,‘lebo4’);
insert into wj_39 values(5,‘lebo5’);
或者
insert into wj_39 values(6,‘lebo6’),(7,‘lebo7’),(8,‘lebo8’),(9,‘lebo9’);

修改语句

把id为6的记录中的名字改成lebo666;
update wj_39 set name = ‘lebo666’ where id = 6;

删除语句
从wj_39这个表里把id为6的记录删除;
delete from wj_39 where id = 6;

逻辑删除(常用)
增加一个int类型的字段isdelete并设置它的默认值是0;
alter table wi_39 add isdelete int default 0;
假如把第二条数据注销,就是把第二条数据的isdelete字段设置为1(更改isdelete字段的数据);
update wj_39 set isdelete = 1 where id = 2;
查询isdelete字段为0的数据时就不会显示第二条数据了;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值