前言
本人也只是个数据库新手,刚自学学完数据库的基本使用,如果有错误之处,望指正。另,本文中使用的是MySQL5.5以及SQLyog,需要安装的朋友麻烦在网上找资源。
一、数据库的概述
1、数据库的作用
数据库可以将数据本地化,实现长期保存
数据库使用完整的管理系统,便于查询
2、数据库涉及的方面
DB(Database):即数据库,是数据存储的“仓库”。
DBMS(Database Management System):数据库管理系统,创建和操作数据库
SQL(Structure Query Language):结构化查询语言,专门用来与数据库通讯的语言
3、常见的数据库管理系统
MySQL、Oracle、DB2、SqlServer
4、数据库的特点
1)用表存放数据,用库来存放表
2)每个表都有一个唯一的名字,一个库可以存放多个表
3)表具有一些特性,这些特性定义了表中的数据如何存储
4)表由列(也称为字段)组成
5)表中的数据是按行存储的
5、SQL语言的分类
DQL:用于数据库的查询,即Select语句
DML:用于添加(Insert)、删除(Delete)、修改(Update)数据库记录
DDL:用于库和表的创建(Create)、修改(Alter)、删除(Drop)
DCL:数据控制语言,用于定义用户的访问权限和安全级别
TCL:事务控制语言
二、DQL语言
DQL语言是用于数据库的查询,而数据库最重要也是最难的部分就是查询。
1.基本的查询语句
select (想获取的信息)
from (表名);
比如,要获取employees表中的所有信息
select *
from employees;
select后面也可以加特定的列名
select employee_id
from employees;
实际上select就是一个输出语句,你可以在后面接常数或者表达式,当然select 1这样的就不需要用from了
select 1111*1111;
2.列的别名
SQL中,可以在列名后以 AS加别名 的方式为该列设置别名
select employee_id as id
from employees;
需要注意的是,列名如果是关键字则需要用单引号‘ ’括起来。
在为列设置列名的同时,显示的表的列名也会改变
3.+号的使用
在SQL中, +号仅仅只能用来进行数学运算。比如1+1, 不能用于字符串的拼接. 并且,null与任何数计算后的结果都为null
4.字符串的操作
在SQL中,字符串的拼接不是使用+号,而是需要用concat(str1,str2,...)来拼接
与java一样,SQL中也有substring函数,用于截取字符串; length()用于获取字符串长度
5.条件查询
基本语法
select 列名
from 表名
where 条件
6.条件运算符
>、<、<=、>=都与java一致,下面两种与java有所区别:
<>:不等于,!=也可以表示不等于但不建议使用 =:等于,SQL中单等号表示比较
7.逻辑运算符
and:与,一个条件为false则整个表达式为false
or:或,一个条件为true则整个表达式为true
not:非,得到与表达式的结果相反的结果
8.模糊查询
1)like
用于字符串的比较。在like后面的单引号中,可以用%号表示该位置有0个或多个任意字符,如查询名字中包含‘a’的员工
select last_name
from employees
where last_name like '%a%';
在like后面的单引号中,也可以使用_表示该位置有一个字符,如查询名字第三个字母为'e'的员工
select last_name
from employees
where last_name like '__e%';
2)between and
between 常数1 and 常数2 表示在两个常数间的值,如查询id在100到150之间的员工信息
SELECT *
FROM employees
WHERE employee_id BETWEEN 100 AND 150;
相当于以下代码
SELECT *
FROM employees
WHERE employee_id >= 100 AND employee_id <= 150;
3)in
表示满足多个条件中的一个,如查询job_id为AD_VP或IT_PROG的员工信息
SELECT *
FROM employees
WHERE job_id IN ('AD_VP','IT_PROG');
相当于以下代码
SELECT *
FROM employees
WHERE job_id = 'AD_VP' OR job_id = 'IT_PROG';
4)is null
专门用于判断是否为空,如查找没有manager的员工信息(manager_id为null)
SELECT *
FROM employees
WHERE manager_id IS NULL;
在SQL中,有一种'安全等于'符号<=>,这个符号不仅可以判断是否为0,也可以判断是否为null
SELECT *
FROM employees
WHERE manager_id <=> NULL;