MySQL--增删改查

MySQL--增删改查_第1张图片



#查看所有的数据库   Sql语句 不区分大小写   但是严重区分中英文符号,不允许使用中文符号

show databases;

 

#创建数据库

create database test1227;

 

#使用数据库

use test1227;

 

#查看数据库中所有的表

show tables;

 

 

 

#创建表   需要创建主键  主键是唯一的,不能为空  int(10):10代表的是数字长度

#若不定义长度,默认长度为11  primary key为主键(唯一标识)  auto_increment:设置自增

#varchar:为字符串  默认长度为255  unique:唯一约束   not null  不为空约束

create table student(

id  int(10) primary key  auto_increment,

name varchar(20) unique,

age int(5) default 16,

sex char(2) not null

 

);

 

#查看表设计

desc student;

 

增:

#不按照字段添加   那么就需要按照表设计的字段顺序添加

insert into student values(2,'李四',21,'');

 

#按照字段添加   必须主键设置自增,否者必须给主键赋值

insert into student(name,age,sex) values('王五',25,'');

 

insertinto student(name,sex) values('赵六','');

insertinto student(name,age,sex) values('小凳子',27,'');

 

insertinto student(name,age,sex) values('小红',22,''),('小华',26,''),('小白',29,'');

 

删:

#删除表

drop table student;

 

 

##删除数据库

drop database test1227;

 

 

 

#删除  drop  与delete 的区别:

#drop 是删除表,表不存在   delete 是删除表中的数据,表仍然存在

delete from student where id = 1;

 

delete from student where sex = '';

 

delete from student where sex='' and age = 22;

 

#删除表中的所有数据,表存在

delete from student;

 

 

改:

#修改   切记:修改  set后面使用逗号分隔而不是用and   只有where 条件语句后使用and  代表并且

updatestudent set name='小名',age = 26,sex='' where id = 2;

 

update student set name='光头强' where name = '小红';

 

 

updatestudent set age = 30 where name='王五' and sex = '';

 

 

查:

# * 代表的是所有字段  查看当前表中的所有数据

select* from student;

 

 

#只查询姓名和年龄  select 后为查询的字段  from  表

selectname,age from student;

 

 

#查询年龄为26的学生信息

selectid,name,age,sex from student where age = 26;

 

 

#查询年龄不是26的学生信息  !=  <>

selectid,name,age,sex from student where age !=26;

selectid,name,age,sex from student where age <> 26;

 

selectid,name,age,sex from student where age >=26;

 

 

#查询id 为偶数的学生信息

selectid,name,age,sex from student where id %2=0;

 

#查询姓‘小’ 的学生名   %代表多个字符

selectname from student where name like '%';

 

#  _为一个字符

selectname from student where name like '__';

 

 

insert into student(name,age,sex) values('白居易',29,'男');

insert into student(name,age,sex) values('王白石',26,'男');

 

#like模糊查询

selectname from student where name like '%';

 

selectname from student where name like '%';

 

 

 

selectname from student where name like '%%';

 

 

 

#查询年龄在26-29之间(包含26,29)的学生信息

select id,name,age,sex from student where age between 26 and 29;

select id,name,age,sex from student where age>=26 and age<=29;

#查询id  包含 4,8,13,14的学生信息

 

select id,name,age,sex from student where idin (13,8,4,14);

 

 

#分页  第一个参数为索引,通过索引得到页数   第二个参数为每次显示的条数

select id,name,age,sex from student limit 4,2;

 

 

 

#将学生的年龄从小到大排序   order by 为排序本身就有从小到大的功能 asc-    desc:大-  

select id,name,age,sex from student order by age desc;

 

 

#聚合函数  count(统计总数)   sum (求和) avg (平均值) max(最大值)  min(最小值)

 

 

select count(*) from student;

 

select count(id) from student;

 

select count(1) from student;

 

#统计男 女分别的人数

#字段和表都可以定义别名

定义别名  英语不需要定义单引号  中文需要定义单引号

select count(id) as '总数',sex as se from student groupby sex;

 

select count(id) '总数',sex '性别' from student groupby sex;

 

 

#统计男女人数大于3的人数  having为条件语句必须与group by 联合使用  不能单独使用   where     只有有条件判断都可以使用

select count(id) '总数',sex'性别' from student groupby sex having 总数 >3;

 

 

select count(id) co ,sex '性别' from studentgroup by sex having co>3;

 

 

select sum(age) from student;

 

select avg(age) from student;

 

select max(age) from student;

 

select min(age) from student;
















你可能感兴趣的:(MySQL--增删改查)