Mysql增删改查(CRUD)
- 进行增删改查表之前,首先要进行创建数据库操作,然后进入数据库在数据库中进行表的基本操作。(符号都是英文半角符号)
1.首先查看现在有些哪些数据库(show databases)
注:这里database(数据库)后记的加s,因为你系统里面可能不只一个数据库。
show databases;
运行结果:
2.开始创建一个数据库
注:创建之前假设你已经忘记之前有没有创建过这些数据库,所以一般创建之前你都需要进行一次删除操作;
- 语法:drop database if exists 数据库名;
drop database if exists db;
//这里是database(没有s),后面加if exists,如果存在名称为db的这个数据库,就会进行删除,所以在进行操作之前不管有没有你都可以进行这个操作,因为如果没有这个数据库,这个删除操作就包含进行。
运行结果:
**注:**这里我就将我之前建立db数据库删除掉了,大家在删除数据库之前,一定要注意上面剩余的四个数据库,这是系统本身就有的,切记!切记!
- 创建一个学生数据库
- 语法:create database [if not exists] 数据库名 character set utf8mb4;
drop database if exists students;
create database students character set utf8mb4;
运行结果:
3.进入数据库
- 语法: use 数据库名;
use students;
运行结果:
一.新增表(create)
- 语法:create table 表名(属性);
- 属性例如:id(学号) ,name(姓名),age(年龄),等等,后面的int是整型,vachar是字符型,当然还有其他类型,使用方法和它们一致。
create table student(id int,
name varchar(20),
sex varchar(10),
age int);
1.1 单行数据全列插入
- 语法: insert into 表名(id,name,sex,age) values(id,‘唐三藏’,‘男’,18);//括号里面就是你创建表定义的那些属性
insert into student values(id,'唐三藏','男',18);
1.2 多行数据插入
- insert into 表名(id,name,sex,age) values(…),(…),(…);
insert into student values(21,'王美丽','女',19),
(18,'欣欣','女',20);
二.查询表(select)
- 语法:select * from 表名;
中间如果是*,代表查询整张表,*一可以是具体属性
select * from student;
- 具体属性
select name from student;
- 别名
select id,name 姓名 from student;
- 去重(distinct)
insert into student (id,name,sex,age) values
-> (3,'猪悟能', '男', 30),
-> (4,'曹孟德', '男', 40),
-> (5,'刘玄德', '男', 40),
-> (6,'孙权', '男', 35),
-> (7,'宋公明', '男', 40);
select * from student;
select distinct age from student;
//年龄去重之后,40的只剩下一个了
- 排序(order by )
语法:-- ASC 为升序(从小到大)
– DESC 为降序(从大到小)
– 默认为 ASC
select … from 表名 order by 属性[ASC|DESC];
select * from student order by age desc;
- 条件查询(where)
1.基本查询
语法:select * from 表名 where 条件;
//查询学生表中年龄小于20的人
select * from student where age <20;
2.and 与 or
//查询男生并且id大于5的人
select * from student where age < 20 and id > 5;
3.范围查询(BETWEEN … AND …)
//查询年龄在10到30之间的
select * from student where age between 10 and 30;
4.in
//查询年龄是18或者20或者35的
select * from student where age in(18,20,35);
5.模糊查询(like)(%代表任意字符0个到多个 _代表一个字符)
//查询姓孙的
select * from student where name like '孙%';
//查询姓孙并且姓名总共是俩个字的人
select * from student where name like '孙_';
6.NULL查询
//查询id非空的
select * from student where id is not null;
//查询id为空的
select * from student where id is null;