登录 主页

SQL 学习

2023-02-24 10:07AM

SQL的概念:

SQL(结构化查询语言)是用于访问和操作数据库中的数据的标准数据库编程语言

SQL标准命令:

与关系数据库交互的标准SQL命令是CREATE,SELECT,INSERT,UPDATE,DELETE和DROP,简单分为以下几组:

DDL(数据定义语言):

数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象。用于操纵表结构的数据定义语言命令有:

  • CREATE TABLE-- 创建(在数据库中创建新表、表视图或其他对象)

  • ALTER TABLE-- 更改 (修改现有的数据库对象,如表)

  • DROP TABLE-- 删除 (删除数据库中的整个表、表或其他对象的视图)

DML(数据操纵语言):

数据操纵语言用于检索、插入和修改数据,数据操纵语言是最常见的SQL命令。

数据操纵语言命令包括:

  • INSERT-- 插入 (创建记录)

  • DELETE-- 删除 (删除记录)

  • UPDATE-- 修改(修改记录)

  • SELECT -- 检索 (从一个或多个表检索某些记录)

DCL(数据控制语言):

数据控制语言为用户提供权限控制命令。

用于权限控制的命令有:

  • GRANT-- 授予权限

  • REVOKE-- 撤销已授予的权限

SQL RDBMS 的概念:

RDBMS是关系数据库管理系统(Relational Database Management System)的缩写。

 RDBMS是SQL的基础,也是所有现代数据库系统(如MS SQL Server、IBMDB2、Oracle、MySQL和MicrosoftAccess)的基础

(1):RDBMS中的数据存储在称为表的数据库对象中。这个表基本上是一个相关数据条目的集合,它由许多列和行组成。请记住,表是关系数据库中最常见和最简单的数据存储形式(2):每个表都被分解成更小的实体,称为字段。字段是表中的列,用于维护有关表中每条记录的特定信息

(3):记录也称为数据行,即表中存在的每个单独的条目。记录是表中的水平实体(4):列是表中的垂直实体,其中包含与表中特定字段关联的所有信息,它表示位置描述(5):表中的空值是显示为空的字段中的值,这意味着具有空值的字段是没有值的字段。

 非常重要的一点是空值不同于零值或包含空格的字段。具有空值的字段是在创建记录时留空的字段

SQL语法规则:

  • SQL语句总是以关键字开始,如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。

  • SQL语句以分号结尾。

  • SQL不区分大小写,意味着update与UPDATE相同

一些最重要的SQL命令:

  • SELECT - 从数据库中提取数据

  • UPDATE - 更新数据库中的数据

  • DELETE - 从数据库中删除数据

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

  • CREATE DATABASE - 创建新数据库

  • ALTER DATABASE - 修改数据库

  • CREATE TABLE - 创建新表

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

  • DROP TABLE - 删除表

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

  • DROP INDEX - 删除索引

SELECT语句

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

 句法:

SELECT column_name(s) FROM table_name

SELECT语句和WHERE子句

where子句用于过滤记录,用于提取那些满足指定条件的记录

 句法:

SELECT [*] FROM [TableName] WHERE [condition1]

SELECT语句与WHERE和/或子句

and & or 运算符用于基于一个以上的条件对记录进行过滤

如果第一个条件和第二个条件都成立,则and运算符显示一条记录

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

 句法:

SELECT [*] FROM [TableName] WHERE [condition1] [AND [OR]] [condition2]...

如果把and和or结合起来(使用圆括号来组成复杂的表达式):

SELECT * FROM Customers

WHERE Country='Germany'

AND (City='Berlin' OR City='München');

SELECT语句与ORDER BY

order by关键字用于对结果集按照一个列或者多个列进行排序,默认按照升序对记录进行排序

 句法:

SELECT column_name()
FROM table_name
ORDERBY column_name() ASCorDESC

SELECT DISTINCT(区分)子句

select distinct语句用于返回唯一不同的值

distinct关键词用返回唯一不同的值(在表中,一列可能会包含多个重复值)

 句法:

SELECTDISTINCT column1, column2....columnN
FROM   table_name;

SELECT IN子句

 句法:

SELECT column1, column2....columnN
FROM   table_name
WHERE  column_name IN (val-1, val-2,...val-N);

SELECT LIKE (类)子句

 句法:

SELECT column1, column2....columnN
FROM   table_name
WHERE  column_name LIKE { PATTERN };

SELECT COUNT(计数)子句

 句法:

SELECTCOUNT(column_name)
FROM   table_name
WHERE  CONDITION;

SELECT与HAVING子句

having 语句通常与 group by 语句联合使用

           用于过滤由 group by 语句返回的记录集

having语句弥补了where 关键字不能与聚合函数联合使用的不足

 句法:

SELECTSUM(column_name)
FROM   table_name
WHERE  CONDITION
GROUPBY column_name
HAVING (arithematic function condition);

INSERT INTO语句

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

 句法:

INSERTINTO table_name (column, column1, column2, column3, ...)
VALUES (value, value1, value2, value3 ...)

UPDATE语句

update语句用于更新表中已存在的记录

注意 :更新表中的记录时要小心!

要注意SQL UPDATE 语句中的 WHERE 子句!

WHERE子句指定哪些记录需要更新。如果省略WHERE子句,所有记录都将更新!

句法:

UPDATE table_name
SETcolumn=value, column1=value1,...
WHERE someColumn=someValue

SQL INSERT INTO 语法

 INSERT INTO 语句可以用两种形式编写。

 第一个表单没有指定要插入数据的列的名称,只提供要插入的值,即可添加一行新的数据:

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

 第二种,如果要为表中的所有列添加值,则不需要在SQL查询中指定列名称。但是,请确保值的顺序与表中的列顺序相同。INSERT INTO语法如下所示:

INSERTINTO table_name
VALUES (value1, value2, value3, ...);

DELETE语句

delete语句用于删除表中现有记录

注意:删除表格中的记录时要小心!

注意SQL DELETE 语句中的 WHERE 子句!

WHERE子句指定需要删除哪些记录。如果省略了WHERE子句,表中所有记录都将被删除!

 句法:

DELETEFROM tableName
WHERE someColumn = someValue

CREATE 语句

 句法:

CREATETABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);

DROP 语句

 句法:

DROPTABLE table_name;

CREATE INDEX语句

 句法:

CREATEUNIQUEINDEX index_name
ON table_name ( column1, column2,...columnN);

DROP INDEX语句

 句法:

ALTERTABLE table_name
DROPINDEX index_name;

DESC语句

 句法:

DESC table_name;

TRUNCATE 截断表语句

 句法:

TRUNCATETABLE table_name;

ALTER TABLE语句

 句法:

ALTERTABLE table_name {ADD|DROP|MODIFY} column_name {data_ype};

ALTER TABLE语句(对表名重命名)

 句法:

ALTERTABLE table_name RENAMETO new_table_name;

Use语句

 句法:

USE database_name;

COMMIT语句

 句法:

COMMIT;

ROLLBACK语句

 句法:

ROLLBACK;

where:

WHERE 子句中的运算符

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

运算符

描述

=

等于

<>

不等于。 注意:在某些版本的SQL中,这个操作符可能写成!=

>

大于

<

小于

>=

大于等于

<=

小于等于

BETWEEN

在某个范围内

LIKE

搜索某种模式

IN

为列指定多个可能的值

文本字段 vs. 数值字段

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

在上个实例中 'CN' 文本字段使用了单引号。

如果是数值字段,请不要使用引号。

参考:https://www.runoob.com/sql/sql-syntax.html

          https://www.w3cschool.cn/sql/rc8wsfp5.html

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论