文章目录
0 SQL1 SQL通用语法2 SQL分类2.1 DDL语句2.1.1 DDL数据库操作2.1.2 DDL表操作2.1.3 DDL表操作数据类型0 SQL
SQL通用语法SQL分类DDLDMLDOLDCL1 SQL通用语法
SQL语句可以单行或多行书写,以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。注释:分为单行注释以及多行注释 单行注释:- -注释内容或 # 注释内容(MySQL特有)多行注释:/*注释内容*/2 SQL分类
SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。
2.1 DDL语句
数据定义语言,用来定义数据库对象(数据库、表、字段)。
2.1.1 DDL数据库操作
查询所有数据库show databases;
查询当前数据库select database();
假如当前执行了很多条SQL语句,我已经忘记了这是哪一个数据库,那么该怎么进行查询?使用select database();
记住,一定要加上括号(),要不然会报错
创建数据库create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
,字符集例如 U T F − 8 UTF-8 UTF−8
只要看到 Q u e r y O K Query OK QueryOK的字样,就说明数据库创建成功
再用show databases;
查看是否存在刚刚创建的数据库,如下图,数据库创建成功
假如这时候再执行create database itcast;
语句,还是否会创建成功?答案是不会的,报错了,不能创建同名的
若想不报错,并且达到已存在的数据库就不创建,不存在的数据库就创建的这种效果的话,就在之后的语句当中加一句if not exists
,总语句即为create database if not exists itcast;
如下,因为 i t c a s t itcast itcast 已经存在,但是不会报错了。
假如是创建 t e s t test test,因为 t e s t test test 不存在,所以就会多出一个新建好的 t e s t test test 数据库。
假如创建数据库的时候设置字符集,在mysql当中设置字符集不建议使用 u t f 8 utf8 utf8,因为 u t f 8 utf8 utf8 就是 3 3 3 个字节,但是一些特殊的字符有的占了 4 4 4 个字节,这个时候推荐使用utf8mb4;create database itheima default charset utf8mb4;
可以看到已经成功创建 i t h e i m a itheima itheima 数据库
删除drop database [if exists] 数据库名
,if exists
表示如果存在就删除
举个例子,将先前创建的 t e s t test test 数据库删除,drop database test;
发现test数据库已经被删除了,若再执行相同指令,就会报错,如果不想报错,就加入if exists
切换数据库use 数据库名;
比如现在要使用itcast数据库,直接use itcast;
想用哪个就切换到哪个数据库
2.1.2 DDL表操作
查询当前数据库的所有表,先要使用use 数据库名;
指定一个数据库,之后再进行查询,show tables;
当前数据库是 i t h e i m a itheima itheima,此时没有表结构存在,切换到 s y s sys sys 数据库当中,寻找表结构。
发现有很多表结构
查询表结构,desc 表名;
查询指定的建表语句,show create table 表名;
表结构的创建,
注意:[···]内为可选参数,最后一个字段后面没有逗号。
不要在系统库里执行任意的操作。
最后一个字段,不要加逗号,直接回车。
此时,一个用户表就创建完毕了。
怎么去验证呢?使用show tables;
进行验证。
看到了这个表,想知道这个表里有什么字段以及字段类型?使用desc 表名;
但是姓名性别等信息没有完全展示出来,要想完全展示出来可以使用show create table 表名;
此为创建表的 S Q L SQL SQL 语句。但是最后一句, E N G I N E ENGINE ENGINE 那里我们并未编写,以后再说,这是存储引擎,可以看到,默认的字符集是 u t f 8 m b 4 utf8mb4 utf8mb4, c o l l a t e collate collate 是默认排序规则,这两个都是默认的。