mysql基础操作

全是毕业设计逼得~

2020-04-09 23:14

<-- MySQL 基本操作 -->

//重点说明
/对表名的操作均需要对其使用反引号``/

<-- 数据库操作 -->

使用数据库
use mysql;

创建数据库
create database 数据库名;
例如:创建auto数据库
create database auto;

显示所有数据库
show databases;

删除数据库
drop database 数据库名;
例如:删除auto数据库
drop database auto;

使用数据库
use 数据库名;

查询当前连接数据库
select database();

显示当前连接数据库所有表
show tables;

<-- 数据库表操作 -->

创建表
创建单个数据
create table 表名(字段名 类型(长度));
例如:创建auto数据库
create table class(id int(20));

创建多个数据
create table 表名(字段名 类型(长度) ,字段名 类型(长度),......)

(增)表内数据插入 //插入现有字段下单独的一行数据,不能对没有的字段进行设置
insert into 表名(字段名1,字段名2,...,字段名n)values(值1,值2,...,值n),(值1,值2,...,值n);

//在已有字段名下添加
insert into 表名 value(值1,值2,...,值n),(值1,值2,...,值n);

/decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位/

(删)删除表
drop table 表名;

删除当前表中指定数据
delete from 表名 where 表达式;
例如:删除当前表中id为3的数据
delete from neo-7n-0-002-gps where id=3;

(改)更改表中数据
opdate 表名 set 字段=新值1,...新值n where 条件;
例如:更改id为1的longitude值为104.564234
update neo-7n-0-002-gps set longitude=104.564234 where id=1;

在已有的数据库表中添加表中字段
alter table 表名 add 字段名 类型(长度);

修改字段(修改字段名、字段类型、长度)
修改字段名:
alter table 表名 change 旧字段名 新字段名

修改字段类型
alter table 表名 modify 字段名 字段类型(字段长度)

删除字段
alter table 表名 drop 字段名

(查)显示表信息
desc 表名 /或者/ show cowlmns from 表名

查询所有数据(基本语句格式(列))
select 字段1,字段2,...,字段n from 表名;
例如:查询id列
select id from neo-7n-0-002-gps;

如果查询当前表中所有数据(使用通配符*表示所有)
select * from 表名;

查询前几行数据
select * from 表名 order by 字段名 limit 限制条件;
例如:按照id查询neo-7n-0-002-gps表中前四个数据
select * from neo-7n-0-002-gps order by id limit 0,4; //0代表起始行但不包含起始行,4代表结束行,包含当前行

/增加说明/
where 用来筛选数据(条件查询)
select * from 表名 where 表达式;
where语句后面可以跟多个条件,从而显示查询的数据,多个条件之间使用and或者or连接
select * from 表名 where 表达式1 and (表达式2 or 表达式3);

group by 用来分类汇总
后面跟着要汇总的字段,可以跟多个字段,中间以逗号分隔
例如:
group by id表示按照id进行数据分类汇总

//常用的汇总
count(或者字段) 按照记录或者字段统计记录数 //count()包含所有的数据 count(字段)会忽略null的字段
例如:统计id的记录数
select id,count(*) as num from neo-7n-0-002-gps group by id; //以指定别名num查询,通过id进行分组

sum(字段) 对字段进行求和

avg(字段) 对字段求均值

max(字段) 求字段中的最大值

min(字段) 求字段中的最小值

having 用来筛选分类汇总结果 /只能以指定别名操作/
一般和group by配合使用,表示在得到分类汇总的基础上,进一步筛选记录
having后面只能是汇总的字段或者聚合的函数

例如:通过id进行分组,对latitude指定别名lat,并在分类基础上筛选latitude大于30.124536的数据
select id,count(*),max(latitude) as lat from neo-7n-0-002-gps group by id having lat>30.124536;

order by 用来排序(有升序和降序两种排列方式)
desc 表示降序 asc表示升序(可省略,默认升序)
例如:按照id进行降序排列
select * from neo-7n-0-002-gps order by id desc;

//如果数据类型是int类型排序直接比较大小,如果是字符串,里面有数字或者字母,会按照字符串的顺序进行排序

