mysql个人笔记(一)基础查询

数据库操作

查询有哪些数据库

show databases;

使用某个数据库

use 数据库名;

创建一个新的数据库

create database 数据库名;

删除某个数据库

drop database 数据库名;

表操作

查询当前数据库下有哪些表

show tables;

查看表结构

desc 表名;

删除数据表(所有数据和字段全部消除)

drop table 表名;

查询表的所有数据

select * from 表名;

删除表的所有或部分数据(字段仍保留)

delete from 表名 (where 逻辑断言值为真)

在某个表内添加数据

insert into 字段名 values (value1,value2,...,valueN);

查询某个表的某些字段的数据

select 字段名1,字段名2... from 表名 ;

更新某个表的数据

update 表名 set 字段名1=需更新值,字段名2=需更新值... where 逻辑断言值为真;
//更新至可以为赋值语句,如字段1=1000,字段1=字段1*5等等

增加字段(属性/列)

alter table 表名 add 字段名 数据类型  [约束条件]

删除字段(属性/列)

alter table 表名 drop 字段名;

基础查询

1.查询单表单字段
select 字段名 from 表名
2.查询单表多字段
select 字段名1,字段名2,字段名n from 表名
3.查询单表全部字段
select * from 表名
4.查询常量
select 100;
select 'helloworld';
5.查询表达式
select 100%2;
6.查询函数
select version();
7.字段起别名
select 字段名1 as 别名1,字段名2 as 别名2 from 表名;
//也可以不带as,留空格即可
//别名中间不能有空格,如果有可以用下划线代替
8.去重操作
select distinct 字段名 from 表名
9.加号作用(可以跳过不看,基本也用不到)
select 字段名1+字段名2 from 表名 //报错
//mysql中的加号有且仅有相加的作用,不能运用于字符串连接
10.concat()函数
select concat(字段名1,字段名2...) from 表名
//concat函数的作用是将这括号内字段拼接输出,如果有一个为null那么输出值就为null
11.ifnull()函数
ifnull(可能为null的字段名,如果为null就返回什么值) from 表名
//ifnull函数需要两个参数,左边的是字段名,右边的是如果字段为null则返回什么值。
12.查询的基本句式
select 字段1,字段2,... 
from 表名
where 逻辑断言值为真

查询的计算思路(循环)
查询语句的语义
1、from; //首先看在那几个表里面查
2、where;//条件是什么
3、select //输出时要输出哪些字段

从表中选出满足条件为真的行按照所要求的字段输出。

13.按条件表达式筛选
符号 功能
> 大于
< 小于
= 等于
!= 不等于(虽然能用,但是不推荐)
<> 不等于(推荐使用规范的不等号)
>= 大于等于
<= 小于等于
14.按逻辑表达式选择
符号 功能
and / &&
or / ||
not / !

优先级
NOT>AND>OR
如果不清楚,建议使用括号()

15.字符串操作 %与_
select * from instructor where name like "%i";  
select * from instructor where name like "%i%";
select * from instructor where name like "%i_";
//%表示任意字符串(可以多个字符),_表示任意单个字符,根据情况组合使用
16.between and

between a and b。在a和b中间取值

select * from  test  where value between 1 and 2;
//between and需要两个参数,限制了取值范围,增加了可读性
17.in

相当于一堆“OR”,把所有可取的值放到括号内以逗号隔开
需要注意的是括号内的值的类型必须相同,如果为字符串类型,还需要在字符串两边加’’

select * from test where value in (1,2,3,4,5);
//in中不能使用_和%(可见15)
18.is null和 is not null
select * from test where value is null;
select * from test where value is not null;
//判断是否为null值
//ps,之前的=和<>不能判断是否为null
19. 安全等于 <=>
符号 可判断的范围
= 判断普通数值(数字,字符串)
is null 判断null值
<=> 既可以判断普通数值,又可以判断null值

<=>缺点:可读性差,因为=是等于,<>是不等于,容易看混

20.排序查询order by
select * from 表名 order by 字段名,字段别名,函数,表达式  asc/desc

1.order by 子句中可以接字段名,字段别名,函数,表达式
2.order by 最后asc表升序,desc表降序,什么都不写默认为降序
3.order by 一般在所有查询条件的最后边
4.order by 后面可以有多个排序,运行时按从左到右执行。举个例子

select * from test order by id asc,grade desc;

此处就是先按id升序排列,如果碰到id相同,那么按成绩降序排列

字符函数

21.length函数

作用:返回传入字符串有多少字节
length(‘需要求出字节个数的字符串’)

22.大写/小写化 upper和lower

upper(‘需要大写的字符串’)
lower(‘需要小写的字符串’)

23.substr字符串截取

四种函数重载
1.substr(‘字符串’,数字),表示对在数字**之后的(包括数字所在的)**后面的字符串截取
举例

select substr('abcdtest',5);

表示从第五个开始截取后面所有的
输出的值为test
2.substr(‘字符串’,数字1,数字2),表示从数字1的位置截取数字2数目的字符
举例

select substr('abcdtest',5,3);

表示从第五个开始截取三个字符
输出的值为tes

24.instr 返回起止位置

instr(‘字符串1’,‘字符串2’);
返回字符串二在字符串1的起点位置。易知需要字符串2是字符串1的一部分,如果找不到则返回0
举例

select instr('abcd','cd');

表示cd在字符串abcd的起始点位置
返回的值为3

25.trim 去空格/特定字符

1.去空格,只能去两边的,不能去中间的

trim('    12    3    ');

返回的值为12 3
2.去特定字符

trim('aa' ,'aaa 12aa3 aa');//注意a的数目

返回的值为a 12aa3 ,说明是按与特定字符一小段一小段去除的

26.lpad,rpad指定字符左、右填充

lpad(‘字符串’,‘数字’,’‘字符);
lpad(‘字符串’,‘数字’,’'字符);
意思是如果字符串不到数字个数的长度的话,就用字符填充
举例

select lpad('123',5,'%');
select rpad('123',5,'%');

输出的值分别为
lpad:%%123
rpad:123%%

27.replace函数

replace(‘字符串’,‘需要替下的字符’,‘替换的字符’);
意思是将这个字符串之内所有需要替下的字符换成另一种字符
举例:

select replace('qwer','r','q');

输出的结果为’qweq’

数字函数

28.四舍五入函数round

默认在整数位四舍五入,所以看小数点后一位。
也可以多加一个参数表示保留小数点后几位
举例

select round(1.2);
select round(-1.6);
select round(1.256,2);

结果为1,-2,1.26

29.向上取整函数ceil与向下取整函数floor

ceil返回≥该参数的最小整数,floor返回≤该参数的最大整数
举例

select ceil(1.2);
select floor(-1.7);

结果为2,-2

30.截断函数truncate

truncate(数字,需要保留多少小数位),返回截去小数位之后的数字
举例

select truncate(1.222,2);

结果为1.22

聚集函数

聚集函数 作用 支持类型 是否支持distinct去重 是否忽略NULL
avg() 求平均值 数值型
max() 求最大值 任何类型
min() 求最小值 任何类型
count() 求行数 任何类型
sum() 求和 数值型

分组查询group by

猜你喜欢

转载自blog.csdn.net/weixin_45067603/article/details/106269597
今日推荐