zoukankan      html  css  js  c++  java
  • 数据库系统原理之SQL(三)

    数据库系统原理之SQL(三)


    1. SQL的组成

    1. 数据查询
    2. 数据定义
    3. 数据操作
    4. 数据控制
    

    2. 数据定义语言

    1. CREATE创建数据库或数据库对象

      1. 创建数据库

        ~~~
        CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARSET SET utf8 [DEFAULT] COLLATE utf8_general_ci
        ~~~
        
      2. 创建表

         ~~~
         #创建表并设置主键和索引
         CREATE TABLE table_name (id int not null AUTO_INCREMENT,name char(50) not null default "",age int null,PRIMARY KEY(id),INDEX index_age(age));
         ~~~
        
      3. 查看数据库

         ~~~
         #可以根据正则匹配或者where从句来获取想看到的数据库
         SHOW {DATABASES | SCHEMAS} [LIKE’pattern’ | WHERE expr]
        
        
        
    2. ALTER对数据库或数据库对象进行修改

      1. 修改数据库

        ALTER DATABASE db_name DEFAULT CHARACTER SET gb2312 DEFAULT COLLATE gb2312_chinese_ci;
        
      2. 更新表

        1. 在表中添加一个字段,并在原表的sex字段之后

           ALTER TABLE table_name 
             ADD COLUMN city char(50) not null default "" after sex;
          
        2. 修改表中的列名或数据类型

        修改表table_name中的字段c_name为name,并设置字段类型

        ALTER TABLE table_name
        CHANGE COLUMN c_name name char(50) not null default "";
        ~~~

        1. 修改或删除指定列的默认值

          ALTER TABLE table_name
            ALTER COLUMN [drop default | set default "" ] 
          
        2. 只修改指定列的数据类型,不会干涉它的列名

             #first 将此列设为表的第一列
             ALTER TABLE table_name
            MODIFY COLUMN name char(25) not null first;
          
        3. 删除表中多余的字段

          ALTER TABLE table_name
            DROP COLUMN name;
          
        4. 为表重新命名

          ALTER TABLE table_name
            RENAME TO back_table_name;
          RENAME TABLE table_name TO back_name;
          
    3. DROP删除数据库或数据库对象

      1. 删除数据库

        DROP{DATABASE|SCHEMA}[IF EXISTS]db_name
        
      2. 删除表

        DROP TABLE [IF EXISTS] table_name [,table_name2]
        
    4. 查看表

      SHOW [FULL] COLUMNS {FROM | IN} tbl_name[{FROM | IN} db_name]
      	[LIKE’pattern’ | WHERE expr]
      {DESCRIBE | DESC} tbl_name [col_name | wild]
      

    3. 数据操纵语言

    1. SELECT从表中或视图中检索数据(查)
    2. INSERT将数据插入插入到表或视图中(增)
    3. UPDATE修改表或视图中的数据(改)
    4. DELETE删除表或视图中的数据(删)

    4. 数据控制语言

    1. GRANT授予权限
    2. REVOKE收回权限

    5. 索引定义

    ​ 索引是提高数据文件访问效率的有效方法

    1. 弊端:
    • 索引是以文件的形式存储的,如果有大量的索引,索引文件可能比数据文件更快达到最大的文件尺寸;
    • 索引在提高查询速度的同时,会降低更新表的速度。
    1. 索引类型

      1. 普通索引(INDEX或KEY)
      2. 唯一性索引(UNIQUE)
      3. 主键(PRIMARY KEY)
    2. 创建索引(CREATE INDEX不能创建主键索引)

      #在table_name表上的column字段上创建唯一索引index_name,可设置长度和升序降序
      CREATE [UNIQUE] INDEX index_name ON table_name (column [(length)][ASC | DESC])
      #为表table_name添加索引index_name
      ALTER TABLE table_name ADD INDEX index_name(name);
      
    3. 查看索引

      SHOW {INDEX | INDEXES | KEYS} {FROM | IN} table_name [{FROM | IN} db_name] [WHERE expr]
      
    4. 删除索引

      DROP INDEX index_name ON table_name
      ALTER TABLE table_name DROP PRIMARY KEY,DROP INDEX index_name;
      

    6. MySQL内置函数

    函数 描述 示例
    CURDATE() 返回当前日期 SELECT CURDATE()---- 2018-09-19
    ABS(X) 返回X的绝对值 select ABS(-5) ---返回5
    AVG(expression) 返回表达式的平均值 返回一个班年龄的平均值---SELECT AVG(age) from class
    COUNT(expression) 返回记录数量 返回A表中的数据量---SELECT COUNT(*) from A
    MAX(expression) 返回字段中的最大值 返回一个班中最大的年龄---SELECT MAX(age) from class
    MIN(expression) 返回字段中的最小值 返回一个班中最小的年龄---SELECT MIN(age) from class
    SUM(expression) 返回指定字段的总和 返回一个班的分数总和---SELECT SUM(fraction) from class
  • 相关阅读:
    mysql 数据库优化
    eclipse 自动 注释
    rpc 小例子
    几种基于HTTP协议的RPC性能比较
    spring 两个 properties
    xxx.properties获取方法
    Mysql 操作
    Java对象初始化详解
    Tomcat自动启动脚本
    数学工具 在 当代 和 未来 的 进化革命 的 可能性
  • 原文地址:https://www.cnblogs.com/SunArmy/p/11386547.html
Copyright © 2011-2022 走看看