#查看所有的数据库 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;