当前位置: 首页 > news >正文

数据库学习笔记2024/2/5

2. SQL

全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准

2.1 SQL通用语法

在学习具体的SQL语句之前,先来了解一下SQL语言的通用语法。

1). SQL语句可以单行或多行书写,以分号结尾。

2). SQL语句可以使用空格/缩进来增强语句的可读性。

3). MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。

4). 注释:

单行注释:-- 注释内容 或 # 注释内容(MySQL特有)

多行注释:/* 注释内容 */

2.2 SQL分类

SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。

分 类 全称 说明

DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表, 字段,索引)

DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改

DQL Data Query Language 数据查询语言,用来查询数据库中表的记录

DCL Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的 访问权限

2.3 DDL

Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 。

2.3.1 数据库操作

1). 查询所有数据库

 show databases ;

2). 查询当前数据库

 select database() ;

3). 创建数据库

 create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序 规则 ] ;

//写[if...]时,[ ]要省略, 写if not exists表示已经有这个数据库了就不再执行 ,没有就执行

//可以按键盘键上下键来选择执行

//创建是创建,查看是查看

//utf8 -> 3个字节, 推荐 utf8mb4 -> 4个字节

案例:

A. 创建一个itcast数据库, 使用数据库默认的字符集。

create database itcast;

在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。

可以通过if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不 创建。

create database if not extists itcast;

B. 创建一个itheima数据库,并且指定字符集

create database itheima default charset utf8mb4;

4). 删除数据库

drop database [ if exists ] 数据库名 ;

如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再 执行删除,否则不执行删除。

5). 使用与切换数据库

use 数据库名 ;

我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。 比如,切换到itcast数据,执行如下SQL:

use itcast;

2.3.2 表操作

2.3.2.1 表操作-查询创建

1). 查询当前数据库所有表

show tables;

比如,我们可以切换到sys这个系统数据库,并查看系统数据库中的所有表结构。

2). 查看指定表结构

desc 表名 ;

通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为NULL,是否存在默认值等信息。

3). 查询指定表的建表语句

show create table 表名 ;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询 到,因为这部分是数据库的默认值,如:存储引擎、字符集等。

4). 创建表结构

CREATE TABLE 表名(

字段1 字段1类型 [ COMMENT 字段1注释 ],

字段2 字段2类型 [COMMENT 字段2注释 ],

字段3 字段3类型 [COMMENT 字段3注释 ],

......

字段n 字段n类型 [COMMENT 字段n注释 ]

) [ COMMENT 表注释 ] ;

注意: [...] 内为可选参数,最后一个字段后面没有逗号

比如,我们创建一张表 tb_user ,对应的结构如下,那么建表语句为:

create table tb_user(

id int comment '编号',

name varchar(50) comment '姓名',

age int comment '年龄',

gender varchar(1) comment '性别'

) comment '用户表';

未完待续...

相关文章:

  • 阅读笔记——《RapidFuzz: Accelerating fuzzing via Generative Adversarial Networks》
  • 算法学习——华为机考题库10(HJ64 - HJ69)
  • CTF-show WEB入门--web21
  • Oracle分析SQL执行调优
  • 为什么说Python语法简单?
  • Redis核心技术与实战【学习笔记】 - 28.Redis 6.0新特性(多线程、客户端缓存与安全)
  • NLP_词的向量表示Word2Vec 和 Embedding
  • MySQL 用户管理
  • 基于SSM的便民自行车管理系统的开发与实现(有报告)。Javaee项目。ssm项目。
  • 如何从dockerhub 中运行一个简单项目
  • 基于单片机的智能寻光小车设计
  • P4408 [NOI2003] 逃学的小孩
  • C++ 11新特性之tuple
  • linux上部署ftp服务
  • Python:批量url链接保存为PDF
  • 自己简单写的 事件订阅机制
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Golang-长连接-状态推送
  • HTTP--网络协议分层,http历史(二)
  • PHP那些事儿
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 前端js -- this指向总结。
  • 前端性能优化——回流与重绘
  • 手写双向链表LinkedList的几个常用功能
  • 微信开源mars源码分析1—上层samples分析
  • 优秀架构师必须掌握的架构思维
  • 最近的计划
  • 阿里云API、SDK和CLI应用实践方案
  • 扩展资源服务器解决oauth2 性能瓶颈
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #Linux(帮助手册)
  • (+4)2.2UML建模图
  • (1)虚拟机的安装与使用,linux系统安装
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (办公)springboot配置aop处理请求.
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)ObjectiveC 深浅拷贝学习
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .Net IE10 _doPostBack 未定义
  • .NET 发展历程
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET命令行(CLI)常用命令
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • /3GB和/USERVA开关
  • ?php echo ?,?php echo Hello world!;?
  • @SentinelResource详解