首页 > 数据库 >第三章 SQL语句

第三章 SQL语句

时间:2023-02-26 10:56:29浏览次数:34  
标签:语句 INDEX 第三章 删除 索引 Student SQL ALTER

一、SQL的基本概念

  1. SQL是Structured Query Language的简写,意思是结构化查询语言,是一种在数据库管理系统中查询或对数据库的数据进行更改的语言

  2. SQL语言的分类:

    • 数据定义语言DDL(Data Definition Language):定义逻辑结构,包括定义表,索引和视图,删除表、修改表、定义表。

    • 数据查询语言DQL(Data Query Language):对数据库中各种数据对象进行查询。

    • 数据操纵语言DML(Data Manipulation Language):用于改变数据库中的数据,包括插入、删除、修改。

    • 数据控制功能DCL(Data Control Language):对表和视图的授权,完整性规则的描述以及事务开始和结束等控制语句。

  3. 特点:

    • 综合统一(独立完成数期库生命周期中的全部活动,包括定义关系模式、录入数据、建立数规库、直询、更新、维护、数据库重构、数规库安全等)

    • 高度非过程化(用户只需提出“做什么”,而不必指明“怎么做”)

    • 面向集合的操作方式(SQL采用集合操作方式)

    • 以同一种语法结构提供两种使用方式(SQL既是自含式语言,又是嵌入式语言,S0L语句能够藏入到高级语言程序中)

    • 语言简洁,易学易用(SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。)

二、SQL的基本语法

  • 数据类型
数据类型 含义
CHAR(n),CHARACTER(n) 长度为n的定长字符串
VARCHAR(n),CHARACTERVARYING(n) 最大长度为n的变长字符串
CLOB 字符串大对象
BLOB 二进制大对象
INT,INTRAGE 长整数(4字节)
SMALLINT 短整数(2字节)
BIGINT 大整数(8字节)
NUMBERIC(p,d) 定点数,由p位数字(不包括符号、小数点)组成,小数点后面有d位数字
DECIMAL(p,d),DEC(p,d) 同上
REAL 取决于机器精度的单精度浮点数
DOUBLE PRECISION 取决于机器精度的双精度浮点数
FLOAT(n) 可选精度的浮点数,精度至少为n位数字
BOOLEAN 逻辑布尔值
DATE 日期,包含年、月、日,格式为YYYY-MM-DD
TIME 时间,包含一日的时、分、秒,格式为HH:MM:SS
TIMESTAMP 时间戳类型
INTERVAL 时间间隔类型
  • 模式定义与删除

    • 语法:CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;

    • 例子:为用户wang定义一个学生-课程模式S-T
      CREATE SCHEMA "S-T" AUTHORIZATION wang;

    • 模式定义+视图CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句>|<视图定义子句>|<授权定义子句>];

    • 例子:CREATE SCHEMA "Learn" AUTHORIZATION xiubai create table user(id int primary key, age int, name varchar(255));

    • 删除:
      DROP SCHEMA <模式名> <CASCADE|RESTRICT>

    • 删除模式中,其中CASCADE和RESTRICT必须二选一CASCADE(级联)删除模式的同时也把该模式所有的数据库对象删除;RESTRICT(限制),如该模式下有下属对象,比如表视图就拒绝这个删除语句的执行。

  • 表的定义、删除、修改

    • 定义
      create table 表名(
       	字段名 类型 字段约束, 
       	字段名 类型 字段约束, 
      	字段名 类型 字段约束
      );
      例子:
      create table user(
      	name varchar(20),
      	age int,
      	sex char(1)
      );
    
    • 删除
    DROP TABLE <表名> [CASCADE|RESTRICT];
    DROP TABLE Student CASCADE;
    
    • CASCADE,如果表有外键、视图、触发器的话,也会强行删除;RESTRICT恰恰相反。

    • 修改

    ALTER TABLE <表名>
    [ADD [COLUMN] <新列名><数据类型>[完整性约束]]
    [ADD <表级完整性约束>]
    
    • 例子:
      向Student表增加“入学时间”列,其数据类型为日期型
    ALTER TABLE Student ADD S_entrance DATE;
    
    • 例子:
      将年龄的数据类型由字符串改为整数
    ALTER TABLE Student ALTER COLUMN Sage INT;
    
  • 索引的建立、删除与修改

    • 数据量比较大的时候,查询耗时间长,建立索引可以有效减少消耗时间,可以建立在一列或多列上。

    • 建立

    CREATE [UNIQUE][CLUSTER] INDEX <索引名>
    ON <表名>(<列名> [<次序>][,<列名>[<次序>]]···);
    
    • CLUSTER:聚簇索引,物理顺序与索引的逻辑顺序相同
    • UNIQUE:唯一索引
    CREATE UNIQUE INDEX Student ON Student(Sno);
    
    • 删除
    DROP INDEX <索引名>;
    
    • 例子:删除Student表中Stusname索引
    DROP INDEX Stusname;
    
    • 修改
    ALTER INDEX <旧索引名> RENAME TO <新索引名>;
    
    • 例子:将SC表中SCno索引名改为SCSno
    ALTER INDEX SCno RENAME TO SCSno;
    

标签:语句,INDEX,第三章,删除,索引,Student,SQL,ALTER
From: https://www.cnblogs.com/xiubai/p/17156175.html

相关文章

  • MariaDB MaxScale实现mysql8读写分离
    1.MaxScale是干什么的?MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。......
  • MySQL
    MySQLMySQL执行流程客户端向MySQL发起请求(一般使用数据库连接池减少线程的开关)MySQLServer开始执行连接器:控制用户的连接分析器:词法分析,语法分析优化......
  • Golang基于Mysql分布式锁实现集群主备
    背景集群中如果需要主备,可以基于Redis、zk的分布式锁等实现,本文将介绍如何利用Mysql分布式锁进行实现。原理数据库中包含数据字段(此处为Master的主机名)、版本号和上......
  • 7.mysql索引失效
       失效的七字口诀:模型数空运最快模:模糊查询以%开始索引失效;型:数据类型转换函数:函数的索引空:索引列为空不走索引,运:对索引列进行加减乘除会失效最:不按聚合索......
  • pymysql操作
    1、首相导入模块pymysql importpymysql2、创建连接 conn=pymysql.connect( host='远程数据库IP地址', port=远程数据库端口, user='数据库账号', password......
  • SQL语句中 left join 后用 on 还是 where,区别大了!
    前天写SQL时本想通过AleftBjoinonand后面的条件来使查出的两条记录变成一条,奈何发现还是有两条。后来发现joinonand不会过滤结果记录条数,只会根据and后的条件......
  • 用Python画数据分析第三章的图
    importpandasaspdcatering_sale="D:\数据分析\catering_sale.xls"data=pd.read_excel(catering_sale,index_col=u'日期')print(data.describe())importmatplot......
  • python数据分析与挖掘 第三章 数据探索
                                         ......
  • 为什么在连接mysql时,设置 SetConnMaxIdleTime 没有作用
    目录测试1go1.15.15go1.17.12测试2go1.15.15go1.17.12参考在使用golang连接mysql时,为了节省连接资源,在连接使用过后,希望在指定长度时间不再使用后,自动关闭连接。这......
  • mysql描述关键字
    SHOWCOLUMNS要求给出一个表名(这个例子中的FROMtab_1),它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息。   另外可以......