sql基础概念,SQL基础概念

1,MySQL:(structured query
 language)用于访问和拍卖数据库的规范语言     

SQL基础概念-指令,sql基础概念

1,MySQL:(structured query
 language)用于访问和拍卖数据库的业内语言      二,什么是 SQL?
     SQL 指结构化查询语言      SQL
使我们有力量访问数据库(数据库是安分守己数据结构来组织,存取和保管数据的仓库)
     SQL 是1种 ANSI 的专业总结机语言 三,SQL 能做怎么着?      SQL
面向数据库执行查询      SQL 可从数据库取回数据      SQL
可在数据库中插入新的笔录      SQL 可更新数据库中的数据      SQL
可从数据库删除记录      SQL 可成立新数据库      SQL 可在数据库中开立异表
     SQL 可在数据库中创设存款和储蓄进程      SQL 可在数据库中创建视图      SQL
能够安装表、存储进程和视图的权杖  
4,在顶峰上常用的指令(基于桌面包车型客车文本管理)      touch +
文件名.文件类型    //成立贰个文书      open + 文件名                
//打开 对应的文书也许是文本夹       ls                                  
//列出富有的公文      clear                              //清屏记录
     mkdir + 目录的名字           //创制目录(文件)      cp + 参数 +
源文件 + 指标文件  + 拷贝  //移动文件      rm+ 参数 +文件             
//删除文件      cd ../                            //重临上一级目录
     ping                              //给当下的互连网主机发送二个回应请求      mail                              //阅读和出殡和埋葬电子邮件
     uname                          //显示操作系统的关于新闻      who  
                           //列出脚下登录全体的用户      whoami        
                //展现当前正值操作的用户名      df                      
          //显示文件的体系的总空间和可用空间           w                
                //展现当前的那几个控制台      history                    
     //列出多年来履行过的 几条命令及数码  

1, MySQL
:(structured query language)用于访问和拍卖数据库的正式语言 贰 ,什么是
SQL? SQL 指结构化查询语言SQ…

1,MySQL:(structured query
 language)用于访问和拍卖数据库的标准语言     

sql基础概念,SQL基础概念。SQL语言处理

本章,我们将会重视探究SQL语言基础,学习用SQL实行数据库的数量扩充、删除和改动等操作。其余请留心本章的SQL语法基于Oracle数据库的PL/SQL语法。

2,什么是 SQL?

2,什么是 SQL?

表的多少操作

DML 能够在下列条件下执行:

  • 向表中插入数据
  • 修改现存数量
  • 除去现存数量

     SQL 指结构化查询语言

     SQL 指结构化查询语言

新增

使用 INSERT 语句向表中插入数据。

处理语法

INSERT INTO table [(column [, column...])]
VALUES      (value [, value...]);
--使用这种语法一次只能向表中插入一条数据。
  • 为每一列添加三个新值。
  • 按列的暗中同意顺系列出各类列的值。
  • 在 INSE冠道T 子句中私行列出列名和她俩的值。
  • 字符和日期型数据应涵盖在单引号中。

     SQL
使大家有能力访问数据库(数据库是比照数据结构来公司,存取和管理数据的库房)

     SQL
使大家有力量访问数据库(数据库是遵照数据结构来集团,存取和管制数据的堆栈)

插入空值

隐式格局: 在列名表中省略该列的值。

INSERT INTO HR.DEPARTMENTS
  (DEPARTMENT_ID, DEPARTMENT_NAME)
VALUES
  (330, 'Purchasing');
--1 row created.

呈现方式: 在VALUES 子句中钦命空值。

INSERT INTO HR.DEPARTMENTS VALUES (400, 'Finance', NULL, NULL);
--1 row created.

     SQL 是一种 ANSI 的正统总括机语言

     SQL 是壹种 ANSI 的专业总结机语言

安插系统时间

SYSDATE 记录当前系统的日期和时间。

