SQL语句

简介: SQL语句

SQL通用语法

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

SQL语句可以使用空格/缩进来增强语句的可读性。(空格与缩进个数没有限制)

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

注释:

单行注释:-- 注释内容    或    #

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


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数据库中自带的数据库)

查询当前数据库:

select database() ;

括号不能漏掉

2.创建

创建数据库

注意!我们可以去增加【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



3.删除

drop database [ if exists ] 数据库名 ;

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


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

案例:删除数据库itczh

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

4.使用:切换数据库

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

use 数据库名 ;

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

use pythondog ;

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

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


此时可以使用

select database ;

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

select database() ;

执行如下:


相关文章
|
29天前
|
SQL 数据库 索引
常见的SQL语句
【10月更文挑战第26天】常见的SQL语句
15 2
关于SQL语句,只有这么多了3
关于SQL语句,只有这么多了
|
SQL 数据库
基本的sql语句
基本的sql语句
104 0
|
SQL 关系型数据库 MySQL
SQL常用语句
SQL常用语句
150 0
SQL常用语句
|
SQL 关系型数据库 MySQL
|
SQL 关系型数据库 MySQL
一条 SQL 语句引发的思考
一条 SQL 语句引发的思考
一条 SQL 语句引发的思考