SQL语句

发布时间:2024年01月06日

目录

SQL通用语法

SQL分类

DDL-数据库操作

查询

创建

案例:创建一个pythondog数据库, 使用数据库默认的字符集

设置字符集案例:创建一个itczh数据库,并且指定字符集utf8mb4

?删除

案例:删除数据库itczh

使用:切换数据库

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

查询自己在哪个数据库:那假设我已经执行了很多SQL语句了,我怎么知道我当前处在哪个数据库呢?


SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾。
  2. SQL语句可以使用空格/缩进来增强语句的可读性。(空格与缩进个数没有限制
  3. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
  4. 注释:
  • 单行注释:-- 注释内容??? 或??? #
  • 注释内容多行注释:/* 注释内容 */

SQL分类

分类全称说明

DDL

Data Definition Language

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

DML

Data Manipulation Language

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

DQL

Data Query Language

数据查询语言,用来查询数据库中表的记录

DCL

Data Control Language

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

  • DDL

  • DCL:创建用户,以及控制用户的权限,这个创建出来的用户能够操作哪些数据库里的哪些表,能够增删改查当中的哪些操作

DDL-数据库操作

  • 查询

?1.查询所有数据库:一次查询当前数据库服务器中所有数据库

show databases ;

show与databases之间有空格,这里面的空格可以有一个,也可以有多个

?(安装完mysql数据库中自带的数据库)

2.查询当前数据库:

select database() ;
  • 创建

创建数据库

  • 注意!我们可以去增加【if not exists】(如果数据库名称不存在,我则创建,如果存在,则不执行任何操作
  • 【default charset】去指定当前数据库所使用的字符集,比如UTF8这样的字符集,当然这个也是可以省略的,因为数据库有默认的字符集
  • 【collate】去指定排序规则
  • 所框选的部分都是可选的
案例:创建一个pythondog数据库, 使用数据库默认的字符集
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;

?

出现Query OK,说明当前数据库创建成功,创建成功后,我们可以再次输入指令,show databases;查看创建的数据库 pythondog

此时我再去执行一下 create database pythondog; 它会不会再创建数据库呢?不会,当我再去执行时会报错,返回这么一句话,不能再创建名为pythondog的数据库了,原因是数据库已经存在

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

?假如不想让这个错误报出,我们的思路是如果数据库已经存在就不要创建,如果不存在就创建,这时我们可以加一个可选项 if not exists,此时不会报错

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

再次执行查询,我们可以按键盘上的上下键,来查询我们之前用到的SQL语句,之后观察数据库,没有任何变化,如下图:

再次使用SQL语句去创建一个test数据库(运用可选项)此时能不能再创建?可以,因为这个数据库不存在

设置字符集案例:创建一个itczh数据库,并且指定字符集utf8mb4
  • 在mysql中如果设置字符集不建议设置为utf8,因为utf8字符集它的存储的长度是3个字节,比如说一个汉字就3个字节,那在数据库中有些特殊字符是4个字节的,所以这个时候我们推荐使用utf8mb4,它是支持4个字节
  • 此时这个数据库itczh,指定了默认字符集为utf8mb4

  • ?删除
drop database [ if exists ] 数据库名 ;

假设此时数据库itczh已经不存在了,我们去进行一个删除 ,不去增加可选项,发现会报错,于是增加可选项去处理

结论不再复述,此可选项与上诉创建数据库可选项的功能性类似,由此可以推出:如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。

案例:删除数据库itczh

此时发现itczh数据库已经不存在了

  • 使用:切换数据库

  • 我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。
use 数据库名 ;

比如,切换到pythondog数据,执行如下SQL

use pythondog ;

?此时代表,我已经切换到pythondog这个数据库了

  • 查询自己在哪个数据库:那假设我已经执行了很多SQL语句了,我怎么知道我当前处在哪个数据库呢?

此时可以使用

select database ;

直接这么执行是错误的,记得在database后面加括号

select database() ;

?

文章来源:https://blog.csdn.net/qq_69178067/article/details/135413642
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。