INSERT INTO HR.EMPLOYEES
  (EMPLOYEE_ID,
   FIRST_NAME,
   LAST_NAME,
   EMAIL,
   PHONE_NUMBER,
   HIRE_DATE,
   JOB_ID,
   SALARY,
   COMMISSION_PCT,
   MANAGER_ID,
   DEPARTMENT_ID)
VALUES
  (113,
   'Louis',
   'Popp',
   'LPOPP',
   '515.124.4567',
   SYSDATE,
   'AC_ACCOUNT',
   6900,
   NULL,
   205,
   100);
--1 row created.

INSERT INTO HR.EMPLOYEES
VALUES
  (114,
   'Den',
   'Raphealy',
   'DRAPHEAL',
   '515.127.4561',
   TO_DATE('FEB 3, 1999', 'MON DD, YYYY'),
   'AC_ACCOUNT',
   11000,
   NULL,
   100,
   30);
--1 row created.

3,SQL 能做怎么样?

3,SQL 能做哪些?

安插其余表的数码

INSERT INTO SALES_REPS
  (ID, NAME, SALARY, COMMISSION_PCT)
  SELECT EMPLOYEE_ID, LAST_NAME, SALARY, COMMISSION_PCT
    FROM EMPLOYEES
   WHERE JOB_ID LIKE '%REP%';
--4 rows created.

     SQL 面向数据库执行查询

     SQL 面向数据库执行查询

更新

行使 UPDATE 语句更新数据。

语法示例

UPDATE      table
SET     column = value [, column = value, ...]
[WHERE      condition];
--可以一次更新多条数据

应用 WHERE 子句钦定须要创新的多寡。

UPDATE HR.EMPLOYEES 
SET DEPARTMENT_ID = 70 
WHERE EMPLOYEE_ID = 113;
--1 row updated.
--如果省略WHERE子句,则表中的所有数据都将被更新。

在UPDATE语句中使用子查询

UPDATE HR.EMPLOYEES
   SET JOB_ID =
       (SELECT JOB_ID FROM HR.EMPLOYEES WHERE EMPLOYEE_ID = 205),
       SALARY =
       (SELECT SALARY FROM HR.EMPLOYEES WHERE EMPLOYEE_ID = 205)
 WHERE EMPLOYEE_ID = 114;
--1 row updated.
--更新 114号员工的工作和工资使其与 205号员工相同

UPDATE COPY_EMP
   SET DEPARTMENT_ID =
       (SELECT DEPARTMENT_ID FROM HR.EMPLOYEES WHERE EMPLOYEE_ID = 100)
 WHERE JOB_ID = (SELECT JOB_ID FROM HR.EMPLOYEES WHERE EMPLOYEE_ID = 200);
--1 row updated.
--在 UPDATE 中使用子查询,使更新基于另一个表中的数据。

     SQL 可从数据库取回数据

     SQL 可从数据库取回数据

997755.com澳门葡京 ,删除

利用 DELETE 语句从表中删除数据。

语法示例

DELETE [FROM]     table
[WHERE    condition];

行使WHERE 子句钦命删除的笔录。

 DELETE FROM HR.departments
 WHERE  department_name = 'Finance';
--1 row deleted.
--如果省略WHERE子句,则表中的全部数据将被删除。

在 DELETE 中使用子查询

DELETE FROM HR.employees
WHERE  department_id =
                       (SELECT department_id
                        FROM   HR.departments
                        WHERE  department_name LIKE '%Public%');
--1 row deleted.
--在 DELETE 中使用子查询,使删除基于另一个表中的数据。 

     SQL 可在数据库中插入新的记录

     SQL 可在数据库中插入新的记录

高档函数处理

     SQL 可更新数据库中的数据

     SQL 可更新数据库中的数据

NVL & NVL2

NVL

将空值转换到3个已知的值:能够行使的数据类型有日期、字符、数字。

函数的1般情势:

  • NVL(commission_pct, 0)
  • NVL(hire_date, SYSDATE)
  • NVL(job_id, 'No Job Yet')

