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

数据库学习笔记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 '用户表';

未完待续...


http://www.kler.cn/a/229206.html

相关文章:

  • vue element 组件 form深层 :prop 验证失效问题解决
  • 【Flink入门修炼】1-1 为什么要学习 Flink?
  • RAG 新路径!提升开发效率、用户体验拉满
  • Linux内核与驱动面试经典“小”问题集锦(3)
  • Kubernetes实战(二十五)-快速下载k8s.gcr.io,gcr.io,quay.io镜像
  • 高宇辰:打造“π”型人才 | 提升之路系列(七)
  • strtok的使用
  • 政安晨:机器学习快速入门(二){基于Python与Pandas} {建立您的第一个机器学习模型}
  • 看论文利器:paperswithcode
  • 算法学习——华为机考题库10(HJ64 - HJ69)
  • LLVM实战之将.ll文件转换成bitcode文件
  • 蓝桥杯(Web大学组)2023十四届省赛真题3:收集帛书碎片
  • 14.2 url后端过滤器(❤❤)
  • 数据结构高级算法
  • RFID手持终端_智能pda手持终端设备定制方案
  • Redis -- list列表
  • git小白进阶之路
  • Vision Transfomer系列第二节---复现过程的Bugs记录
  • BUUCTF-Real-[ThinkPHP]IN SQL INJECTION
  • 【cmu15445c++入门】(6)c++的迭代器