Oracle数据库
SQL:Structured Query Language(结构化查询语句)
SQL语句本身不区分大小写,但是出于可读性的目的,我们通常会将SQL中的关键字全部大写,非关键字全部小写。
//图片引用自 @Alive~
Oracle基础知识:注:红色语句是关键字
创建新用户:[create user 用户名;] 实例:SQL>create user linzhihong by 123456;
授予用户权限:[grant to 用户名;] 实例:SQL>grant connect,resource,dba to linzhihong;
用户登录:[connect 用户名@数据库名称] 实例:SQL>connect linzhihong@orcl;
创建数据库表:[create table table_name()]
实例:SQL>create table student(
Student_name varchar2(50) //not null
Student_ID number //not null
);
向表中插入数据:insert into table_name values(字段1数据;字段2数据,字段n数据)
SELECT:用于检索数据库中的数据。
INSERT:用于向数据库中插入新数据。
UPDATE:用于更新数据库中的数据。
DELETE:用于从数据库中删除数据。
CREATE:用于创建数据库对象,如表、索引、视图等。
DROP:用于删除数据库对象。
ALTER:用于修改数据库对象的结构或属性。
GRANT:用于授予用户或角色访问数据库对象的权限。
REVOKE:用于撤销用户或角色访问数据库对象的权限。
COMMIT:用于提交事务并将更改保存到数据库中。
ROLLBACK:用于撤销事务并恢复到之前的状态。
SAVEPOINT:用于创建一个保存点,以便在事务中回滚到该点。
常见问题Q&A:
Select—from—where联合语句:
1.Oracle的SELECT-FROM-WHERE语句用于从数据库中选择数据并根据指定条件进行过滤。下面是一个基本的SELECT-FROM-WHERE语句的语法:
其中,column1, column2, ...
是要选择的列名,可以用*代表所有列;table_name
是要从中选择数据的表名;condition
是一个可选的过滤条件,用于指定哪些行应该被返回。
例如,以下查询将从名为employees
的表中选择所有员工的名字和薪水,但仅限于薪水大于50000的员工:
此外,您可以使用ORDER BY子句来对结果进行排序,或使用GROUP BY子句来将结果分组。还可以使用其他关键字和子句来进一步自定义查询,例如JOIN,HAVING等等。
order By语句(排序)
2. ORDER BY是一个SQL语句的子句,用于对查询结果按照指定的列进行排序。它可以根据一个或多个列对查询结果进行升序(ASC)或降序(DESC)排序。
下面是一个基本的SELECT-FROM-WHERE-ORDER BY语句的语法
其中,column_name
是要用来排序的列名,ASC
表示升序排序(默认),DESC
表示降序排序。
例如,以下查询将从名为employees
的表中选择所有员工的名字和薪水,并按照薪水降序排序:
在这个查询中,首先根据薪水降序排序,然后在薪水相同的情况下,按照雇佣日期升序排序。
以下是一些示例:
1.按单个列排序
以下示例按age列对表my_table中的数据进行升序排序:
2.按多个列排序
以下示例按city列升序排序,然后按name列降序排序:
3.使用函数排序
您还可以使用函数对数据进行排序。例如,以下示例按字符串长度升序排序:
4.使用别名排序您还可以使用列别名对数据进行排序。例如,以下示例按名为age_alias的列进行排序:
SQL UPDATE 语句
SQL UPDATE语句用于更新表中现有的记录。它可以修改表中的一行或多行数据,以满足特定的条件。
以下是SQL UPDATE语句的基本语法:
- table_name是要更新的表名。
- SET关键字用于指定要更新的列及其新值。
- WHERE子句用于指定更新记录的条件,如果省略WHERE子句,则将更新所有记录。
以下是一个简单的例子,将表my_table中age列为20的记录的name列更新为"John":
如果您需要更新多个列,可以在SET子句中指定多个列和它们对应的新值。例如:
在执行UPDATE语句时,请务必小心。如果没有正确指定WHERE子句,可能会更新表中的所有记录。因此,在执行UPDATE语句之前,请仔细检查您的条件,以确保只更新您想要更新的记录。
SQL DELECT语句
SQL DELETE语句用于从表中删除一行或多行数据。它可以根据指定的条件删除表中的记录。请注意,删除操作是不可逆的,因此在使用DELETE语句之前,请务必小心检查您的条件。
以下是SQL DELETE语句的基本语法:
- table_name是要删除数据的表名。
- WHERE子句用于指定要删除的记录,如果省略WHERE子句,则将删除所有记录。
以下是一个简单的例子,删除表my_table中age列为20的记录:
如果您想删除表中的所有记录,可以省略WHERE子句,如下所示
需要注意的是,删除表中的数据会影响到与该表相关联的其他表和应用程序。因此,在执行DELETE语句之前,请确保您已备份了表中的数据,并且在执行之前已经仔细检查了条件。
SQL SELECT TOP 子句
SQL SELECT TOP子句用于在查询中返回指定数量的行或记录。在大多数数据库管理系统中,TOP子句用于指定要返回的记录数,而在一些其他系统中,它可能称为LIMIT或ROWNUM。
以下是SQL SELECT TOP子句的基本语法:
- number是要返回的行数。
- percent是要返回的记录的百分比。
- column_name(s)是要返回的列名。
- table_name是要查询的表名。
- WHERE子句用于指定查询的条件。
以下是一个简单的例子,返回表my_table中前5个age列最大的记录
如果您使用的是一些数据库系统(如MySQL和PostgreSQL),则可以使用LIMIT子句来实现相同的结果。例如,以下示例将返回表my_table中age列最大的5个记录:
需要注意的是,不同的数据库管理系统可能对TOP或LIMIT子句的语法和使用有所不同。在编写查询语句之前,请务必查阅所使用的数据库管理系统的文档,以确保您正确地使用了这些子句。
From子句
3. 在SQL查询中,FROM子句用于指定要查询的表,它通常是一个SELECT语句的第二个关键字。如果要从多个表中选择数据,则必须在FROM子句中列出这些表,并使用JOIN子句指定它们之间的关联条件。
以下是一个基本的SELECT-FROM语句的语法:
Where子句
4. Oracle支持使用WHERE子句中的多个条件对数据进行筛选。以下是一些示例:
使用AND和OR操作符使用AND和OR操作符可以将多个条件组合在一起,以便对数据进行更精细的筛选。例如,以下语句会选取所有age在18到30岁之间,且city为New York或Los Angeles的人:
使用IN操作符使用IN操作符可以将多个可能的值组合在一起,以便对数据进行筛选。例如,以下语句会选取所有city为New York、Los Angeles或Chicago的人:
- 使用LIKE操作符使用LIKE操作符可以进行模糊匹配。例如,以下语句会选取所有name以字母A开头的人
4.使用NOT操作符使用NOT操作符可以对条件取反。例如,以下语句会选取所有city不为New York的人:
整数类型
- 迷你整形:tinyint
- 短整形:smallint
- 中整形:mediumint
- 标准整形:int
大整形:bigint
小数类型
- 浮点型(单/双精度)
float/double
- 定点型:
decimal(有效数位,小数
字符串类型
- 定长型:char(固定长度)
- 变长型:varchar()
- 枚举型:enum(元素1,元素2,元素n)
类似单选框
- 集合:set(元素1,元素2,元素n)
类似多选框
- 文本字符串:
text
普通字符
二进制字符
blob
时间日期类型
- 年:year
- 时间戳:timestamp
- 日期:date
- 日期事件:datetime
- 时间:time