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

SQL语句创建数据库(增删查改)

SQL语句

  • 一.数据库的基础
    • 1.1 什么是数据库
    • 1.2 基本使用
      • 1.2.1 连接服务器
      • 1.2.2 使用案例
    • 1.2 SQL分类
  • 二.库的操作
    • 2.1 创建数据库
    • 2.2 创建数据库示例
    • 2.3 字符集和校验规则
      • 2.3.1 查看系统默认字符集以及校验规则
      • 2.3.2查看数据库支持的字符集
      • 2.3.3查看数据库支持的字符集校验规则
      • 2.3.4 校验规则对数据库的影响
    • 2.4 操纵数据库
      • 2.4.1 查看数据库
      • 2.4.2 显示创建语句
        • 示例
      • 2.4.3 修改数据库
      • 2.4.4 数据库删除
      • 2.4.5 查看连接情况
  • 三.表的操作
    • 3.1 创建表
    • 3.2 创建表案例
    • 3.3 查看表结构
    • 3.3 修改表
    • 3.4删除表

一.数据库的基础

1.1 什么是数据库

文件保存数据有以下几个缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

数据库存储介质:

  • 磁盘
  • 内存

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。

1.2 基本使用

1.2.1 连接服务器

输入:

mysql -h 127.0.0.1 -P 3306 -u root -p

输出:

Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
  • 注意:如果没有写 -h 127.0.0.1默认是连接本地
  • 如果没有写 -P 3306 默认是连接3306端口

1.2.2 使用案例

  • 创建数据库
create  database helloword1;

则表示创建成功:
在这里插入图片描述

  • 使用数据库
use helloword1;

在这里插入图片描述

  • 创建数据库表
create table student(
id int, //名字  类型
name varchar(32),
gender varchar(2)
);

在这里插入图片描述

  • 表中插入数据
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
  • 表中查询数据
select * from student;

1.2 SQL分类

  • DDL【data definition language】 数据定义语言,用来维护存储数据的结构代表指令: create, drop, alter
  • DML【data manipulation language】 数据操纵语言,用来对数据进行操作
    代表指令: insert,delete,update
    • DML中又单独分了一个DQL,数据查询语言,代表指令: select
  • DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
    代表指令: grant,revoke,commit

二.库的操作

2.1 创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

2.2 创建数据库示例

  • 创建名为zy1的数据库
create database zy1;

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci

  • 创建一个使用utf8字符集的 zy2 数据库
create database zy2 charset=utf8;
  • 创建一个使用utf字符集,并带校对规则的 zy3 数据库
create database zy3 charset=utf8 collate utf8_general_ci;

2.3 字符集和校验规则

2.3.1 查看系统默认字符集以及校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

2.3.2查看数据库支持的字符集

show charset;

在这里插入图片描述

2.3.3查看数据库支持的字符集校验规则

show collation;

在这里插入图片描述

字符集主要是控制用什么语言。比如utf8就可以使用中文。

2.3.4 校验规则对数据库的影响

  • 不区分大小写

创建一个数据库,校验规则使用utf8-general——ci

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  • 区分大小写
    创建一个数据库,校验规则使用utf8_ bin[区分大小写]
create database test2 collate utf8_bin;
use test2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  • 不区分大小写的查询及结果
mysql> use test1;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
| A |
+------+
2 rows in set (0.01 sec)
  • 区分大小写的查询以及结果
mysql> use test2;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
+------+
2 rows in set (0.01 sec)
  • 不区分大小写排序以及结果:
mysql> use test1;
mysql> select * from person order by name;
+------+
| name |
+------+
| a |
| A |
| b |
| B |
+------+

区分大小写排序以及结果:

mysql> use test2;
mysql> select * from person order by name;
+------+
| name |
+------+
| A |
| B |
| a |
| b |
+------+

2.4 操纵数据库

2.4.1 查看数据库

show databases;

在这里插入图片描述

2.4.2 显示创建语句

show create database 数据库名;
示例

在这里插入图片描述

  • MySQL 建议我们关键字使用大写,但是不是必须的。
  • 数据库名字的反引号 ,是为了防止使用的数据库名刚好是关键字
  • /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

2.4.3 修改数据库

语法

ALTER DATABASE db_name

对数据库的修改主要指的是修改数据库的字符集,校验规则

将 zy1 数据库字符集改成 gbk

alter database zy1 charset=gbk;

