虚拟主机域名注册-常见问题数据库问题 → 数据库问题

SQL介绍及简单操作

  一、SQL 概述

  1.1 什么是 SQL?

  一种专门用来与关系型数据库交互的编程语言。

  支持数据定义、数据操纵、数据查询、数据控制等功能。

  虽有关键字标准(ISO/IEC 9075),但不同数据库系统(MySQL、PostgreSQL、Oracle、SQL Server 等)存在方言差异。

  1.2 SQL 的主要分类

分类英文全称作用常用命令
数据定义语言(DDL)Data Definition Language定义/修改数据库结构CREATE, ALTER, DROP, TRUNCATE
数据操纵语言(DML)Data Manipulation Language操作表数据(增删改)INSERT, UPDATE, DELETE, MERGE
数据查询语言(DQL)Data Query Language查询表数据SELECT
数据控制语言(DCL)Data Control Language权限管理GRANT, REVOKE
事务控制语言(TCL)Transaction Control Language事务管理BEGIN, COMMIT, ROLLBACK, SAVEPOINT

  二、数据库基础概念

  数据库(Database):存储数据的容器,通常包含多张表。

  表(Table):结构化数据的集合,由行和列组成。

  列(Column):字段,定义数据的类型(INT、VARCHAR、DATE 等)。

  行(Row):记录,表中一条完整的数据。

  主键(Primary Key):唯一标识一行数据的列或组合列,非空且唯一。

  外键(Foreign Key):指向另一张表主键的列,用于建立表间关联。

  索引(Index):加速查询的数据结构,类似书的目录。

  三、数据定义语言(DDL)

  DDL 用于创建、修改和删除数据库对象,执行后自动提交事务(多数数据库)。

  3.1 数据库操作

  -- 创建数据库

  CREATE DATABASE school CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  -- 修改数据库字符集

  ALTER DATABASE school CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  -- 删除数据库(谨慎)

  DROP DATABASE school;

  -- 使用数据库

  USE school;

  3.2 表操作

  创建表

  CREATE TABLE student (

  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学号',

  name VARCHAR(50) NOT NULL COMMENT '姓名',

  gender ENUM('男','女') DEFAULT '男' COMMENT '性别',

  birthday DATE COMMENT '出生日期',

  class_id INT COMMENT '班级ID',

  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

  FOREIGN KEY (class_id) REFERENCES class(id)

  );

  修改表结构

  -- 添加列

  ALTER TABLE student ADD COLUMN phone VARCHAR(20) AFTER name;

  -- 修改列数据类型

  ALTER TABLE student MODIFY COLUMN phone VARCHAR(15);

  -- 修改列名

  ALTER TABLE student CHANGE COLUMN phone mobile VARCHAR(15);

  -- 删除列

  ALTER TABLE student DROP COLUMN mobile;

  -- 重命名表

  ALTER TABLE student RENAME TO student_info;

  删除表

  -- 删除表结构和数据

  DROP TABLE IF EXISTS student;

  -- 清空表数据(保留结构),不可回滚(部分数据库可)

  TRUNCATE TABLE student;

  四、数据操纵语言(DML)

  DML 用于增、删、改表中的数据,通常需要显式或隐式提交事务。

  4.1 插入数据

  -- 单行插入

  INSERT INTO student (name, gender, birthday, class_id)

  VALUES ('张三', '男', '2005-03-12', 1);

  -- 多行插入

  INSERT INTO student (name, gender, birthday, class_id) VALUES

  ('李四', '女', '200




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:Linux从入门到精通
下一篇:宝塔面板入门基础安装教程
  >> 相关文章
没有相关文章。