应用示例

SELECT last_name, salary, NVL(commission_pct, 0),
   (salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL
FROM hr.employees;
--NVL(commission_pct, 0):若commission_pct是NULL,那么取0作为它的值

NVL2

SELECT last_name,  salary, commission_pct,
       NVL2(commission_pct, 'SAL+COMM', 'SAL') income
FROM   hr.employees WHERE department_id IN (50, 80);
--NVL2(commission_pct, 'SAL+COMM', 'SAL'):若commission_pct不是NULL,就取SAL+COMM,否则取SAL

     SQL 可从数据库删除记录

     SQL 可从数据库删除记录

COALESCE

COALESCE 与 NVL 比较的亮点在于 COALESCE 能够而且处理交替的七个值。

SELECT   last_name,
         COALESCE(commission_pct, salary, 10) comm
FROM     employees
ORDER BY commission_pct;
-- COALESCE(commission_pct, salary, 10)是返回第一个非空的值,若commission_pct为NULL就返回salary,若salary也为NULL,就返回10

在 SQL 语句中选拔IF-THEN-ELSE 逻辑。

行使二种办法:CASE 表明式DECODE 函数

     SQL 可创制新数据库

     SQL 可创建新数据库

DECODE

利用语法

DECODE(col|expression, search1, result1 
                   [, search2, result2,...,]
                   [, default])

运用示例

SELECT last_name, job_id, salary,
       DECODE(job_id, 'IT_PROG',  1.10*salary,
                      'ST_CLERK', 1.15*salary,
                      'SA_REP',   1.20*salary,
              salary)
       REVISED_SALARY
FROM   employees;

     SQL 可在数据库中开创新表

     SQL 可在数据库中开立异表

CASE表达式

利用语法

CASE expr WHEN comparison_expr1 THEN return_expr1
         [WHEN comparison_expr2 THEN return_expr2
          WHEN comparison_exprn THEN return_exprn
          ELSE else_expr]
END

选拔示例

SELECT last_name, job_id, salary,
       CASE job_id WHEN 'IT_PROG'  THEN  1.10*salary
                   WHEN 'ST_CLERK' THEN  1.15*salary
                   WHEN 'SA_REP'   THEN  1.20*salary
       ELSE      salary END     "REVISED_SALARY"
FROM   hr.employees;
--根据JOB_ID的值,对工资做相应的处理

     SQL 可在数据库中创制存款和储蓄进度

     SQL 可在数据库中开创存款和储蓄进度

事务

  • 以率先个 DML 语句的实行作为开端
  • 以上面包车型地铁当中之一作为达成:
    • COMMIT 或 ROLLBACK 语句
    • DDL 或 DCL 语句(自动提交)
    • 用户会话不奇怪甘休系统万分终了

使用COMMITROLLBACK话语,大家得以:

  1. 保险数据完整性。
  2. 多少变动被提交以前预览。
  3. 将逻辑上有关的操作分组。

     SQL 可在数据库中开创视图

     SQL 可在数据库中开创视图

视图

  • 控制数据访问
  • 简化查询
  • 多少独立性
  • 幸免再度访问同一的多寡

     SQL 能够安装表、存款和储蓄进度和视图的权柄

     SQL 能够设置表、存款和储蓄进度和视图的权限

视图创立

语法示例

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
  [(alias[, alias]...)]
 AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];

开创视图

CREATE VIEW     empvu80
 AS SELECT  employee_id, last_name, salary
    FROM    hr.employees
    WHERE   department_id = 80;
--View created.

创办视图时在子查询中给列定义别称

CREATE VIEW     salvu50
 AS SELECT  employee_id ID_NUMBER, last_name NAME,
            salary*12 ANN_SALARY
    FROM    hr.employees
    WHERE   department_id = 50;
--View created.
--在选择视图中的列时应使用别名

 

 

视图修改