在这里插入图片描述

2.4.4 数据库删除

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

当前的数据库有
在这里插入图片描述
使用drop命令删除后

drop database d1;

在这里插入图片描述

2.4.5 查看连接情况

语法:

show processlist

在这里插入图片描述

三.表的操作

3.1 创建表

语法:

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

3.2 创建表案例

create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是',
birthday date comment '生日'
) character set utf8 engine MyISAM;

说明:

  • 不同的存储引擎,创建表的文件不一样
    users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:
    • users.frm:表结构
    • users.MYD:表数据
    • users.MYI:表索引
create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
)

在这里插入图片描述
在这里插入图片描述

3.3 查看表结构

desc 表名;

在这里插入图片描述
在这里插入图片描述

3.3 修改表

经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename DROP (column)

举例:

  • 在user表中添加一条记录
insert into user values(1,'c','33','1290-9-3');

在这里插入图片描述

  • 在users表添加一个字段,用于保存图片路径
 alter table user add access varchar(100) comment '图片路径' after birthday;

在这里插入图片描述
插入新字段后,对原来表中的数据没有影响

  • 修改id,将其长度改成60
alter table user modify id varchar(60);

在这里插入图片描述

  • 删除password列
alter table user drop password;

在这里插入图片描述

  • 修改表名为userzy
alter table user rename to zy;

在这里插入图片描述

to:可以省略

  • 将name列修改为XM
alter table zy change name XM varchar(60);

在这里插入图片描述

3.4删除表

语法格式

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
  • 示例
drop table zy;

在这里插入图片描述

相关文章:

SQL语句创建数据库(增删查改)

SQL语句 一.数据库的基础1.1 什么是数据库1.2 基本使用1.2.1 连接服务器1.2.2 使用案例 1.2 SQL分类 二.库的操作2.1 创建数据库2.2 创建数据库示例2.3 字符集和校验规则2.3.1 查看系统默认字符集以及校验规则2.3.2查看数据库支持的字符集2.3.3查看数据库支持的字符集校验规则2…...

微信小程序-Vant组件库的使用

