SQL-简介,基本命令

一、SQL简介

SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制

二、RDBMS

RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。(比如 MS Access、SQL Server、MySQL)

RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。

RDBMS 中的数据存储在被称为表的数据库对象中。

表是相关的数据项的集合,它由列和行组成。

三、SQL分类

1、DQL(Data Query Language

数据查询语言(凡是带有select关键字的都是查询语句)
select......

2、DML(Data Manipulation Language

数据操作语言(凡是对表当中的数据进行增删改的都是DML)

insert delete update
insert 增
delete 删
update 改

这个主要是操作表中的数据data

3、DDL(Data Definition Language

数据定义语言(凡是带有create、drop、alter的都是DDL)
DDL主要操作的是表的结构;不是表中的数据
create:新建,等同于增
drop:删除
alter:修改
这个增删改和DML不同,这个主要是对表结构进行操作

4、TCL(Transactional Control Language

 是事务控制语言

事务提交:commit;
事务回滚:rollback;

5、DCL(Data Control Language

数据控制语言
如:授权grant、撤销权限revoke....

四、SQL命令

某些数据库系统要求SQL语句以分号“;”结尾;分号“;”是在数据库系统中分隔每条 SQL 语句的标准方法

SQL语句不区分大小写

(一)基础命令

SELECT - 从数据库中提取数据

INSERT INTO - 向数据库中插入新数据

UPDATE - 更新数据库中的数据

DELETE - 从数据库中删除数据

CREATE DATABASE - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

1、SELECT - 从数据库中提取数据

(1)SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。

SQL SELECT 语法:

//查询某列
SELECT column_name,column_name FROM table_name;
//查询所有列
SELECT * FROM table_name;

(2)SELECT DISTINCT 语句 

SELECT DISTINCT column_name,column_name FROM table_name;

在表中,一个列可能会包含多个重复值,有时仅需要列出不同(distinct)的值。DISTINCT 关键词用于返回唯一不同的值。

 2、distinct 去除重复记录

 select distinct job from emp;

 SQL-简介,基本命令_第1张图片

注:

【1】select distinct查询原表数据不会被修改,只是查询结果去重

【2】distinct只能出现在所有字段的最前方

select empname,distinct job from emp;

如下就会报错:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'distinct job from emp' at line 1

 

(1)distinct出现在两个字段之前,表示两个字段联合起来去重

select distinct job,deptno from emp;

SQL-简介,基本命令_第2张图片

 (2)distinct 可以和 分组函数使用

 select count(distinct job) as jobcount  from emp;

 SQL-简介,基本命令_第3张图片

(3)WHERE 子句

WHERE 子句用于过滤记录。

SELECT * FROM table表名 WHERE id=1;

WHERE 子句中的运算符

下面的运算符可以在 WHERE 子句中使用:

运算符 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值

特殊条件
【1】空值判断: is null

Select * from user where name is null;

查询 user 表中 name 列中的空值。

is null 为 null;is not null 不为空

在数据库当中null不能使用等号"="进行衡量;需要使用is null

数据库中的null代表什么也没有,它不是一个值,所以不能使用等号"="衡量

【2】between and (在 之间的值)

Select * from user where score between 100 and 150;

查询 user 表中 score 列中大于 100 的小于 150 的值。

between … and …. 两个值之间, 等同于 >= and <=

使用between and的时候,必须遵循左小右大

between and是闭区间,包括两端的值

注意:大于等于 100 且小于等于 150, 100 为下限,150 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。

【3】In

Select * from user where score in (90,100,150);

查询 user 表 score 列中等于 90,100,150 的值。

in 包含,相当于多个 or (not in 表示不在这几个值当中的数据)

注:in不是一个区间。in后面跟的是具体的值

【4】like

Like模糊查询,通常和通配符百分号 % 和 下划线 _ 联合使用

Select * from user where name like 'X%';

查询 user 表中 name 列中有 'X' 的值,X' 为要查询内容中的模糊信息。

百分号%:匹配任意多个字符;下划线 _:任意一个字符(%是一个特殊的符号,_ 也是一个特殊符号)

 'X% ':为能配符,正则表达式,表示的意思为模糊查询信息为 X 开头的

 '%X ':为能配符,正则表达式,表示的意思为模糊查询信息为 X 结尾的

'%X%' : 表示查询包含X的所有内容

 '%X_': 表示查询以X在倒数第二位的所有内容

'_X%':查询第二个字母为 X

'__X%':查询第三个字母为 X

'%\_%':\ 转义字符;查询带有 下划线 _ 的

【】查询名字中含有O

select name from user where name like '%O%';

【】查询名字以O结尾

 select name from user where name like '%O';

【】查询名字以O开始

select name from user where name like 'O%';

【】查询第二个字每是O

select name from user where name like '_O%';

【】查询第三个字母是O

select name from user where name like '__O%';

【】查询名字中有下划线“_”

select name from user where name like '%\_%'; // \转义字符

(4)AND & OR 运算符
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

and优先级比or高

and和or同时出现,and优先级较高;如果想让or先执行,需要加“小括号”

在sql中,如果不确定优先级,就加小括号即可

(5)ORDER BY 关键字

ORDER BY 关键字用于对结果集进行排序。ORDER BY 关键字默认按照 升序(ASC) 对记录进行排序。如果需要按照降序对记录进行排序,使用 DESC 关键字。

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

2、INSERT INTO - 向数据库中插入新数据

INSERT INTO 语句用于向表中插入新记录。

INSERT INTO 语句可以有两种形式

(1)无需指定要插入数据的列名,只需提供被插入的值

INSERT INTO table_name
VALUES (value1,value2,value3,...);

(2)要指定列名及被插入的值

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

3、UPDATE - 更新数据库中的数据

UPDATE 语句用于更新表中的记录

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

4、DELETE - 从数据库中删除数据

DELETE 语句用于删除表中的记录。

DELETE FROM table_name
WHERE some_column=some_value;

SQL高级命令可参考SQL-简介,基本命令 

你可能感兴趣的:(数据库DataBase,SQL)