zoukankan      html  css  js  c++  java
  • 数据库 基本操作

    1. 数据定义语句
     - 模式 
       · 创建: CREATE SCHEMA
       · 删除: DROP SCHEMA
     - 表
       · 创建: CREATE TABLE
       · 删除: DROP TABLE
       · 修改: ALTER TABLE
     - 视图
       · 创建: CREATE VIEW
       · 删除: DROP VIEW
     - 索引
       · 索引: CREATE INDEX
       · 删除: DROP INDEX
       · 修改: ALTER INDEX

    2.模式的定义与删除
     - 模式定义: CREATE SCHEMA <模式名> AUTHORIZATION <用户名>; //为用户定义一个XX模式
     
     - 在创建模式时,创建基本表、视图,定义授权
         CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句>|<视图定义子句>|<授权定义子句>]
     
     - 删除模式: DROP SCHEMA <模式名> <CASECADE|RESTRICT>;
       · <CASECADE|RESTRICT> 二者必选其一
         CASECADE:级联 删除模式时,把该模式中的所有数据库对象全部删除
         RESTRICT:限制 如果该模式已定义下属的数据库对象则拒绝删除

    3.基本表的定义、删除、修改
     - 定义:CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束条件] 
                                 [,<列名> <数据类型> [列级完整性约束条件] ] 
                                 ... [,<表级完整性约束条件>]);

     - 修改基本表 ALTER TABLE <表名> [ADD [COLUMN] <新列名> <数据类型> [完整性约束]]
                                     [ADD <表级完整性约束>]
                                     [DROP [COLUMN] <列名> [CASECADE|RESTRICT] ]
                                     [DROP CONSTRAINT <完整性约束名> [CASECADE|RESTRICT] ]
                                     [ALTER COLUMN <列名> <数据类型> ] ;
      · 删除时使用 STRICT 如果该列被其他对象引用 则拒绝删除该列
      · DROP CONSTRAINT 子句用于删除指定的完整性约束条件 
      · ALTER COLUMN 修改原有的列定义

     - 删除基本表 DROP TABLE <表名> [CASECADE|RESTRICT];

    4.索引的建立、修改
     - 建立索引 CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名> [次序] [,<列名> [次序]]...);
     - 修改索引 ALTER INDEX <就索引名> RENAME TO <新索引名>
     - 删除索引名 DROP INDEX <索引名>;

    5. 数据查询
     - 一般格式 SELECT [ALL | DISTINCT] <目标列表达式> [,<目标列表达式>] ...
                FROM <表名或视图名> [,<表名或者视图名>...] | (<SELECT语句>) [AS] <别名>
                [WHERE <条件表达式>]
                [GROUP BY <列名 1> [HAVING <条件表达式>]]
                [ORDER BY <列名 2> [ASC|DESC]]
      · DISTINCT 去掉重复元素
      · ORDER BY 排序:ASC 升序、 DESC 降序 
      · GROUP BY 将查询结果按一列或者多列的值分组,值相等的为一组

    6. 常用查询条件
     - 确定范围: BETWEEN AND, NOT BETWEEN AND
     - 确定集合: IN, NOT IN
     - 字符匹配: LIKE, NOT LIKE
       · 通配符 % _ 
         % : 任意长度的字符串 例如:a%b 以a开头b结尾
         _ : 任意字符串 
     - 空值: IS NULL, IS NOT NULL
     - 逻辑运算: AND, OR, NOT

    7. 聚集函数
     - 统计元组个数 COUNT(*)
     - 统计列中值个数 COUNT([DISTINCT|ALL] <列名>)
     - 统计列值总和 SUM([DISTINCT|ALL] <列名>)
     - 平均值 AVG([DISTINCT|ALL] <列名>)
     - 最大值 MAX([DISTINCT|ALL] <列名>)
     - 最小值 MIN([DISTINCT|ALL] <列名>)

    8. 查询例子
    - 查询名字中第二个字为阳的学生的名字和学号
      SELECT Sname,Sno FROM Student WHERE Sname LIKE '_阳%'
    - 查询计算机科学系年龄在20岁以下的学生姓名
      SELECT Sname FROM Student WHERE Sdept='CS' AND Sage<20;
    - 查询一号课程学生平均成绩
      SELECT AVG(Grade) FROM CS WHERE Cno='1';
    - 查询平均成绩大于等于90分的学生学号和平均成绩
      SELECT Sno,AVE(Grade) FROM CS GROUP BY Sno HAVING AVG(Grade)>=90;

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 小计算器
    事实证明,应用市场是个流量的生意(产品能力并不足以形成护城河)
    迅雷创始人程浩:创业公司5招做好内部创新(组建小型敢死队:一共3个人,一个产品经理,两个研发;腾讯做不做这个项目是一个伪命题;让用户来验证,而不是相反 good)
    核心思想:创业者要做正确的决定,而非容易的决定(享受创业路上的孤单,你必须要有将自己关在小屋子里独自做重大且艰难决定的勇气)
    Delphi能通过SSH登录Linux,连接MYSQL取数么?像Navicat一样
    Qt5.7中使用MySQL Driver(需要把libmysql.dll文件拷贝到Qt的bin目录中。或者自己编译的时候,链接静态库)
    c++对象内存布局的理解
    观察者模式
    本地事务和分布式事务工作
    弱引用
  • 原文地址:https://www.cnblogs.com/Arvin66-lyh/p/10815775.html
Copyright © 2011-2022 走看看