SQL基础

作者: 上炼致知 | 来源:发表于2020-03-02 19:11 被阅读0次

    一、数据库和SQL

    用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS

    和Excel一样,采用由行和列组成的二维表管理数据,这种类型的DBMS称为关系数据库管理系统(Relational Database Management System,RDBMS

    使用RDBMS时,最常见的系统结构 v个美女你不不不不不不不不不客户端/服务器类型(C/S类型)

    使用RDBMS时的系统结构.jpeg
    服务器指的是用来接收其他程序发出的请求,并对该请求进行相应处理的程序(软件),或是安装了此类程序的设备(计算机)。

    RDBMS也是一种服务器,能够从保存在硬盘上的数据库中读取数据并返回;

    与之相对,向服务器发出请求的程序(软件),或者安装了该程序的设备(计算机)称为客户端。多个客户端可以同时对同一个数据库进行读写操作。

    用来管理数据的二维表在关系数据库中简称为。一个数据库中可以存储多个表。

    数据库和表的关系.jpeg
    根据SQL语句的内容返回的数据同样必须是二伟标的形式,这也是关系数据库的特征之一。表的称为字段,它代表了保存在表中的数据项目。定义为数字的列只能输入数字,定义为日期的列只能输入日期。

    与之相对,表的,称为记录

    SQL语句及其种类

    SQL用关键字、表名、列名等组合而成的一条语句来描述操作的内容。

    SQL语句可以分为三类:

    DDL(Data Definition Language,数据定义语言)

    用来创建或者删除存储数据用的数据库,以及数据库中的表对象等对象。

    CREATE:创建数据库和表等对象;

    DROP:删除数据库和表等对象;

    ALTER:修改数据库和表等对象的结构;

    DML(Data Manipulation Language,数据操纵语言)

    用来查询或者变更表中的记录。

    SELECT:查询表中的数据;

    INSERT:向表中插入新数据;

    UPDATE:更新表中的数据;

    DELETE:删除表中的数据;

    DCL(Data Control Language,数据控制语言)

    用来确认或取消对数据库中的数据进行的变更。此外,还可以对RDBMS的用户是否有权限操作数据库中的对象进行设定。

    COMMIT:确认对数据库中的数据进行的变更;

    ROLLBACK:取消对数据库中的数据进行的变更;

    GRANT:赋予用户操作的权限;

    REVOKE:取消用户操作的权限;

    SQL基本书写规则

    SQL语句以分号结尾

    SQL不区分关键字的大小写,表名和列名也是如此;但是插入到表中的数据是区分大小写

    可以根据个人喜好选择大写还是小写(或者混杂),但为了理解起来更加容易,可以用以下规则来书写SQL:

    • 关键字大写
    • 表名的首字母大写
    • 其余(列名等)小写

    命名规则:只能使用半角英文字母数字下划线作为数据库、表和列的名称,名称必须以半角英文字母开头;且,同一个数据库中不能创建两个相同名称的表;

    在SQL语句中直接书写的字符串、日期或者数字称为常数;常数的书写方式如下所示:

    • 字符串:使用单引号,如:'abc'
    • 日期:同样需要使用单引号将其扩起来,如'2020-03-16'
    • 数字:SQL书写数字不需要使用符号标识直接写,如1000

    表的创建

    表的最上面一行,是数据的项目名;真正的数据是从第二行开始;

    创建表之前先要创建用来存储表的数据库。创建数据库:CREATE DATABASE语句

    -- 创建名为shop的数据库
    CREATE DTABASE shop;
    

    创建表:CREATE TABLE语句

    -- 创建商品表Product
    -- 列名右边的INTEGER和CHAR等关键字,是用来声明该列的数据类型的
    CREATE TABLE Product
    (product_id CHAR(4) NOT NULL,
        product_name    VARCHAR(100)    NOT NULL,
        product_type    VARCHAR(32) NOT NULL,
        sale_price  INTEGER ,
        purchase_price  INTEGER ,
        regist_price    INTEGER ,
        PRIMARY_KEY (product_id));
    
    • INTEGER型:指定存储整数的数据类型;
    • CHAR:指定存储字符串的列的数据类型,在括号中指定该列可以存储的字符串的最大长度(以定长字符串的形式);
    • VARCHAR:也是指定存储字符串的列的数据类型,也可以通过括号内的数字来制定字符串的最大长度,但是以可变长字符串的形式来保存字符串;
    • VARCHAR2: Oracle中使用VARCHAR2类型;

    (定长字符串在字符数未达到最大长度时会用半角空格补足,但可变长字符串不同,即使字符数未达到最大长度,也不会用补足)

    约束:是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能;如NUT NULL表示必输;

    主键约束

    -- 给product_id列设置主键约束
    PRIMARY KEY (product_id)
    

    所谓键,就是在指定特定数据时使用的列的组合;主键可以指定特定一行的数据。

    表的删除和更新

    表的删除(DROP TABLE)
    -- 删除Product表
    DROP TABLE Product
    

    删除的表是无法恢复的;

    表定义的更新(ALTER TABLE)
    • 添加列
    -- 在Product表中添加一列product_name_pinyin
    -- 1.MySQL、DB2、PstgreSQL
    ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(10);
    -- 2.Oracle,Oracle可以添加多列,括号括起来
    ALTER TABLE Product ADD (product_name_pinyin VARCHAR2(100));
    -- 3.SQL Server
    ALTER TABLE Product ADD product_name_pinyin VARCHAR(100);
    
    • 删除列
    -- 删除Product表中的product_name_pinyin列
    -- 1.MySQL、SQL Server、DB2、PstgreSQL
    ALTER TABLE Product DROP COLUMN product_name_pinyin;
    -- 2.Oracle,Oracle删除多列的时候可以用括号括起来
    ALTER TABLE Product DROP (product_name_pinyin);
    

    ALTER TABLE语句和DROP TABLE语句一样,执行之后无法恢复;

    相关文章

      网友评论

          本文标题:SQL基础

          本文链接:https://www.haomeiwen.com/subject/koebkhtx.html