**clear up some basis grammar of mysql, it's only let me to search some message of mysql**
- 启动和关闭MySQL(window): 桌面 - 我的电脑右键 - 管理 - Services - 找到Mysql右键关闭
- 登陆MySQL: mysql -u 用户名(root) -p密码 例如: mysql -u root -pabcdef;
### 数据库
- 创建数据库:
1. create database 数据库名 <default charset 编码格式(utf8)>
2. create database if not exists 数据库名 <default charset 编码格式(utf8)>
- 删除数据库: drop database 数据库名
- 进入指定的数据库: use 数据库名
### 注释
- 单行注释: #号或者--
- 多行注释: /**/
### 基础查询
1、基础语法:
- select 常量: select 10; 结果为常量
- select 表达式: select 10/3; 结果为计算后的结果
- select 函数: select version(); 结果为函数的返回值
- select 字段 <as 别名> from 表; 别名中出现空格和关键字需要用引号引上
- select 特殊字段(例如name, my age)** from 表; 查询特殊字段需要用反引号引上
2、去重:distinct关键字
- select distinct 字段 from 表;
3、+号的作用:
- 两个数值: 相加
- 一个为数值一个为字符: 对字符进行从左到右截取操作, 直到遇到非数值为止, 然后进行相加, 如果整个字符都没有数值, 则该字符转为0 => (select 10 + "10.5a" 结果为20.5)
---
### 条件查询
1、条件表达式:< > = >= <= <>不等于,等价于(!=) \
例如: `WHERE job_id >= 50;`
2、逻辑表达式:
AND(&&) OR(||) NOT(!)
例如: `WHERE job_id > 0 AND job_id < 50;`</br>
`WHERE job_id < 20 OR job_id > 10;`</br>
`WHERE NOT(job_id > 50);` --> 查询除了`job_id > 50`的信息
3、模糊查询:
- like : 查询字段值的格式一致的, 例如: `first_name like ("%e%")`
语法: `字段 LIKE ("匹配模式")` (_代表任意字符, %代表任意个字符, \代表转义字符)\
自定义转义字符: `字段 LIKE ("匹配模式") ESCAPE "转义字符";`
- IN : 查询字段值是以下几个的, 例如: `job_id IN (10, 11, 12)`
- BETWEEN...AND : 查询字符字段是规定范围内的, 例如: `job_id BETWEEN 50 AND 100` ==== `job_id >= 50 AND job_id <= 100`;
4、其他查询:\
`字段 IS NULL`, `字段 IS NOT NULL`: 查询字段是空/非空的
---
### 排序查询
- ORDER BY: ASC(默认)升序排列, DESC降序排列\
可排序的内容: 单个字段,多个字段,表达式,函数, 多个排序之间用逗号隔开\
例如: `ORDER BY job_id DESC, first_name ASC`\
`ORDER BY length(first_name) DESC` (根据first_name的字符长度降序)
---
### 单行函数
1、字符函数
- length(str): 获取字符串的字节个数(在UTF-8编码格式下一个汉字占3个字节)
- concat(str, str2...): 拼接字符串
- trim(str): 去除str左右两边的空格
- substr(str, index): 获取str从index开始的所有字符
- substr(str, index, len): 获取str从index开始的len个字符, 索引从1开始
- instr(str, searchStr): 获取str中searchStr第一次出现的索引
- upper/lower(str): 将字符串转换为大写/小写形式
- lpad/rpad(str, len, padStr): 将str用padStr填充到len个字符, 如果len小于str长度, 则在截取左边len个值作为新的str
- replace(str, oldStr, newStr): 将str中的oldStr用newStr去填充
2、数值函数
- round(num): 对num进行四舍五入 ( round(10.555) -> 11 )
- round(num, x): 对num保留x位小数后再四舍五入 ( round(10.55, 1) -> 10.6 )
- ceil(num): 对num进行向上取整
- floor(num): 对num进行向下取整
- mod(x, y): x%y, x模y
- truncate(num, x): 对num截取x位小数( truncate(10.55, 1) -> 10.5 )
- rand(): 获取0-1的随机小数
3、日期函数
- now(): 获取当前日期时间
- curdate(): 获取当前日期
- curtime(): 获取当前时间
- year(date d), month(date d), day(date d),\
hour(date d), minute(date d), second(date d): 获取日期对象中指定的年月日时分秒, date d可以是now() 函数的值
- str_to_date(str, format): 将字符串转换成指定格式的日期显示
- date_format(date d): 将日期对象转换为指定格式的字符串表示
- datediff(date d1, date d2): 两个日期的天数比较, 返回d1 - d2的值
```
匹配模式:
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
```
4、其他函数
- version(): 获取数据库的版本
- user(): 获取登陆的用户名
- database(): 获取当前数据库名
- IFNULL(字段一, 新值): 如果查询的字段为null, 则显示为新值
- ISNULL(字段): 如果查询的字段为null, 则显示为1, 反之则为0
5、流程控制函数
- if (条件表达式, 语句一, 语句2) : 等价于三目表达式, 可用于select语句中, 满足条件和不满足条件时输出的结果不一样, 语句可以是字段, 函数等\
例如: select if (job_id > 10, 'haha', job_id) from 表 (不同条件输出结果不一样)\
select if (job_id > 10, job_id, first_name) from 表 (满足条件输出该行数据的job_id, 不满足输出该行数据的first_name)
- case语句一(类似于switch..case)\
语法:\
case 字段/语句\
when 常量值/语句 then 常量值/语句\
when 常量值/语句 then 常量值/语句\
else 常量值/语句\
end;
```
例子:
SELECT
last_name as Last_name,
job_id as Job_id,
case job_id
WHEN concat("AD", "_PRES") THEN "A"
WHEN "ST_MAN" THEN "B"
WHEN "IT_P
ROG" THEN "C"
WHEN "SA_REP" THEN "D"
WHEN "ST_CLEAK" THEN "E"
END
AS grade
FROM
myemployees.employees
WHERE last_name = "K_ing";
```
- case语句二(类似于if..else)\
语法:\
case\
when 条件一 then 字段/语句\
when 条件二 then 字段/语句\
else 字段/语句\
end
```
例子:
案例:查询员工的工资的情况
如果工资>20000,显示A级别
如果工资>15000,显示B级别
如果工资>10000,显示C级别
否则,显示D级别
SELECT
salary,
case
WHEN salary > 20000 THEN 'A'
WHEN salary
没有合适的资源?快使用搜索试试~ 我知道了~
Mysql学习笔记(整理了大部分的SQL语法).zip
共67个文件
sql:35个
md:24个
png:7个
需积分: 5 0 下载量 13 浏览量
2024-02-22
12:40:46
上传
评论
收藏 1.62MB ZIP 举报
温馨提示
Mysql学习笔记(整理了大部分的SQL语法)
资源推荐
资源详情
资源评论
收起资源包目录
Mysql学习笔记(整理了大部分的SQL语法).zip (67个子文件)
kwan1117
练习SQL时的表
departments.sql 3KB
jobs.sql 2KB
locations.sql 4KB
employees.sql 17KB
MySQL深入学习
01_索引的底层原理分析.md 8KB
photo
05_行锁的不同表现形式.png 72KB
02_盘面.png 467KB
03_多级索引组织方式.jpg 80KB
04_B+树索引.png 48KB
01_机械硬盘.png 285KB
02_MySQL的锁机制.md 10KB
Redis
03_Redis客户端Jedis.md 2KB
08_RedisCluster.md 8KB
02_Redis基本命令.md 10KB
05_Redis持久化.md 10KB
04_Redis的其它功能.md 9KB
photos
AOF重写.png 192KB
主从复制-全量复制流程图.png 224KB
主从复制-部分复制流程图.png 200KB
06_主从复制.md 5KB
07_RedisSentinel.md 7KB
01_Redis入门.md 2KB
查询笔记
28_流程控制结构.sql 5KB
18_表的管理.sql 3KB
06_分组查询.sql 3KB
19_操作表练习.sql 1KB
gjp_sql.sql 2KB
01_基础查询.sql 2KB
23_事务.sql 3KB
20_数据类型.sql 5KB
08_sql99.sql 6KB
07_sql92(内连接).sql 6KB
03_排序查询.sql 2KB
24_视图.sql 2KB
22_标识列.sql 2KB
27_函数.sql 2KB
02_条件查询.sql 3KB
14_修改语句.sql 967B
.sql 540B
04_单行函数.sql 7KB
17_库的管理.sql 487B
16_数据处理练习.sql 1KB
15_删除语句.sql 2KB
12_联合查询.sql 833B
25_变量.sql 3KB
09_子查询.sql 9KB
05_分组函数.sql 2KB
test.sql 280B
21_约束.sql 5KB
10_分页查询.sql 769B
13_插入语句.sql 2KB
26_存储过程.sql 4KB
11_子查询经典案例.sql 5KB
Mysql优化
04_索引失效的情况分析.md 8KB
00_MySQL的一些小知识.md 4KB
03_索引优化之案例的引入.md 5KB
010_关于mysql的权限相关的命令.md 857B
05_关于索引的题目进行强化学习.md 5KB
06_查询截取分析.md 5KB
01_索引的引入.md 4KB
02_explain语句的引入.md 6KB
011_CentOS6安装mysql.md 3KB
07_慢查询日志.md 715B
09_主从复制.md 3KB
08_MySQL锁机制.md 15KB
06_查询优化.md 7KB
README.md 37KB
共 67 条
- 1
资源评论
Kwan的解忧杂货铺
- 粉丝: 1w+
- 资源: 3651
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功