欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > MySQL数据库(3)-SQL基础语言学习

MySQL数据库(3)-SQL基础语言学习

2025/9/18 16:50:21 来源:https://blog.csdn.net/Tttian622/article/details/144274567  浏览:    关键词:MySQL数据库(3)-SQL基础语言学习

1. DDL数据定义语言

1.1 什么是DDL

DDL(Data Definition Language,数据定义语言)是SQL语言的一部分,用于定义和修改数据库结构。DDL主要包括以下三类语句:

1.CREATE:用于创建数据库对象,如数据库、表、视图、索引、存储过程、触发器等。

2. ALTER:用于修改已存在的数据库对象的结构,如添加或删除表的列、修改列的数据类型、更改表的名称等。

3. DROP:用于删除数据库对象,如删除表、视图、索引、存储过程、触发器等。

这些DDL语句允许用户定义和管理数据库的结构,而不涉及数据的增删改查操作,后者通常由DML(Data Manipulation Language)语句处理。

1.2 DDL语言应用

  1. 创建库 create database demo;
  2. 切换库 use demo
  3. 查询库列表 show databases;
  4. 删除逻辑库 drop database demo;
  5. 删除表:drop table student;
  6. 创建表:(先使用use demo,选择要操作的库)
create table student(id int unsigned primary key,   #允许存储负数、主键唯一且不为空`name` varchar(20) not null,  #name是系统关键字,所以加``sex char(1) not null,birthday date not null,tel char(11) not null,remark varchar(200)
); 

2.DML数据操纵语言

2.1 什么是DML

DML(Data Manipulation Language,数据操纵语言),用于操作数据库中的数据。

DML语句允许用户对数据进行增删改等操作,但不涉及修改数据库结构。DML的主要语句包括:

1. INSERT:用于向表中插入新的数据行。

2. UPDATE:用于修改表中已存在的数据行。

3. DELETE:用于从表中删除数据行。

这些语句用于直接操作表中的数据,而不改变表的结构或定义。DML语句通常与事务控制语句(如COMMIT和ROLLBACK)一起使用,以确保数据操作的完整性和一致性。

2.2 DDL语言应用

增:INSERT INTO student (id, name, age) VALUES (1, 'John', 30);

删:DELETE FROM student WHERE id = 1;

改:UPDATE student SET age = 31 WHERE id = 1;

3.DQL数据查询语言

3.1 什么是DQL

DQL(Data Query Language,数据查询语言),专门用于查询数据库中的数据。

DQL的核心功能是从数据库中检索数据,而不修改数据结构或数据本身。

DQL的主要语句是SELECT,它允许用户执行各种查询操作,包括:

  • 选择特定列或所有列的数据。
  • 使用WHERE子句进行条件过滤。
  • 使用ORDER BY子句对结果进行排序。
  • 使用GROUP BY子句对数据进行分组。
  • 使用聚合函数(如COUNT, SUM, AVG等)进行数据汇总。

3.2 DQL语言应用

 查:SELECT * FROM student; 

4. 数据库约束

4.1 什么是约束

数据库中的约束(Constraint)是一种规则,用于限制可以存储在表中的数据,确保数据的准确性和可靠性。约束帮助维护数据库的完整性,防止无效或不一致的数据被插入。以下是一些常见的数据库约束:

主键约束(PRIMARY KEY):确保列(或列的组合)中的每个值都是唯一的,并且非空。

外键约束(FOREIGN KEY):用于链接两个表,确保引用表中的值必须在主表的主键中存在。

唯一约束(UNIQUE):保证列中的所有值都是唯一的,但允许为空值。

非空约束(NOT NULL):确保列不能包含空值。

检查约束(CHECK):用于确保列中的值满足特定的条件,例如值的范围或模式。

默认值约束(DEFAULT):当没有为列提供值时,指定一个默认值。

4.2 约束具体应用 

主键约束:CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100));

外键约束:CREATE TABLE orders (order_id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id));

唯一约束:CREATE TABLE users (id INT PRIMARY KEY, email VARCHAR(100) UNIQUE);

非空约束:CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100) NOT NULL);

5.数据库实例操作

5.1 表结构修改Alter

添加列

alter table student
add address varchar(200) not null;

修改字段属性 

# 若修改的列中包含数据,则要考虑数据的长度
alter table student
modify address char(20) not null;

删除字段 

alter table student
drop address;

5.2 表创建 Create

创建表

#创建t_tept

CREATE TABLE t_tept(
    deptno int UNSIGNED PRIMARY KEY,
    dname VARCHAR(20) not null UNIQUE,
    tel CHAR(4) UNIQUE
);

#创建t_emp

CREATE TABLE t_emp(
    empno INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    ename VARCHAR(20) not null,
    sex ENUM("男","女") not null,
    deptno INT UNSIGNED,
    hiredate DATE not null,
    FOREIGN KEY (deptno) REFERENCES t_dept(deptno)
);

#创建t_message

CREATE TABLE t_message(
    id INT UNSIGNED PRIMARY KEY,
    content VARCHAR(200) not null,
    type ENUM("公告","通报","个人通知")not null,
    create_time TIMESTAMP not null,
    INDEX idx_type(type)
);

5.3 数据库选择 Use

使用数据库

use datasource;

5.4 数据查询 select

查询所有列

# 题库表中的所有信息
SELECT * FROM question;

查询特定列

# 查询所有题库名称
SELECT name as "题库名称" FROM question_bank;

# 查询题库名称和图片
SELECT name,img_url "图片" FROM question_bank;

5.5 分页查询 Limit

分页显示数据

# 查询题库,分页方式显示数据,每页显示5条
SELECT * FROM question_bank LIMIT 0,5;
SELECT * FROM question_bank LIMIT 1,5;

# 查询用户信息表中,第三页的数据,每页显示5条
SELECT * FROM userinfo LIMIT 10,5;

5.6 排序和分页查询Order By

排序并分页显示数据

# 课程章表,安排课程id进行排序,并且进一步对章进行排序
SELECT * FROM course_chapter ORDER BY course_id,id LIMIT 0,3;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词