一. 在app.json里面删除style:v2 为了避免使用Vant组件库和微信小程序组件样式的相互影响 二.在app.json里面usingComponents注册Vant组件库的自定义组件 "usingComponents": {"van-icon": "./miniprogram_npm/vant-weapp/icon/index&qu…...

为什么企业需要进行能源体系认证?

通过能源体系认证,企业可以向公众和利益相关方展示其在节能减排方面的承诺和成就。这不仅提升了企业的社会责任形象,还增强了品牌的信誉度。在当今消费者更加关注环境问题的背景下,绿色企业形象有助于赢得市场和客户的认可与信任。 能源体系认…...

【日常记录-MySQL】EVENT

Author:赵志乾 Date:2024-08-07 Declaration:All Right Reserved!!! 1. 简介 在MySQL中,EVENT是一种数据库对象,其用于设定数据库任务自动执行。这些任务可以是任意有效的SQL语句&a…...

嵌入式学习day12(LinuxC高级)

由于C高级部分比较零碎,各部分之间没有联系,所以学起来比较累,多练习就好了 一丶Linux起源 寻科普|第二期:聊聊Linux的前世今生 UNIX和linux的区别: (1)linux是开发源代码的自由软件.而unix是…...

pytorch中的hook机制register_forward_hook

上篇文章主要介绍了hook钩子函数的大致使用流程,本篇文章主要介绍pytorch中的hook机制register_forward_hook,手动在forward之前注册hook,hook在forward执行以后被自动执行。 1、hook背景 Hook被成为钩子机制,pytorch中包含forwa…...

使用Gin框架返回JSON、XML和HTML数据

简介 Gin是一个高性能的Go语言Web框架,它不仅提供了简洁的API,还支持快速的路由和中间件处理。在Web开发中,返回JSON、XML和HTML数据是非常常见的需求。本文将介绍如何使用Gin框架来返回这三种类型的数据。 环境准备 在开始之前&#xff0…...

网工内推 | 国企运维工程师,华为认证优先,最高年薪20w

01 上海陆家嘴物业管理有限公司 🔷招聘岗位:IT运维工程师 🔷岗位职责: 1、负责对公司软、硬件系统、周边设备、桌面系统、服务器、网络基础环境运行维护、故障排除。 2、负责对各部门软件操作、网络安全进行检查、指导。 3、负责…...

c# 使用异步函数实现线程的功能

c#程序执行时 想要拖动窗口 需要使用线程,但是使用线程 对操作前端窗体很不友好. 所以写了一个异步函数,网上搜了一下,貌似异步函数比线程 更加友好,更加现代 做这个功能的原因是 主要是想等程序执行完 走一个提示.用线程很难做到 using System; using System.Threading; usi…...

MySQL之MySQL server has gone away复现测试

测试MySQL server has gone away复现条件 环境情形一报错信息复现测试 情形二报错信息复现测试 环境 Python: 3.8/3.9 MySQL: 5.x 情形一 报错信息 File "/usr/local/lib/python3.6/dist-packages/MySQLdb/cursors.py", line 319, in _querydb.query(q)File "/…...

编程深水区之并发④:Web多线程

Node的灵感来源于Chrome,更是移植了V8引擎。在Node中能够实现的多线程,在Web环境中自然也可以。 一、浏览器是多进程和多线程的复杂应用 在本系列的第二章节,有提到现代浏览器是一个多进程和多线程的复杂应用。浏览器主进程统管全局&#xf…...

【实战指南】从提升AI知识库效果,从PDF转Markdown开始

经常有人抱怨AI知识库精确度不够、答非所问。我有时候想想,会觉得其实AI也挺冤的,因为很有可能不是它能力不行,而是你一开始给的文档就有问题,导致它提取文本有错误、不完整,那后边一连串的检索、生成怎么可能好呢&…...

Android 删除telephony的features

比如删除android.hardware.telephony.subscription 找到这个文件&#xff1a;frameworks/native/data/etc/android.hardware.telephony.subscription.xml <!-- This is the standard set of features for devices to support Telephony Subscription API. --> -<perm…...

Linux驱动开发—编写第一个最简单的驱动模块

文章目录 开发驱动准备工作1.正常运行的Linux系统的开发板2.内核源码树3.nfs挂载的rootfs4.得心趁手的IDE 第一个Hello world 驱动程序常见模块的操作命令模块的初始化和清理模块的版本信息模块中的各种宏 示例Hello World代码printk函数解析 使用MakeFile编译驱动模块使用insm…...

科普文:微服务之Spring Cloud 组件API网关Gateway

API网关是一个服务器&#xff0c;是系统的唯一入口。从面向对象设计的角度看&#xff0c;它与外观模式类似。API网关封装了系统内部架构&#xff0c;为每个客户端提供一个定制的API。它可能还具有其它职责&#xff0c;如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响…...

Kubernetes中的CRI、CNI与CSI:深入理解云原生存储、网络与容器运行时

引言 随着云原生技术的飞速发展&#xff0c;Kubernetes&#xff08;简称K8s&#xff09;作为云原生应用的核心调度平台&#xff0c;其重要性日益凸显。K8s通过开放一系列接口&#xff0c;实现了高度的可扩展性和灵活性&#xff0c;其中CRI&#xff08;Container Runtime Inter…...

【数据结构】二叉搜索树(Java + 链表实现)

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构、LeetCode专栏 &#x1f4da;本系…...

java Brotli压缩算法实现压缩、解压缩

在Java中实现Brotli压缩和解压缩&#xff0c;你可以使用org.brotlienc和org.brotlidec包中的类。以下是压缩和解压缩的基本步骤和示例代码&#xff1a; 压缩文件 创建FileInputStream以读取原始文件。创建BrotliOutputStream以写入压缩数据。读取原始文件并写入压缩流。关闭流…...

centos7.9 安装java相关组件

10.23.15.71 - 78 账户 admin IMES1 改为root再操作 $ sudo su root ($ su root) 下载包 /home/admin/download $ mkdir download $ chown -R admin:admin /home/admin/download 安装包 /data/local $ tar -sxvf jdk-11.0.23_linux-x64_bin.tar.gz -C /data/local $ mv jdk…...

在IntelliJ IDEA中,快速找到控制类(Controller类)中所有的方法,可以通过以下几种方式实现:

在IntelliJ IDEA中&#xff0c;快速找到控制类&#xff08;Controller类&#xff09;中所有的方法&#xff0c;可以通过以下几种方式实现&#xff1a; 1. 使用快捷键 Alt 7 操作说明&#xff1a;在IDEA中&#xff0c;按下Alt 7可以快速打开“Structure”窗口&#xff08;在…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...