目录
案例:创建一个pythondog数据库, 使用数据库默认的字符集
设置字符集案例:创建一个itczh数据库,并且指定字符集utf8mb4
我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。
查询自己在哪个数据库:那假设我已经执行了很多SQL语句了,我怎么知道我当前处在哪个数据库呢?
- SQL语句可以单行或多行书写,以分号结尾。
- SQL语句可以使用空格/缩进来增强语句的可读性。(空格与缩进个数没有限制)
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
- 注释:
- 单行注释:-- 注释内容??? 或??? #
- 注释内容多行注释:/* 注释内容 */
分类 | 全称 | 说明 |
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表, 字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
?1.查询所有数据库:一次查询当前数据库服务器中所有数据库
show databases ;
show与databases之间有空格,这里面的空格可以有一个,也可以有多个
?(安装完mysql数据库中自带的数据库)
2.查询当前数据库:
select database() ;
创建数据库
- 注意!我们可以去增加【if not exists】(如果数据库名称不存在,我则创建,如果存在,则不执行任何操作)
- 【default charset】去指定当前数据库所使用的字符集,比如UTF8这样的字符集,当然这个也是可以省略的,因为数据库有默认的字符集
- 【collate】去指定排序规则
- 所框选的部分都是可选的
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数据库(运用可选项)此时能不能再创建?可以,因为这个数据库不存在
drop database [ if exists ] 数据库名 ;
假设此时数据库itczh已经不存在了,我们去进行一个删除 ,不去增加可选项,发现会报错,于是增加可选项去处理
结论不再复述,此可选项与上诉创建数据库可选项的功能性类似,由此可以推出:如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。
此时发现itczh数据库已经不存在了
我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。
use 数据库名 ;
比如,切换到pythondog数据,执行如下SQL:
use pythondog ;
?此时代表,我已经切换到pythondog这个数据库了
此时可以使用
select database ;
直接这么执行是错误的,记得在database后面加括号
select database() ;
?