SQL基础之概要介绍


本文主要是阅读《SQL 基础教程》这本书总结而来,有需求的话可以阅读原著。

SQL基础之概要介绍


1. 数据库是什么

数据库管理系统,简称为DBMS(Database Management System),是用来存储数据的管理系统。

1.1 DBMS 的重要性

  • 无法多人共享数据
  • 无法提供操作大量数据所需的格式
  • 实现读取自动化需要编程技术能力
  • 无法应对突发事故

1.2 DBMS 的种类

  • 层次性数据库
    • 最古老的数据库之一,因为突出的缺点,所以很少使用了
  • 关系型数据库
    • 采用行列二维表结构来管理数据库,类似Excel的结构,使用专用的SQL语言对数据进行控制。
  • 关系数据库管理系统的常见种类
    • Oracle ==> 甲骨文
    • SQL Servce ==> 微软
    • DB2 ==> IBM
    • PostgreSQL ==> 开源
    • MySQL ==> 开源
  • 面向对象的数据库
    • XML数据库
  • 键值存储系统
    • DB2
    • Redis
    • MongoDB

2. SQL 概要

2.1 基础要点

  • 关系型数据库采用C/S架构
  • SQL 数据库返回的数据必须是二维表的形式
  • 关系数据库必须以为单位进行数据读取
  • 在一个单元格中只能输入一个数据

2.2 SQL 语句及其种类

  • DDL(数据定义语言)
    • create ==> 创建数据库或者表等对象
    • drop ==> 删除数据库或者表等对象
    • alter ==> 修改数据库或者表等对象的结构
  • DML(数据操作语言)
    • select ==> 查询表中数据
    • insert ==> 向表中插入数据
    • update ==> 更新表中数据
    • delete ==> 删除表中数据
  • DCL(数据控制语言)
    • commit ==> 决定对数据库中的数据进行变更
    • rollback ==> 取消对数据库中的数据进行变更
    • grant ==> 赋予用户操作权限
    • revoke ==> 取消用户的操作权限

2.3 SQL 的基本书写规则

  • SQL 语句要以****结尾
  • 关键字不区分大小写,但是表中数据区分大小写
  • 关键字大写
  • 表名的首字母大写
  • 列明等小写
  • 常数的书写方式是固定的
  • 遇到字符串、日期等类型需要用到''
  • 单词间需要使用空格分割
  • 命名规则
  • 数据库和表的名称可以使用英文、数据以及下划线
  • 名称必须以英文作为开头
  • 名称不能重复

2.4 数据类型

  • integer
    • 数字型,但是不能存放小数
  • char
    • 定长字符串类型,指定最大长度,不足使用空格填充
  • varchar
    • 可变长度字符串类型,指定最大长度,但是不足不填充
  • data
    • 存储日期,年/月/日

2.5 数据库的基本操作

  • 数据库创建
CREATE DATABASE <数据库名称>;
  • 表的创建
CREATE TABLE <表名> {
    <列表1> <数据类型> <该列所需约束>,
    <列表2> <数据类型> <该列所需约束>,
        ...
        ...
        ...
    <该表的约束1>,
    <该表的约束2>,
    ....
};
  • 删除数据库
DROP DATABASE <数据库名称>;
  • 表的删除
DROP TABLE <表名>;
  • 表中列添加
ALTER TABLE <表名> ADD COLUME <列的定义>, <列的定义>,...;
  • 表中列删除
ALTER TABLE <表名> DROP COLUME <列的定义>, <列的定义>,...;
  • 表数据插入
INSORT INTO <表名> {
    <对于字段1> <对于字段2> <对于字段3><对于字段4> <对于字段5> <对于字段6>...
        ...
        ...
};

3. 实战演示

  • 创建数据库
mysql> create database shop;
Query OK, 1 row affected (0.00 sec)
  • 显示数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| shop               |
| test               |
+--------------------+
4 rows in set (0.00 sec)
  • 切换数据库
mysql> use shop;
Database changed
  • 约束设置
# not null和primary key为约束设置
mysql> create table Shohin (
    shohin_id char(4) not null,
    shohin_mei varchar(100) not null,
    shohin_bunrui varchar(32) not null,
    hanbai_tanka integer,
    shiire_ranka integer,
    torokubi date,
    primary key (shohin_id));
Query OK, 0 rows affected (0.00 sec)
  • 插入数据
mysql> insert into Shopin valuse ('0001', 'T恤', '衣服', 1000, 500, '2016-05-20');
Query OK, 1 row affected (0.00 sec)
  • 查询数据
mysql> select * from Shohin;
+-----------+------------+---------------+--------------+--------------+------------+
| shohin_id | shohin_mei | shohin_bunrui | hanbai_tanka | shiire_ranka | torokubi   |
+-----------+------------+---------------+--------------+--------------+------------+
| 0001      | TT         | yifu          |         1000 |          500 | 2016-05-20 |
| 0002      | Ta         | hhh           |           10 |           10 | 2016-05-20 |
+-----------+------------+---------------+--------------+--------------+------------+
2 rows in set (0.00 sec)

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录