首页 > 数据库 >数据库基础6 SQL语言概述

数据库基础6 SQL语言概述

时间:2024-02-23 23:55:35浏览次数:44  
标签:语句 排列 示例 数据库 元组 概述 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

 

标签:语句,排列,示例,数据库,元组,概述,SQL,操作
From: https://www.cnblogs.com/jk-2048/p/18030599

相关文章

  • 数据库基础1 数据库系统概述
    1.1四个基本概念1.数据定义  2.数据库定义  3.数据库管理系统DBMS数据库管理系统是介于操作系统与用户之间的DBMS主要功能:  4.数据库系统定义与构成:在不引起歧义的情况下,将数据库系统简称为数据库 1.2数据管理技术的产生和发展什么是数据管......
  • pymysql连接数据库和sqlite
    如果使用mysql,需要配置如下: -1配置文件中配置:settings.py DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'数据库名字','HOST':'127.0.0.1'......
  • sqlserver常用语句
    1、创建数据库MytestCREATEDATABASEMytest2、创建表StudentsCREATETABLEStudents(IDINTPRIMARYKEYIDENTITY(1,1),/*identity(1,1)为每次递增copy1位primarykey为主键*/NameVARCHAR(50)NNOTNULL,AgeINTNOTNULL,CityVARCHAR(50)NOTNULL......
  • 项目mysql转换为kingbase人大金仓数据库
    项目mysql转换为kingbase人大金仓数据库目录项目mysql转换为kingbase人大金仓数据库官网已遇到的需要进行替换的部分UUID()部分进行分组并加以排序选择mysqlkingbase——row_number()排序函数列为null时的排序规则不同用到groupby的话,select的数据要进行分组my......
  • 在mapper.xml中编写sql规则和常见函数写法
    在mapper.xml中编写规则和常见函数写法目录在mapper.xml中编写规则和常见函数写法service传到mapper.xml常见查询语句的写法group_concatcasewhenelseendCOALESCEDUAL模糊查询写法关于where1=1xml中不能存在的特殊字符——特殊转义或<![CDATA[]]>sql编写的一些......
  • Qt使用mysql数据库
    此内容来自网络,有一定参考作用吧1.官网下载链接:https://dev.mysql.com/downloads/mysql/5.7.html2.下载解压上面的mysql,后更改Qt源码目录的两处路径配置3.打开QT安装路径下的源码C:\Qt\5.15.1\Src\qtbase\src\plugins\sqldrivers\mysql双击用QTCreator打开mysql.pro(1)打开mysql......
  • mysql面试高频问题---mysql分库分表
    mysql分库分表1.问题主从架构,读写分离,分担了访问压力分库分表的时机:①前提,项目业务数据逐渐增多,或业务发展比较迅速(单表的数据量达到1000W或20G以后)②优化已解决不了性能问题(主从读写分离、查询索引…)③IO瓶颈(磁盘IO、网络IO)、CP\瓶颈(聚合查询、连接数太多)分库分表......
  • mysql面试高频问题---事务undo log和redo log的区别
    事务undolog和redolog的区别1.问题undolog和redolog都是mysql的日志文件,但是功能不一样。缓冲池(bufferpool):主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),以一定频率刷新到磁......
  • iPaaS生成数据库接口只要60秒?
    “iPaaS生成数据库接口只要60秒?”关于“iPaaS生成数据库接口只要60秒?”的说法,这实际上反映了iPaaS解决方案的一个重要优势:高效率。确实,借助iPaaS平台的现成集成工具和模板,用户可以迅速创建连接到特定数据库的接口。低代码开发平台提供了一个简化的、图形化的编程环境,允许开发者......
  • mysql面试高频问题---事务-MVCC多版本并发控制(难)
    MVCC多版本并发控制1.问题锁:排他锁(如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁)mvcc:多版本并发控制2.MVCC多版本并发控制MVCC全称Multi-VersionConcurrencyControl,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突MVCC的具体......