选择CREATE O凯雷德 REPLACE VIEW 子句修改视图

CREATE OR REPLACE VIEW empvu80
  (id_number, name, sal, department_id)
AS SELECT  employee_id, first_name || ' ' || last_name, 
           salary, department_id
   FROM    hr.employees
   WHERE   department_id = 80;
--View created.
--CREATE VIEW 子句中各列的别名应和子查询中各列相对应

肆,在极端上常用的指令(基于桌面包车型大巴文件管理)

四,在巅峰上常用的指令(基于桌面的文件管理)

剔除视图

除去视图只是去除视图的定义,并不会删除基表的数据

剔除语法

DROP VIEW view;
--删除视图view

     touch + 文件名.文件类型    //创设一个文书

     touch + 文件名.文件类型    //创设二个文件

积存进程

储存进度,Procedure,是壹组为了成功一定功用的SQL语句集合,经编译后存储在数据库中,用户通过点名存储进度的称谓并交由参数来实施。

仓库储存进程中得以蕴含逻辑控制语句和多少操纵语句,它还不错参数、输出参数、重回单个或五个结实集以及再次来到值。

鉴于存款和储蓄进度在创建刻即在数据库服务器上举办了编写翻译并储存在数据库中,所以存款和储蓄进程运转要比单个的SQL语句块要快。同时由于在调用时只需用提供仓储进度名和必备的参数消息,所以在自然程度上也足以减小网络流量、不难网络负担。

大旨语法

CREATE OR REPLACE PROCEDURE 存储过程名字
(
    参数1 IN NUMBER,
    参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
[执行语句]
END 

利用示例

创建3个表Student,并插入一百万条记下,在奇数的时候插入汤姆记录,偶数的时候插入Lucy记录。使用存款和储蓄进度来落到实处。

Create Table student (
s_id Number(8),
s_name Varchar2(20),
s_sex Char(2)
);
--创建表student

Create Or Replace Procedure p_insert_data
AS
Begin
  For i In 1..1000000 Loop
  If i Mod 2 = 1 Then
    Insert into student Values(i, 'Tom', '男');
  Else
    Insert into student Values(i, 'Lucy', '女');
  End If;

  End Loop;
  Commit;
  dbms_output.put_line('插入数据完成!');
End;
--创建存储过程

调用存储进度

CALL p_insert_data();

     open + 文件名                 //打开 对应的文件恐怕是文件夹 

     open + 文件名                 //打开 对应的公文大概是文件夹 

     ls                                   //列出装有的公文

     ls                                   //列出富有的公文

     clear                              //清屏记录

     clear                              //清屏记录

     mkdir + 目录的名字           //创设目录(文件)

     mkdir + 目录的名字           //成立目录(文件)

     cp + 参数 + 源文件 + 指标文件  + 拷贝  //移动文件

     cp + 参数 + 源文件 + 目的文件  + 拷贝  //移动文件

     rm+ 参数 +文件              //删除文件

     rm+ 参数 +文件              //删除文件

     cd ../                            //再次回到上一级目录

     cd ../                            //重返上一级目录

     ping                              //给当下的网络主机发送3个回应请求

     ping                              //给当下的互连网主机发送二个回应请求

     mail                              //阅读和出殡和埋葬电子邮件

     mail                              //阅读和出殡和埋葬电子邮件

     uname                          //突显操作系统的有关音讯

     uname                          //显示操作系统的关于音信

     who                              //列出当下报到全数的用户

     who                              //列出当下报到全体的用户

     whoami                         //彰显当前正值操作的用户名

     whoami                         //展现当前正值操作的用户名

     df                                
//显示文件的系统的总空间和可用空间     

     df                                
//呈现文件的类别的总空间和可用空间     

     w                                 //展现当前的那几个控制台

     w                                 //突显当前的那么些控制台

     history                          //列出多年来实施过的 几条命令及数码

     history                          //列出多年来履行过的 几条命令及数码

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website