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;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/396263.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android系统Android.bp文件详解

文章目录 1. 基本语法结构2. 常见模块类型3. 模块属性常见属性包括: 4. 具体示例5. 高级功能5.1. 条件编译5.2. 变量定义与使用5.3. 模块继承 6. 总结 Android.bp 是 Android 构建系统(Android Build System)中的配置文件,用于描述…

go之命令行工具urfave-cli

一、urfave/cli urfave/cli 是一个声明性的、简单、快速且有趣的包,用于用 Go 构建命令行工具。 二、快速使用 2.1 引入依赖 go get github.com/urfave/cli/v2 2.2 demo package mainimport ("fmt""log""os""github.com/ur…

OpenCV图像滤波(9)getGaussianKernel()函数的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 功能描述 cv::getGaussianKernel() 是 OpenCV 中的一个函数,用于生成一维高斯核。这种核通常用于实现高斯模糊滤波器,该滤波器可以…

备考CISSP,看这一篇就够了!(附备考资料下载)

作者在2023年发布过一篇博文《不报辅导班一次性通过CISSP经验分享》,后台收到很多备考小伙伴的私信咨询,我就基于大家经常问的问题整理了此文章为大家答疑解惑,同时附上备考过程中作者收集到的全部资源(见文末)&#x…

EasyCVR视频汇聚平台云计算技术核心优势:高效、灵活与可扩展性深度解读

随着科技的飞速发展和社会的不断进步,视频监控已经成为现代社会治安防控、企业管理等场景安全管理中不可或缺的一部分。在这一背景下,EasyCVR视频汇聚平台凭借其强大的云计算技术,展现出了卓越的性能和广泛的应用前景。本文将深入解析EasyCVR…

Rust学习----Rust安装

如何安装Rust? 1.官网:https://www.rust-lang.org/zh-CN/ 2.Linux or Max: curl https://sh.rustup.rs -sSf | sh 3.Windows按官网指导安装。 4.Windows Subsystem for Linux: curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs…

JavaDS —— 位图(BitSet)与 布隆过滤器

位图 引入问题:给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 首先要注意 40 亿个数据如果使用 整型(int) 来存放的话,就是要 40 亿个整型,一个整型有…

redis面试(十一)锁超时

boolean res lock.tryLock(100, 10, TimeUnit.SECONDS); RedissonLock里面有这样一个方法tryLock(),意思是尝试获取锁的结果。 最大等待时间100s,并且获取到锁之后,10s之内没有释放的话,锁会自动失效。 尝试获取锁超时 time …

【vue3|第20期】vue3中Vue Router路由器工作模式

日期:2024年8月6日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xff…

LiveNVR监控流媒体Onvif/RTSP常见问题-页面上传SSL证书配置开启 HTTPS 服务?什么时候必须要开启HTTPS服务?

LiveNVR常见问题-页面上传SSL证书配置开启 HTTPS 服务?什么时候必须要开启HTTPS服务? 1、配置开启HTTPS1.1、准备https证书1.2、配置HTTPS端口1.3、配置证书路径1.3、 页面上传SSL证书 2、验证HTTPS服务3、为什么要开启HTTPS4、RTSP/HLS/FLV/RTMP拉流Onv…

IROS2024 | DarkGS:学习神经照明和3D高斯重新照明,用于黑暗中机器人探索

DarkGS:学习神经照明和3D高斯重新照明,用于黑暗中机器人探索 论文标题:DarkGS: Learning Neural Illumination and 3D Gaussians Relighting for Robotic Exploration in the Dark 论文地址:https://arxiv.org/abs/2403.10814 研…

PasteSpider快速上手开发者专用部署助手

【【【PasteSpider的安装--一键拉取镜像】】】 (首次使用,建议使用MemorySqlite的模式,只要2行代码即可启动一个PasteSpider,第一行拉取PasteSpider的镜像,第二行启动PasteSpider容器!) 安装PasteSpider之后&#xf…

文件上传绕过最新版安全狗

本文来源无问社区,更多实战内容,渗透思路可前往查看http://www.wwlib.cn/index.php/artread/artid/9960.html http分块传输绕过 http分块传输⼀直是⼀个很经典的绕过⽅式,只是在近⼏年分块传输⼀直被卡的很死,很多waf都开始加 …

8.9套题

A. 猴猴吃苹果 题意:给定根节点k,求访问点的顺序,使得每次从上一个点到当前点的权值最大。访问过的点权值为0。权值一样时,输出最小编号 思路:由于是双向边,先求根节点到每一个节点的距离值。在第一轮中&…

【算法题】整数反转,一文彻底搞清!

目录 一、题目描述 二、解题思路 1、整数转为字符串 2、数学运算 三、参考答案 一、题目描述 整数反转 给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。 如果反转后整数超过32位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 …

58 mysql 存储引擎之 MEMORY

前言 我们这里来看一下 MEMORY 存储引擎, 我们常见的那些 临时表什么的, 都是基于 MEMORY 在之前 我们也曾经调试过 相关内存临时表的信息 它主要是 使用 hp_scan, hp_find_record 等等 api 来操作内存中的信息 我们这里基于 information_schema.TABLES 这张基于 MEMORY 的…

加速 Spring Boot 3.3 迁移

1. 关键要点 为什么你应该升级你的服务迁移到 Spring Boot 3.3 时需要更新的内容OpenRewrite 如何帮助使升级更轻松、更快捷 2. 前言 现在Spring Boot 已经到了3.3,但是你在哪里?在过去的 3.x 版本更新中,我们看到了许多新功能,…

从EN标准到REACH法规:全面掌握CE认证洗涤剂的安全要求

一、什么是CE认证? CE认证(Conformit Europenne)是产品符合欧洲经济区(EEA)安全、健康、环保和消费者保护要求的标志。对于洗涤剂而言,CE认证证明该产品符合欧洲相关法规和标准,确保其在使用过…

牛客JS题(三十四)监听对象

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; defineProperty实现深度监视递归终止条件引用传值闭包与作用域 题干&#xff1a; 我的答案 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /></head&…

ue5正确导入资源 content(内容),content只能有一个

把资源content下的东西&#xff0c;全部拷贝&#xff0c;放在项目的content下 content只能有一个