操作数据库
-- 链接数据库 mysql -uroot -p -- 退出数据库 quit/exit -- 显示数据库版本 select version(); -- 查看当前使用的数据库 select database(); -- 查看所有数据库 show databases; -- 创建数据库 create database kuname charset=utf8; -- 查看创建数据库的语句 show create database kuname; -- 使用数据库 use kuname -- 查看数据库的表 show tables; -- 删除数据库 drop database kuname;
创建数据表
-- 数据表的操作 -- 查看当前数据库中所有表 show tables; 创建表 -- int unsigned 无符号整形 -- auto_increment 表示自动增长跟主键在一起 -- not null 表示不能为空 -- primary key 表示主键 -- default 默认值 -- create table 数据表名字(字段 类型 约束[,字段 类型 约束]); create table test(name varchar(30) not null,age int unsigned); -- 查看表结构 desc test; create table classes(id int unsigned primary key auto_increment,name varchar(39) not null); create table students(id int unsigned primary key auto_increment,name varchar(30) not null,age int unsigned,high decimal(3,2),gender enum("男","女","保密","中性") default "保密",cls_id int unsigned);
修改表结构
-- 查看表的创建语句 show create table students; -- 修改表-添加字段mascot(吉祥物) -- alter table 表名 add 列名 类型;给classes表添加mascot字段 alter table classes add mascot varchar(50); -- 修改表-修改字段:不重命名版 -- alter table 表名 modify 列名 类型及约束; alter table classes modify mascot varchar(100); -- 修改表-修改字段:重命名版 -- alter table 表名 change 原名 新名 类型及约束; alter table classes change mascot jxw int unsigned; -- 修改表-删除字段 -- alter table 表名 drop 列名; alter table classes drop jxw; -- 删除表 -- drop table 表名; -- drop database 数据库; drop table test;
插入数据
-- 查询表内容 select * from students; -- 全列插入 -- insert into 表名(字段1,字段2)values(值1,值2); -- 主键字段 可以用 0 null default 来占位 -- 向classes表中插入 一个班级 > insert into classes(id,name) values(1,"koo"); -- 全部插入 -- insert into 表名 values(值1,值2,值3...) insert into students values(1,"koo",18,1.70,"男",1); -- 部分插入 -- insert into 表名(列1,...)values(值1,...) -- 多行插入 -- insert into 表名(列1)values(值),(值); insert into students(name) values("yoo"),("mia");
修改表数据
-- 修改 -- 全部修改 update students set age=16; -- 按条件修改 > update students set age=28 where id=1; -- 按条件修改多个值 update students set age=29,high=1.80 where id=1;
基本查询用法
select * from students; select * from students where id=1; select name,age from students; select name,age from students where id=1; select name as "姓名",age as "年龄" from students; -- 起别名 -- 删除语句 物理删除 delete from students where id=4; 逻辑删除 逻辑删除 用一个字段来表示 这条信息是否已经不能再使用了 给students表添加一个 is_delete 字段 bit 类型 alter table students add is_delete bit default 0; update students set is_delete=1 where id=3; select students.name from students; select s.name,s.age from students as s; //消除重复行 select distinct gender from students;
比较运算符和逻辑运算符
select * from students where age>=18;-- > < >= != or <> -- 逻辑运算符 -- and / between..and -- 18和28之间的所有学生信息 select * from students where age>=18 and age<=28; select * from students where age between 18 and 28; select * from students where age>18 and gender="女"; select * from students where age>18 and gender=2; -- 枚举的数据类型可以用数字来表示,数字从1开始 select * from students where age>18 or height>=180.00; select * from students where not (age>18 and gender=2); -- 模糊查询 -- 模糊查询(where name like 要查询的数据) -- like -- %替换任意个 -- _替换1个 -- 查询姓名中 以“小"开始的名字的学生信息 select * from students where name like "小%": select * from students where name like "__": -- 范围查询. -- 范围查询 -- in(1,3,8)表示在一个非连续的范围内 -- 查询 年龄为18或34的姓名的学生信息 select * from students where age in (18,34); -- (18,34)不是区间,是确切的值 -- not in 不非连续的范围之内 -- 年龄不是 18或34岁的学生信息 select * from students where age not in (18,34); -- between...and...表示在一个连续的范围内 -- 查询 年龄在18到34之间的学生信息 select * from students where age between 18 and 34; select * from students where age not between 18 and 34; -- 判断is null select * from students where height is null; select * from students where height is not null; -- 排序查询 排序 order by 字段 asc asc从小到大排列,即升序 desc desc从大到小排序,即降序 查询年龄在18到34岁之间的男性,按照年龄从小到大到排序 select * from students where gender=1 and age between 18 and 24 order by age asc; select * from students where gënder=2 and age between 18 and 34 order by height desc, age asc; -- 分组查询 select gender from students group by gender;-- 可以消除重复 select gender, count(*) from students group by gender; select gender,group_concat(name) from students group by gender; -- 平均年龄 select gender,avg(age) from students group by gender; having(注意having和group by 连用 having后通常也要跟 聚合函数) 注意:聚合函数如果做为条件出现,只能和having配合。不能和where配合使用。 查询平均年龄超过30岁的性别,以及姓名 select gender,avg(age) from students group by gender having avg(age)>30; -- 分页查询 分页 limit start,count limit 放在最后面(注意) limit(要显示第几页-1)*每页分多少个,每页分多少个; select * from students limit 2; === select * from students limit 0,2; select * from students order by age asc limit 10, 2; -- 连接查询 连接查询(表与表之间的链接,为了更好的查出有效数据) inner join...on select...from 表A inner join 表B; 查询 有能够对应班级的学生以及班级信息 select * from students inner join classes; select * from students inner join classes on students.cls_id=classes.id; -- 子查询 select * from students where height>(select avg(height) from sudents);
标签:--,18,age,常用命令,students,MySQL,where,select From: https://www.cnblogs.com/KooTeam/p/17964285