基操
- 查看当前所有数据库
show databases;
- 打开指定库
use 库名;
- 查看当前库的所有表
show tables;
- 查看其它库的所有表
show tables from 库名;
- 创建表
create table 表名(
列名 列类型,
...
);
- 查看表结构
desc 表名;
- 查看当前数据库版本
show version();
- 查看当前所在数据库
select database();
- 退出
exit
orCTRL+C
查询
- 查询表中的单个字段
select 字段 from 表名;
2.查询表中多个子段
select 字段,字段,....字段 from 表名;
3.查询表中所有字段
select * from 表名;
- 查询常量值
select 100;
select '字符';
- 查询表达式
select 99*99;
- 查询函数
select 函数名;
例:
select version();
- 起别名
select 字段 [AS] 别名,字段 [AS] 别名, ... from 表名;
# AS 可省略
-- 如果别名里含有特殊字符例如:注释符 # 和 空格 则sql语言会识别有误
-- 解决 用双引号引起来 ----推荐用双引号----单引号也行
select 字段 [AS] "别名" from 表名;
- 去重
-- 在关键前加 DISTINCT
select distinct 字段 from 表名;--只能有一个字段
- +号的作用
mysql中+号只有运算的功能
select 1+2;--结果 3
select '1'+2; -- 如果一个为字符类型另一个为数值类型,则把字符类型转换为数值类型,如果转换成功就继续相加,转换失败则字符类型视为0
select null+2 -- 只要其中一方为null则结果肯定为null
- 拼接
CONCAT()
select concat('a','b','c') AS 结果;--结果为abc
--将多个字段拼接输出
select concat(字段,字段,...字段)AS 别名 from 表名;
条件查询
select
查询列表
from
表名
where
条件
分类:
一、按条件表达式筛选
条件运算符:> < = != <> <= >=
二、按逻辑表达式筛选
逻辑运算符
&& || !
and or not
三、模糊查询
like
between and
in
is null | is not null
like 特点:
1. 通常和通配符使用
通配符:
% 任意多个字符,包含零个字符
_ 任意单个字符
如果用like查询带有下划线 _ 或者带有 % 号时用转义字符 \ 进行转义
或者用escape关键字将一个字符拥有转义的含义
例:
select
字段
from
表名
where
name like ‘_$_%’ escape '$';
between and 特点:
1. 使语句比较简洁
1.
id >= 100 and id <= 120
等价于
id between 100 and 120 --(100 和 120 的位置不能反 并且 包含临界值 100 和 120)
in
1. 含义:判断某字段的值是否属于in 列表中的某一项
特点:
1. 使用in提高语句简洁度
2. in列表的值类型必须一致或兼容
3. 不支持通配符 _ %
is null | is not null
= <> 不能用于判断是否为空值(null)
所以
用is null | is not null 来判断
安全等于 <=>
安全等于可以用于来判断值或者是否为空
例:
salary <=>1000
salary <=>null
另:
ifnull() 函数
用法
ifnull(关键字,值)
如果关键字为null 则返回你设的值
排序查询
语法:
select 查询列表
from 表名
[where 条件]
order by 需要排序的列表 [asc|desc]
--desc 降序
--asc 升序
--不写默认升序
1. order by 后面可以跟表达式 、别名、 函数
2. order by 可以按多个字段排序
3. order by 子句一般放在查询语句的最后面 limit子句除外