1.1进入MySQL
mysql -u 用户名 -p
输入密码 如果看到 mysql> 则成功进入
1.2查看数据库的版本
select version();
1.3查看当前的时间
select now();
1.4退出
exit 或 quit
2.1展示所有的数据库
show databases;
2.2创建一个数据库
格式:create database 数据库名 charset=utf8;
例:create database school charset=utf8;
2.3删除一个数据库
格式:drop database 数据库名;
例:drop database school;
2.4使用某个仓库
格式:use 数据库名;
例:use school;
2.5查看当前使用的数据库
select database();
3.1查询当前库中的所有的表
show tables;
3.2创建一个表
格式: create table 表名(字段名 字段描述, 字段名n 字段描述, …);
例: create table student(id int primary key auto_increment, name varchar(20) not null, age int default 17, address varchar(20), sex bit default 1);
3.3查看表的结构
格式1: desc 表名;
格式2: show create table 表名; (查看创建表的sql语句)
3.4删除一个表
格式:drop table 表名;
例:drop table student;
3.5修改表
a.修改表名
rename table 旧表名 to 新表名;
b.添加一个新的字段
格式: alter table 表名 add 字段名 字段描述;
例: alter table student add phonenumber varchar(20);
c.删除一个字段:
格式: alter table 表名 drop 字段名;
例: alter table student drop phone;
d.修改一个字段:
格式: alter table 表名 change 要修改的字段名 新的字段名 新的字段类型描述;
例: alter table student change phonenumber phone varchar(20);
注意:开发过程中尽量的不要修改已经有数据的字段,设计表的时候尽量设计一些预留字段
4.1插入一条数据
格式: insert into 表名 values(对应的值1,对应的值2…对应的值n);
例: insert into student values(0,“张三”,38,“平壤”,1);
注意:插入的值要与表对应字段一一对应,如果是自动增长的数据类型,将该值设置为0,0即会自动增长
4.2缺省值插入
格式: insert into 表名(字段1,字段2…字段n) values(字段1对应的值,字段2对应的值…字段n对应的值);
例: insert into student(name,age,sex) values(“李四”,74,0);
4.3插入多条数据
格式: insert into 表名 values(对应的值1,对应的值2…对应的值n), (对应的值1,对应的值2…对应的值n), (对应的值1,对应的值2…对应的值n) …;
例: insert into student values(0,“aaa”,66,“北京”,1), (0,“bbb”,55,“宁波”,1), (0,“ccc”,67,“青岛”,1), (0,“ddd”,78,“杭州”,1);
4.4删除数据
格式: delete from 表名 where 条件;
例: delete from student where id =2;
例: delete from student where name =‘aaa’;
4.5修改数据
格式: update 表名 set 字段名 = 值1,字段名2 = 值2 where 条件;
例: update student set name = ‘eee’, address = ‘上海’ where id =1;
4.6查询数据库的表中的所有数据
格式: select * from 表名;
例: select * from student;
5.1查询数据
格式1: select 字段名1, 字段名2, …字段名n from 表名 where 查询条件;
select name, age from student;
格式2: select 字段名1 as 别名, 字段名2 as 别名, …字段名n as 别名, from 表名 where 查询条件;
select name as ‘姓名’, age as ‘年龄’ from student;
5.2查询条件 > < >= <= = !=
查询班上大于60岁的学生
select * from student where age > 60;
查询班上小于等于55岁的学生
select * from student where age <= 55;
查询班上不等于55岁的学生
select * from student where age != 55;
5.3查询条件 and or not
查询班上大于55岁且小于70岁的学生
select * from student where age>55 and age<70;
查询班上除了北京的学生
select * from student where not address = ‘北京’;
5.4 模糊查询
格式: … where 字段名 like ‘字符串’;
% 任意多个任意字符
_ 一个任意字符
查询姓’华’的同学
select * from student where name like ‘华%’;
查询姓习的同学,且只有2个字
select * from student where name like ‘华_’;
查询名字中包含’佳’字的同学
select * from student where name like ‘%佳%’;
5.5范围查询
… where 字段名 in (值1, 值2, 值3);
… where 字段名 between 值1 and 值2;
查询出住在北京或者杭州的同学
select * from student where address in (‘北京’, ‘杭州’);
5.6 空值判断
…where 字段名 is null;
将address为空的所有数据筛选出来
select * from student where address is null;
…where 字段名 is not null;
将address不为空的所有数据筛选出来
select * from student where address is not null;
5.7聚合函数
count(*) 统计查询结果的数量
max(字段名) 统计某个字段的最大值
min(字段名) 统计某个字段的最小值
avg(字段名) 统计某个字段的平均值
sum(字段名) 统计某个字段的总和
格式: select 聚合函数 from 表名 where 条件;
查询表中总共有多少学生
select count(*) from student;
获取学生的最大年龄
select max(age) from student;
统计年龄的平均值
select avg(age) from student;
5.8分组group by
格式: select … from 表名 where 条件 group by 字段名;
查看有多少种地址
select address from student group by address;
查询每个地址有多少人
select address, count() from student group by address;
再查询出杭州有多少人
select address, count() from student group by address having address = ‘杭州’;
having 条件 表示在某个结果集上继续筛选
注意: where 与 having 后面都是跟一个条件表示查询,
但是where是先筛选, having是在where的结果后再筛选
5.9排序 order by
格式: select … from 表名 where 条件 order by 字段名 排序规则;
查询所有学生,并按年龄排序(升序,默认的)
select * from student order by age desc;
降序 desc
升序 asc 默认的
多个字段排序
格式: select … from 表名 where 条件 order by 字段名1 排序规则, 字段名2 排序规则;
5.10分页
格式: select … from 表名 where 条件 limit 值1,值2;
例: select * from student limit 1,4;
值1 表示的是分页的起始位置,注意: 从 0 开始
值2 表示的是每一页的结果数量
获取第n页数据,每一页4条数据
select * from student limit 4(n-1),4;