order by需要在where后面,limit前面
如果后台指定多个排序字段,中间可以逗号分隔
select * from neo-7n-0-002-gps order by id desc,longitude desc;

limit 用来取出指定的记录数
取得一定范围的记录集,此函数通常用分页
用法:
select * from 表名 limit 起始位置,长度;
//如果起始位置为0,那么第二个参数可以作为行或者长度
//如果第一个参数为非0,那么第二个参数代表长度

所以第二个参数综合可以作为长度

eg: select * from neo-7n-0-002-gps limit 2; //如果只有一个数字,那么该数字表示长度

/limit写在查询语句的最后/

/指定别名查询/
select 字段名1 as "新的字段名1",字段名2 as "新的字段名2",...,字段名n as "新的字段名n" from 表名;
//指定别名只是为了显示更加直观,并不改变标的字段名

<-- like及in关键字 -->

like 表示相似(类似于contain查询,即模糊查询) //多用于search搜索框

语法:
select * from 表名 where 字段 like "字符及通配符";

例如:
select * from neo-7n-0-002-gps where id like "1" //不加%:查询id为1的数据,等价于where id=1
select * from neo-7n-0-002-gps where id like "1%" //字符后加%:检索以1开头的数据
select * from neo-7n-0-002-gps where id like "%1%" //字符前后均加%:完全模糊检索,不管1的位置,标准模糊检索格式

in 表示列表中是否包含此类信息 in() 此信息指in括号中的内容

语法:
select * from 表名 where 字段 in(字段值1,字段值2,...,字段值n); //括号中若是字符串,应使用单引号括起来

例如:
select * from neo-7n-0-002-gps where id in(1,5,7);
等价于
select * from neo-7n-0-002-gps where id=1 or id=5 or id=7;

<-- 多表查询及子查询 -->

查询表中某一列

select 字段1,字段2,...,字段n from 表名;
完整语法:
select 表名.列名1,表名.列名2,...,表名.列名n from 数据库名.表名;

字段的别名,表也可以指定别名

select 别名.列名 from 表名 别名;
select * from 表名;
等效于
==> select 表名.* from 表名;
==> select 别名.* from 表名 别名;
==> select 别名.列名1,别名.列名2,...,别名.列名n from 表名 别名;

多表查询
当当前表满足不了当前的需求,此时就需要进行多表查询

语法:
select 字段1,字段2,...,字段n from 表1,表2,...,表n where 表达式;
例如:
select 字段1,字段2 from 表1,表2 where 表1.字段n=表2.字段n;
等效于:
select 别名1.字段1,别名2.字段2 from 表名1 别名1,表名2 别名2 where 别名1.字段n=别名2.字段n;
//select 别名1.,别名2. from 表名1 别名1,表名2 别名2 where 别名1.字段n=别名2.字段n;

select 别名1.字段1,别名2.字段2 from 表名1 别名1 join 表名2 别名2 on 别名1.字段n=别名2.字段n;
//select 别名1.,别名2. from 表名1 别名1 join 表名2 别名2 on 别名1.字段n=别名2.字段n;

2020-04-10 10:11

<-- MySQL字段(数据)类型 -->

大致分为三类
数值
日期/时间
字符串

数值类型

integer smallint decimal numeric
//近似数值的数据类型
float real double precision
关键字 int dec

日期类型
为表示时间和日期的数据类型

dete 日期值 年-月-日
time 时间值或持续时间 时:分:秒
detetime 混合日期和时间值 年-月-日 时:分:秒
year 年份值 年(2020)
timestamp 混合日期或时间值、时间戳 年-月-日 时:分:秒 /基本用于js中时间计算,例如博文发表于xxx前/

字符串类型

char 定长字符串 0-255
varchar 变长字符串 0-65535
text 长文本数据 0-65535
longtext 极大文本数据 0-4294967295
blob 二进制长文本数据 0-255
longblob 二进制极大长文本数据 0-4294967295

//其他类型
binary varbinary set eunm

posted @ 2020-04-12 10:02  藤井の树  阅读(150)  评论(0)    收藏  举报