数据库基础(1)

有个博主讲数据库讲得好
https://blog.csdn.net/m0_46153949/article/details/107116168

小知识

1、我们常说的数据库实际是数据库管理系统,SQL是操纵数据库的语言
2、关系型数据库:MySQL ,Oracle;非关系型数据库:Redis
3、MySQL 的端口:3306
4、SQL 语言大小写不敏感,大部分双引号和单引号可以通用。
5、任何数值和null做运算结果还为null
6、Varchar 就是Java里的 String
7、不等于号 用<>表示
8、记几个概念
(1)DML:Data Manipulation Language 数据操纵语言(增删改查)(主要用这个)
(2)DDL: Data Defination Language 定义数据库结构(表,库)
(3)DCL: Data Contorl Language 控制数据库的访问(权限)

9、下面的两种写法是一样的

SELECT 5+3;
SELECT 5+5 FROM DUAL; #DUAL:伪表

常用基础操作

查询语句

1、*表示所有字段;
2、起别名
给查询结果起别名:使用AS或者使用空格,别名内容加""

SELECT first_name "姓",last_name AS "名 字"

3、Department_id in(80,90) 等于 department_id=90 or department_id =80;
4、Distinct 关键字代表结果查重
5、Ifnull 判断是否为null,
IFNULL(a,b)
判断a是否为null,若为null返回b,不为null返回原值。

模糊语句

(格式)
select 字段名1,字段名2.....
from 表名
where 字段名 like '匹配的内容'

//包含a
First_name like ‘%a%’
//以a开头
First_name like ‘a%’
//以a结尾
First_name like ‘%a’

通配符:
转义字符:\ ,
任意元素:_ ,

//获取姓名中第二个字符为"_"的员工
SELECT first_name
FROM employees
WHERE first_name LIKE '_\_%';


//设置其它字符为转义字符
SELECT first_name
FROM employees
WHERE first_name LIKE '_$_%' ESCAPE '$';
// escape用来设置转义字符

排序

(格式)
select *
from 表名
where 过滤条件
order by 字段名1 desc/asc, ......

DESC降序,ASC升序
如果不指定排序的方式默认按照升序进行排序

SELECT salary,department_id
FROM employees
WHERE department_id IS NOT NULL
ORDER BY department_id ASC,salary DESC;

多表查询

(格式)
select *
from 表名.字段名
where A表 INNER JOIN B表
ON 用于连接两个表的字段名

1.在多表查询时,字段的前面最好要加上表名。
如果没有在字段前加表名,两张表中都有该字段那么就会报错。
2.在字段的前面加上表名会提高效率

sql99的写法

SELECT first_name,department_name
FROM employees INNER JOIN departments # [inner] join : []中的内容可以不写
ON employees.department_id=departments.department_id;

加表名

SELECT employees.first_name,employees.department_id,departments.department_name
FROM employees INNER JOIN departments
ON employees.department_id=departments.department_id;

你可能感兴趣的:(数据库基础(1))