数据库系统原理之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 "";
        
      3. 修改或删除指定列的默认值

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

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

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

        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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值