一、DDL(数据库操作)
1.查询
查询所有数据库:show databases;
查询当前数据库:select database();
2.使用
使用数据库:use 数据库名;
3.创建
创建数据库:create database[if not exists] 数据库名;
4.删除
删除数据库:drop database[if exists] 数据库名;
注意:上述语法中的database,也可以替换成schema.
二、MySQL客户端工具
在DOS窗口使用SQL语句时,我们会发现,直接在这里们操作数据库很不方便
没有任何语句提示,容易让语句错误
操作而且很繁琐
每次关掉以后没有任何历史记录
让大家用户体验很差
所以就有了MySQL客户端工具-图形化工具
一般情况下,都是直接使用IDEA来进行操作
其实我们可以发现,使用客户端工具以后,很多都能直接看见了,我们想要展示全部的数据库,不要输入SQL语句也可以,我们在左侧是可以直接看见的,还有删除以及创建数据库等等,都可以直接操作,不用输入指令
三、表(创建、查询、修改、删除)
创建
例子
例如我要创建下面这张表时,我该怎么去创建
答案如下:
create table tb_user(
id int comment 'ID,唯一标识',
username varchar(20) comment '用户名',
name varchar(10) comment '姓名',
age int comment '年龄',
gender char(1) comment '性别'
) comment '用户表';
我们如何利用图形化界面直接添加数据呢
约束
我们在上表中注释到ID是唯一标识,但是那只是我们的注释这样写了而已,要想确保ID确实是唯一标识,我们还得使用约束。
约束:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
目的:保证数据库中数据的正确性、有效性和完整性。
现在我们来对上面的表按要求进行约束
create table tb_user(
id int primary key auto_increment comment 'ID,唯一标识',
username varchar(20) not null unique comment '用户名',
name varchar(10) not null comment '姓名',
age int comment '年龄',
gender char(1) default '男' comment '性别'
) comment '用户表';
数据类型
MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
数值类型
注意:在没有加unsigned都认为是有符号范围
例如:
在上表中age 应该用哪种数值类型呢
age tinyint unsigned(年龄没有负数)
分数score应该用哪种数值类型
score double(4,1)
字符串类型
解释说明
char(10):代表最多只能存10个字符,不足10个字符,也会占用10个字符空间,所以说char是定长的,当你用char了以后,最开始定义了多大的空间它就会占用多大的空间
varchar(10):代表最多只能存10个字符,不足10个字符,按实际长度存储,所以varvhar是不定长的,实际占用了多少空间就是多少空间
注意:char 性能高,浪费空间,varchar性能低,节省空间
日期类型
查询
-- DDL:查看表结构
show tables;
-- 查看:查看指定表结构
desc tb_emp;
-- 查看:数据库的建表语句
show create table tb_emp;
现在一般都是通过图形化工具来操作
修改
-- DDL:修改表结构
-- 修改:为表 tb_emp添加字段 qq varchar(11)
alter table tb_emp add qq varchar(11) comment 'QQ';
-- 修改:修改 tb_emp字段类型 qq varchar(13)
alter table tb_emp modify qq varchar(13) comment 'QQ';
-- 修改 tb_emp 字段名 qq 为qq_num varchar(13)
alter table tb_emp change qq qq_num varchar(13) comment '13';
-- 删除 tb_emp 的qq_num 字段
alter table tb_emp drop column qq_num;
-- 修改:将 tb_emp表名改为emp
rename table tb_emp to emp;
我们依旧可以通过图形化界面直接来操作
删除
drop table if exists tb_emp;
注意:在删除表时,表中的全部数据也会被删除