Mysql基本语法入门[一]

数据库概述

为什么使用数据库

  • 持久化: 把数据保存到可掉电式存储设备中以供之后使用,大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以固化,而持久化的实现过程大多通过各种关系数据库来完成
  • 持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储到磁盘文件中,xml数据文件中

RDBMS与非RDBMS

关系型数据库RDBMS
实质
  • 这种类型的数据库是最古老的数据类型,关系型数据库魔性是把复杂的数据结构归结为简单的二元关系(即二维表格形式)
  • 关系型数据库以行(row)和列(column)的形式存储数据,以便于用户理解,这一系类的行和列被称为表(table),一组表组成了一个库
  • 表与表之间的数据记录有关系(rekarionship).现实世界中各种实体以及实体之间的各种联系均用关系模型来表示,关系型数据库就是建立在关系模型基础上的数据库
  • SQL就是关系型数据库的查询语言
优势
  • 复杂查询

    可以用SQL语句方便的在一个表以及多个表之间做复杂的数据查询

  • 事务支持

    使得对于安全性能很高的数据访问要求得以实现

非关系型数据库(非RDBMS)
介绍

非关系型数据库,可看成是传统关系型数据库的阉割版本,基于键值对存储数据,不需要经过SQL层的解析,性能非常高,同时,通过减少不常用的功能,进一步提高性能

目前基本大部分主流的非关系型数据库都是免费的

Mysql基本语句

Mysql语句

1. 登录语句
mysql -uroot -p密码        # -p参数后面不能有空格,其他参数可以
#参数
-P   代表指定端口号
-h   代表指定主机IP

2. 查看所有库
mysql > show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
3. 创建数据库
mysql> create database dbtest1;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| dbtest1            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

基本的SELECT使用

1.SQL的分类
DDL:数据定义语言   CREATE\ALTER\DROP\RENAME\TRUNCATE

DML: 数据操作语言   INSERT\DELETE\UPDATE\SELECT

DCL: 数据控制语言    COMMIT\ROLLBACK\SAVEPOINT\GRANT\REVOKE
2. SQL语言的规则与规范
1. 基本规则
SQL可以写在一行或者多行
每条命令以;结尾
关键字不能被缩写也不能分行
关于标点符号:
			必须保证所有(),单引号,双引号是成双成对的
			必须使用英文的符号
			
3. 基本的SELECT语句
1. SELECT...FROM...
select * from emp;
* 代表查找表中所有字段
4. 列的别名
AS : 引入别名
别名需要""
SELECT LISTFILE AS  "列出文件"  FROM XXX;
5. 去除重复行
DISTINCT: 关键字,去重
SELECT DISTINCT(ID) FROM XXXX;
6. 空值参与运算
NULL  代表为空,不等同与 0 '' 'null'
空值参与运算结果一定为空
采用函数判断: nvl(xxx,0)或者IFNULL(xxx,0)  两种都为如果值为空,那么就用0来代替
7. 着重号
`` : 着重号,和关键字或数据库方法冲突的字段,使用着重号包裹
select * from order   -- order是关键字
select * from `order`  
8. 查询常数
常数就是在SELECT查询结果集中添加一列自定义的固定数列
SELECT '尚硅谷',id,name FROM em_id;    --'尚硅谷'就是添加的常数
9. 显示表结构
DESCRIBE em_id;
或者 DESC em_id;
都可以显示表中字段的详细信息
10. 过滤数据
where : 后面跟查询条件
select * from employees where department_id  = '90'

运算符

算术运算符
+ - * / div  % mod

select 100,100-1,100-2,100-3 from DUAL;
select 100 + '1' from DUAL;  -- SQL中+号没有连接作用,表示加法运算,此时会将字符串转换为数值(隐式转换),结果为101 
select 100 + 'a' from DUAL;  -- 此时将'a'视作为0
select 100 * 1 from dual;
select 100 / 10 from dual;
select 100 % 3 from dual;
比较运算符
= <=> != < <= > >+
-- 在使用=时,一侧为数值一侧为字符串,字符串存在隐式转换,如果转换不成功,则看作0
-- 两边都是字符串时,则不会进行隐式转换
select 1 = NULL,NULL = NULL  -- 只要有null参与判断,结果就为null
select 1 <=> NULL,NULL <=> NULL -- 安全等于 为null而生,可以和null比较 
is null  is not null

LEAST GREATEST -- LEAST 取最小值  GREATEST 取最大值

BETWEEN...AND  -- 查询条件1和条件2范围内的数据,包含边界
select * from dual where salary BETWEEN 6000 and 8000;

in \ not in
select * from dual where salart in (1,6,4)
select * from dual where salart not in (1,6,4)

like -- 模糊查询
select & from dual where name like '%bc%'
_ -- 一个下划线代表一个字符占位
select * from dual where name like '_a%'

REGEXP \ RLIKE -- 正则表达式


逻辑运算符
 NOT \ !  -- 逻辑非
 
 AND \ &&  -- 逻辑与
 
 OR \ ||   -- 逻辑或
 
 -- AND 优先级高于 OR

排序与分页

排序规则
使用 ORDER BY 子句排序
ASC   升序
DESC  降序
ORDER BY 子句在SELECT语句的结尾
例: SELECT id,name FROM DUAL ORDER BY id
-- ORDER BY 默认按照升序排列

-- 多列排序
select employee_id,salary,department_id from employees order by department_id desc,salary asc
分页
-- 查询返回的记录太多,实现分页

1.实现规则
LIMIT 0,20
-- 0 代表偏移量,表示从第几条开始,20 代表条目数
LIMIT公式: LIMIT (x-1) * y,y    -- x代表第几页,y代表显示的条目数

例: 每页显示20条记录,显示第一页
select employee_id,last_name from employees limit 0,20
例: 每页显示20条记录,显示第二页
select employee_id,last_name from employees limit 20,20

2.Mysql 8.0 新特性
偏移量在后面,条目数在前面
例: 每页显示20条记录,显示第一页
select employee_id,last_name from employees limit 20 OFFSET 0
  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烤羊肉的逵妹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值