当前位置:Gxlcms > 数据库问题 > SQL基础篇1(MICK)

SQL基础篇1(MICK)

时间:2021-07-01 10:21:17 帮助过:37人阅读

数据库和SQL

  1. <code>C:\PostgreSQL\9.5\bin\psql.exe -U postgres -d shop</code>

数据库的基本概念

数据库(DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合
数据库管理系统(DBMS):用来管理数据库的计算机系统
DBMS的重要性:(文本文件和电子表格无法做到)

  • 无法多人共享数据
  • 无法提供操作大量数据所需的格式
  • 实现读写自动化需要编程能力
  • 无法应对突发事故
    DBMS的种类
  • 层次数据库:Hierarchical DB
  • 关系数据库:Relational DB 使用SQL(Structured Query Language)查询
    • 关系数据库管理系统:Relational Database Management System
      • Oracle
      • SQL Server
      • DB2
      • Postgresql
      • MySQL
  • 面向对象数据库:Object Oriented DB
  • XML数据库:XMLDB
  • 键值存储系统:Key_Value Store

    数据库的结构

    RDBMS的常见系统结构
    客户端、服务器,客户端通过SQL调用数据
    表的结构
  • 表:由行列组成的二维表
  • 根据SQL语句的内容返回的数据必须是二维表的形式
  • 字段、记录 关系数据库以行为单位进行数据读写
  • 列(垂直方向)和行(水平方向)交叉的方格称为单元格,一个单元格中只能输入一个数据

    SQL概要

  • SQL是用来操作关系数据库的语言
  • SQL语句的种类
    • DDL(Data Definition Language) 用来创建或删除存储数据用的数据库以及数据库中的表等对象
      • CREATE:创建数据库和数据表
      • DROP:删除数据库和数据表
      • ALTER:修改数据库和表的结构
    • DML(Data Manipulation Language) 用来查询或者变更表中的记录
      • SELECT:查询表中的数据
      • INSERT:向表中插入新数据
      • UPDATE:更新表中的数据
      • DELETE:删除表中的数据
    • DCL(Data Control Language) 用来确认或者取消对数据库中的数据进行的变更
      • COMMIT:确认对数据库中的数据进行的变更
      • ROLLBACK:取消对数据库中的数据进行的变更
      • GRANT:赋予用户操作权限
      • REVOKE:取消用户的操作权限
  • SQL的基本书写规则
    • SQL语句要以分号(;)结尾 一个SQL语句可以描述一个数据库操作
    • SQL语句不区分大小写 为便于理解 统一规则
      • 关键字大写
      • 表名的首字母大写
      • 列名小写
      • 插入到数据表中的数据是区分大小写的,在单元格里Computer、COMPUTER、computer是不一样的
    • 常数的书写方式是固定的
      • 日期需要单引号括起来 建议统一‘2010-01-26‘格式
      • 数字常数无需加注单引号
      • 单词需要用半角空格或者换行来分隔

        表的创建

  • 数据库的创建
  1. <code>CREATE DATABASE <数据库名>;
  2. CREATE DATABASE shop;</code>
  • 表的创建
  1. <code>CREATE TABLE <表名>
  2. (<列名1><数据类型><该列的约束>
  3. <列名2><数据类型><该列的约束>
  4. <列名3><数据类型><该列的约束>
  5. ...
  6. <该表的约束1><该表的约束2>);
  7. CREATE TABLE Product
  8. (product_id CHAR(4) NOT NULL,
  9. product_name VARCHAR(10) NOT NULL,
  10. product_type VARCHAR(32) NOT NULL,
  11. sale_price INTEGER ,
  12. purchase_price INTEGER ,
  13. regist_date DATE ,
  14. PRIMARY KEY (product_id)
  15. ); --Postgresql通过 \dt来查看数据库里的表 \dt <表名>来查看表的定义</code>
  • 命名规则
    • 只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称
    • 名称必须以半角英文字母开头
    • 同一个数据库中不能创建两个相同名称的表
  • 数据类型
    • 所有的列都必须指定数据类型
      数据类型表示数据的种类,包括数字型、字符型和日期型 - INTEGER 用来存储整数,不能存储小数
      • CHAR 用来指定存储字符串 定长字符串 区分大小写
      • VARCHAR 用来指定存储字符串 可变字符串 区分大小写 -- Oracle中使用VARCHAR2
      • DATE 用来指定存储日期
  • 约束的设置:除了数据类型外,对列中存储的数据进行限制或追加条件的功能
    • NOT NULL 非空
    • PRIMARY KEY 主键(非空不重复)

      表的删除和更新

  • 表的删除
  1. <code> DROP TABLE <表名>;
  2. DROP TABLE <Product>; --无法恢复 </code>
  • 表的更新
  1. 增加列
  1. <code>ALTER TABLE <表名> ADD COLUMN <列名>;
  2. -- Oracle和MS SQL 可以不写COLUMN
  3. -- Oracle添加多列:ALTER TABLE <表名> ADD (<列名1>,<列名2>,...);</code>
  1. 删除列
  1. <code>ALTER TABLE <表名> DROP COLUMN <列名>;
  2. -- Oracle不用写COLUMN
  3. -- Oracle删除多列:ALTER TABLE <表名> DROP (<列名1>,<列名2>,...); --无法恢复</code>
  1. 向表中插入数据
  1. <code>-- DML:插入数据
  2. BEGIN TRANSACTION;
  3. INSERT INTO Product VALUES ('0001','T恤衫','衣服',1000,500,'2009-09-20');
  4. INSERT INTO Product VALUES ('0002','打孔器','办公用品',500,320,'2009-09-11');
  5. INSERT INTO Product VALUES ('0003','运动T恤','衣服',4000,2800,NULL);
  6. INSERT INTO Product VALUES ('0004','菜刀','厨房用具',3000,2800,'2009-09-20');
  7. INSERT INTO Product VALUES ('0005','高压锅','厨房用具',6800,5000,'2009-01-15');
  8. INSERT INTO Product VALUES ('0006','叉子','厨房用具',500,NULL,'2009-09-20');
  9. INSERT INTO Product VALUES ('0007','擦菜板','厨房用具',880,790,'2008-04-28');
  10. INSERT INTO Product VALUES ('0008','圆珠笔','办公用品',100,NULL,'2009-11-11');
  11. COMMIT;
  12. -- MySQL改为:START TRANSACTION -- Oracle和DB2中不用BEGIN TRANSACTION</code>
  1. 表名的修改
  1. <code>ALTER TABLE Poduct RENAME TO Product; -- Oracle/PostgreSQL
  2. RENAME TABLE Poduct TO Product; -- DB2:
  3. sp_rename 'Poduct','Product'; -- SQL SEVER:
  4. RENAME TABLE Poduct TO Product; --MySQL:</code>

SQL基础篇1(MICK)

标签:数据库名   组成   evo   ble   用户操作   系统   oracl   postgres   control   

人气教程排行