• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
jk-2048
博客园    首页    新随笔    联系   管理    订阅  订阅
数据库基础6 SQL语言概述

SQL语言引导词

DDL:数据库定义语言
DML:数据库操作语言
DCL:数据库控制语言

1.DDL语句引导词

数据库定义语言
用于各种对象的定义和删除,操作对象是表

2.DML语句引导词

数据库操作语言:增删改查,操作对象是记录

3.DCL语句引导词

数据库控制语言,操作对象是用户权限
 

常用数据库

1.学生选课数据库SCT

包括学生、院系、课程、教师、选课五张表
 

如何建立数据库

1.创建数据库

使用数据库定义语言DDL创建数据库
类似C语言,用分号;作为语句结尾
 

2.创建表Table

方括号表示可省略的参数,竖线表示两项可选参数

数据类型

和高级语言的数据类型大部分一致,细节上可能有小差别

3.示例

定义学生表

红色为表名或属性名(列名)
在数据类型之后,可以用空格加一些约束
 

定义课程表

 

如何向表中追加元组

为表增加元组操作属于数据库操作语言DML的范畴
使用Insert into关键字
追加的值要与追加的列名(属性名)一一对应
若不给出属性名,则值的按照表定义时的属性属性作为默认顺序
 

单表查询Select

1.检索语句

示例:检索学生表中所有学生信息
示例:检索学生表中所有学生的姓名和年龄
不写where子句时,默认为找出关系中的所有元组
 

2.检索条件的书写

检索条件表达式中可使用逻辑运算,与、或、非、括号
类似foreach遍历中加上一条if
示例:或
 

3.是否去重复关键字DISTINCT

加上关键字DISTINCT后,表明结果中去除重复元组
 

4.结果排序order by

ASC:升序排列,从小到大(省略时默认升序)
DESC:降序排列,从大到小
升序示例(此时不写ASC也可):
降序示例:
 

5.模糊查询问题

引入新运算符like、not like
与字符串做一个模糊的匹配

多字符匹配%示例:

单字符匹配_示例:

反匹配not like示例:

 

多表联合查询Select

在from后写上需要联合访问的所有表名
将连接操作放在检索条件之中
 

等值连接示例

在from后写上所有表名,where后写查询条件
相同的属性名,用成员访问操作符.来标注其属于哪一个表
 

重名表处理

在From步骤
用as关键字给表起一个别名
在Select步骤,也可以用as给列起别名
 

不等值连接

 

增、删、改操作(更新操作)

新增Insert into

单一元组新增

若不写列名,则默认为值的排列与表的列的排列一致
 

批量元组新增

查询的括号中列名的排列顺序
应该与要新增进的表的列排列顺序一致
若不写列名,则两个参数的排列顺序,必须与表的排列顺序一致
 
SQL语言的语句块类似python,用缩进来标注子查询
插入平均成绩
 

删除Delete

也是类似遍历+if判断+删除操作的结构
 

修改操作Update

set之后写赋值表达式作为对表的修改
包含平均运算的修改示例
使用子查询可表示批量操作
所以查询操作非常重要
若不写属性名,值的排列顺序必须与表的列排列顺序一致
语句块标记方式:缩进(类似python)
 
核心都是select from where
 
 

数据库的撤销与修改

修正数据库定义Alter

增加列:add
删除完整性约束:drop
修改列定义:modify
 

撤销(整个删除) drop

delete是删除表中的元素、元组
drop是删除整个表或数据库

开关数据库use、close

 
posted on 2024-02-23 23:49  JK降谷羽  阅读(38)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3