SQL概念及数据库表的基本操作

1,183 阅读4分钟

这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

介绍SQL之前,先来了解一下关于数据库的一些概念。

什么是数据库

  • 数据库(Database,DB):是一个有组织的、统一管理的数据集合。简单来说,就是用来存储数据的地方。
  • 数据库管理系统(Database Management System,DBMS):用来操纵和管理数据库的计算机软件,例如MySQL、Oracle、SqlServer等,都是数据库管理系统。

一个数据库系统中可以包含很多数据库,每个数据库中又包含很多表,表的一列称为一个字段,一行称为一条记录。 例如,下面是一个名为persons的表:

idnameagegenderaddress
1Alice24femaleBeijing
2Bob25maleShanghai
3Candy26femaleBeijing

表包含三条记录(每一条对应一个人)和五个列(id、姓名、年龄、性别和地址)。

掌握这些基础概念后,再来看下SQL

SQL 概要

什么是SQL

SQL全称Structured Query Language,表示结构化查询语言,是一种专门与数据库交互的语言,规定了各种关键字、语法等。

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的关键字不区分大小写,但是表名、字段名、数据等是区分大小写的
  • 字符串或者日期等类型需用单引号括起来,如'xyz'、'2021-10-29'
  • 单词需要使用空格或者换行符进行分隔
  • 数据库、表、字段的名称可以使用英文、数字以及下划线,一般情况下数据库名、表名和列名等小写

数据类型

只列常用:

类型描述
int、bigint、tinyint等整数数字类型
char定长字符串类型
varchar可变长度字符串类型
text文本类型
datetime日期和时间的组合类型,格式:YYYY-MM-DD HH:MM:SS
······

数据库的基本操作

数据库相关

  • 创建数据库
CREATE DATABASE <数据库名>;
  • 删除数据库
DROP DATABASE <数据库名>;
  • 列出数据库
SHOW DATABASES;
  • 切换数据库
USE <数据库名>;

数据表相关

  • 创建表
CREATE TABLE <表名> (
    <列名1> <类型> <约束>,
    <列名2> <类型> <约束>,
        ...
        ...
        ...
    <表的约束1>,
    <表的约束2>,
    ....
);
  • 删除表
DROP TABLE <表名>;
  • 更新表

    • 新增列

      ALTER TABLE <表名> ADD COLUMN <列名> <类型> <约束>;
      
    • 删除列

      ALTER TABLE <表名> DROP COLUMN <列名>;
      
    • 修改列

      ALTER TABLE <表名> MODIFY COLUMN <列名> <类型> <约束>;
      
  • 插入数据

INSERT INTO <表名> VALUES (值1, 值2,....);

指定所要插入数据的列:

INSERT INTO <表名>(列1, 列2,...) VALUES (值1, 值2,....);

示例

  • 创建数据库
CREATE DATABASE test;
  • 显示数据库
SHOW DATABASES;
  • 切换数据库
use test;
  • 创建数据表
CREATE TABLE `persons` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL DEFAULT '' COMMENT '姓名',
  `age` int(11) COMMENT '年龄',
  `gender` varchar(11) NOT NULL DEFAULT 'male' COMMENT '性别',
  `address` varchar(64) COMMENT '地址',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人员信息表';
  • 新增列
ALTER TABLE persons ADD COLUMN mobile varchar(64) COMMENT '手机号';
  • 删除列
ALTER TABLE persons DROP COLUMN mobile;
  • 修改列
ALTER TABLE persons MODIFY COLUMN age varchar(11) COMMENT '年龄';
  • 插入数据
INSERT INTO persons VALUES (1,'Alice',24,'female','Beijing','2021-10-29 12:00:00');
INSERT INTO persons(name,age,gender,address) VALUES ('Bob',25,'male','Shanghai');

原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~

最后,感谢女朋友在工作和生活中的包容、理解与支持 !