基础操作
查看 mysql 安装路径: select @@basedir as basePath from dual
mysql命令中退出mysql: exit
cmd清屏: cls
mysql 28000错误: cmd输入services.msc,打开服务管理界面,将mysql关闭一次重启即可解决。
查看数据库: show databases;
打开数据库: use 需要打开的数据库名称;
创建数据库
一般创建: create database 数据库名称;
不存在并新建: create database if not exists 数据库名称;
删除数据库
一般删除: drop database 数据库名称;
存在并删除: drop database if exists 数据库名称;
创建表
create table 表格名称;
删除表
drop table 表格名称;
插入数据
插入一条: insert into 表格名称(字段,字段) values(内容,内容);
插入多条: insert into 表格名称(字段,字段) values(内容,内容),(内容,内容);
查询数据及函数处理
按照要求查询: select 字段名 from 表名 where 要求;
给查询字段指定别名: select 字段名 as 别名 from 表名 where 要求;
查询整张表格: select * from 表名;
升序降序查询: select * from 表名 order by 排序字段 asc(desc);
模糊查询: select * from 表名 where 查询字段 like "%xx%";
按照条件查询整条信息: select * from 表名 where 条件
正则表达式查询数据: select * from 表名 where 字段 regexp '^[查询条件]'
字符串形式查询数据: select concat(字段,'=>',字段) from 表名;
按照范围查询数据: select * from user where id in(范围数值,范围数值,范围数值);
format函数查询: select format(字段,保留小数点后几位数) from 表名; //解释:按照指定位数四舍五入处理数据,并且输出的是字符串类型数据。
abs函数[绝对值]:select abs(字段) from 表名;
mod函数[余数]: select mod(字段,被除数) from 表名;
ceil和floor函数[小数向上或向下取整]: select ceil(字段) from 表名;
rand函数[随机数]: select 字段 * rand() from 表名 where 条件;
round函数[四舍五入]: select round(字段,保留小数点后几位数位数) from 表名;
truncate函数[不管四舍五入,直接截取位数]: select truncate(字段,3) from 表名;
sign函数[正数返回1,负数-1,0就是0]: select sign(*) from 表名;
pow[幂运算]: select pow(2,3);
查询name开头是a-c的数据: select * from user where name regexp '^[a-c]'
指定以 demigod => 88 这种形式展示结果: select concat(name,"=>",score) from user;
查询id=2,3,4的数据: select * from user where id in(2,3,4);//查询条件可以是字符串
成绩保留小数点后3位展示: select format(成绩,3) from user;
绝对值展示: select abs(指数) from user;
余数展示: select mod(9,2) from user; //结果: 1
向下或向下取整: select (floor)ceil(2.3) from user; //结果: (2)3;
查询字段乘以一个随机数: select score * rand() from user where id = 1;
四舍五入1.23456: select round(1.23456,3) from user; //结果: 1.235
1.23456截取小数点后3位: select truncate(1.23456,3) from user; //结果: 1.234
判断数字正负数类型 : select sign(1.212),sign(0),sign(-12) from user; //结果1,0,-1;
幂运算2的3次方: select pow(2,3); //结果 8
修改数据
update 表名 set 修改部分 where 要求;
增加字段
alter table 表名 add 字段名 字段要求;
删除字段
alter table 表名 drop 字段名;
复制表格
部分复制[所有内容]: create table 新建的表名 select 字段,字段 from 需要被复制的表名;
整表复制[所有内容]: create table 新建的表名 select * from 需要被复制的表名;
只复制表结构:create table 新建的表名 like 需要被复制的表名;
查看表结构
describe[简写desc] 表名;
重命名表格
rename table 旧表名 to 新表名;
alter table 旧表名 rename 新表名;
删除表格数据
delete from 表名 where 条件;
两个表外键关联
A表:
create table A(
id int primary key auto_increment,
name varchar(8) not null,
password varchar(8) not null
)
B表:[关联A表的id]
create table B(
id int primary key auto_increment,
name varchar(8) not null,
f_id int,
foreign key(f_id) references A(id);
)
查询方法1:
select * from user,friend where A.id = friend.f_id;
等同于 select * from A join B on A.id = B.f_id;
查询结果两张整表拼接在一起。
查询方法2:
左键关联查询:[A表数据多于B表,结果为展示整张A表,B表没有的全部显示null]
select * from A left join B on A.id = B.f_id;
右键关联查询:[A表数据多于B表,结果为展示整张B表,展示所有B表数据]
select * from A right join B on A.id = B.f_id;
根据类型求和
表格:
id type name age
1 a 张三 18
2 b 李四 19
3 b 王五 20
4 c 赵六 19
5 a 谭七 22
6 c 钱九 23
7 a 孙十 18
8 d 李零 23
计算每种类型的年龄总和: select type,sum(age) from 表名 group by type;
结果:
type age
a 58
b 39
c 42
d 23
拓展:查询出来对sum排序
升序: select type,sum(age) from massage GROUP BY type order by sum(age) asc;
降序: select type,sum(age) from massage GROUP BY type order by sum(age) desc;
数据库内查询某个字段
select * from information_schema.columns where column_name= '字段名';
说明
原创作品,禁止转载和伪原创,违者必究!
网友评论