SQL之基础

2019-03-16  本文已影响0人  白璞1024

一、SQL基本操作

1.1、 数据类型

1.2、数据定义语言

1.3、约束条件的使用

  1. 主键约束

    • 创建表格的时候使用primary key
        CREATE TABLE usertable {
            name_id varchar2,
            name varchar2 ,
            value varchar2,
            primary key <name_id>
        }
      
    • 使用ALTER TABLE
        ALTER TABLE table_name ADD CONSTRAINTS constraint_name PRIMARY KEY (column_name);
      
        ALTER TABLE usertable ADD CONSTRAINTS pk_nameid     PRIMARY KEY (name_id);
        --这里的pk_nameid是主键的名称,用来删除的
      
    • 删除主键
      ALTER TABLE table_name DROP CONSTRAINT pk_nameid ;
      
  2. 外键约束

    • 创建表的时候添加

      CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCE table_name (column_name) 
      ON DELETE CASCADE
      
      • constraint_name:外键约束的名字
      • ON DELETE CASCADE设置级联删除,当主键字段被删除的时候,外键对应的字段也同时被删除
    • 修改数据库表的时候添加外键约束

      ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCE table_name (column_name)
      ON DELETE CASCADE;
      
    • 删除外键

          ALTER TABLE table_name DROP CONSTRAINT constraint_name
      
  3. CHECK约束
    检查约束,能够规定每一个列能够输入的值,以保证数据的正确性

    • 创建表的时候添加
          CONSTRAINT constraint_name CHECK(condition);
          
          CREATE TABLE usertable {
              name_id varchar2,
              name varchar2 ,
              age number(2),
              
          }
      
          CONSTRAINT chk_age CHECK(age>=18 and age<66) ;
      
    • 修改表的时候添加check约束
          ADD CONSTRAINT constraint_name CHECK (condition);
      
    • 删除CHECK约束
          ALTER TABLE usertable DROP CONSTRAINT chk_age;
      
  4. UNIQUE 唯一约束

    • 创建表的时候添加,和上边一样
          CONSTRAINT constraint_name UNIQUE(column_name);
          
          CREATE TABLE usertable {
              name_id varchar2,
              name varchar2 ,
              age number(2),
              
          }
      
          CONSTRAINT unq_naemid UNIQUE(name_id) ;
      
    • 修改表的时候添加check约束
          ADD CONSTRAINT constraint_name UNIQUE (column_name);
      
    • 删除UNIQUE约束
          ALTER TABLE usertable DROP CONSTRAINT chk_age;
      
  5. NOT NULL约束

    • ALTER TABLE table_name MODIFY column NOT NULL;

1.4、 数据操纵语言DML和数据查询语言DQL


二、SELECT

2.1 基本语句

  1. 语法

        SELECT [DISTINCT|ALL] select_list FROM table_list 
        [WHERE where_clause]
        [group by group_by_caluse]
        [HAVING coding]
        [ORDER BY  order_by_calcuse] 
    
    • [DISTINCT|ALL]:全部显示还是去重
    • where_clause 查询where条件部分
    • group_by_caluse: GROUP BY 子句部分
    • HAVING coding HAVING子句部分
    • order_by_clause排序
  2. 查询指定的字段
    select id,user,name from user_table

  3. 查询所有的字段
    select * from user_table;

  4. 使用别名替代表中的字段,查出来的字段显示的是汉字
    select id AS 用户编号,user AS 用户 ,name AS 用户姓名 from user_table

  5. 使用表达式操作查询的字段
    查出来的字段根据表达式来展示
    select id ,name,age,address,price || '*'||1.23||'='||price*1.23 as new_price from user_table

    • || 是连接操作符
    • *表示乘号,算最后的结果
  6. 函数操作查询字段
    select SUBSTR(name,1,5) as 截取后的名字 FROM user_table;

  7. 去重复
    SELECT distinct(name) from production

2.2 查询结果排序

2.3 WHERE部分处理

可以使用关系操作符和比较操作符
关系类的:<,>,<=,>=,=,!=,<>
比较类的:IS NULL ,LIKE BETWEEN...AND IN
逻辑类的: AND OR NOT

SELECT * FROM PRODUCT WHERE 
-- != 和<>用法一样
(
   category <> '010030002'
--使用函数
   AND 
   substr(name,1,3)!= '数据库'
)
-- %表示多个字符 _表示单个字符 NOT表示对结果取反
OR
(
   productName NOT LIKE '%数据库_'
   AND 
   price IN ('1','2','3')
   AND
   qualitity IS NULL
)

2.4 GROUP BY HAVING子句

2.5 子查询

2.6 连接查询

上一篇 下一篇

猜你喜欢

热点阅读