写在前面
本篇博客是有关于MySQL的一些基本操作,若有错误烦请私信我,将会加以改正.
1.数据库的操作
1.1创建数据库
create database 数据库名
注意:
- create,database...相当于“关键字”
- SQL 的关键字 不区分大小写的
- 创建的数据库的名字,可以随便起的,但是不能重复!!
- 单词之间至少有一个空格
- 在命令行中输入的必须以";"结尾
创建成功
在这里[]中是可选项
IF NOT EXISTS :如果不存在才创建,如果存在,则什么都不干、
例:此时在我的MySQL服务器中已经存在名为java108的数据库了,如果再次创建一个名为java108的数据库则MySQL会报一个错误
那么如果我们加入 if not exists 则不会报错
这个功能主要是在批量执行SQL,把很多SQL写到一个文件中,如果中间有一个SQL报错了,那么执行就会停止
为了不影响后面SQL的执行,才会使用 IF NOT EXISTS那么它是什么呢?(设置一个字符集)
在创建一个数据库的同时指定数据库的字符集
字符集:就是针对汉字进行编码
对于汉字我们主要有两套常用的编码方式
1.gbk:VS的编码是跟随系统的,而windowns简体中文版是gbk编码的,gbk编码一个汉字2个字节;
2.utf8:这个是我们最常用的编码方式,一个汉字3个字节;
目前主流的是utf8,主要是这个东西可以表示更多的内容(除了汉字之外,其他国家的文字符号也可以表示,范围更广)
为什么要在MySQL中手动设置字符集?
答:在MySQL当中默认字符集是拉丁文,是没办法表示中文的.
话又说回来,在这里手动设置字符集是非常关键的,如果我们后续需要添加中文,那么如果不是utf8/gbk则会出现乱码
当然了,如果你觉得character set太长你可以用他的简写:charset
当然了在MySQL当中还有可能见到:utf8mb4
这又是什么东西呢?
其实MySQL的utf8是残缺的,主要残缺了一些表情,而utf8mb4是后来补充上去的完整版
1.2查看所有数据库
show databases;
可能有多个数据库,因此使用 s 后缀.
红色方框所框起来的就是我们刚刚创建的数据库,当然了方框以外的是属于系统自带的数据库(不要乱改!)
1.3选中指定数据库
use 数据库名;
一旦选中了某个指定的数据库,后续操作就都是针对该数据库展开
1.4删除数据库
drop database 数据库名;
删除成功
但是需要注意的是,这个操作是非常危险的!!
案例:20*500,虽然说20分钟后数据回复了,但是在这20分钟内,每一个客户信息都让公司损失了1万,然而他删了187个,在这187个当中有两个大客户,总的来说:上海一套房。
2.表的操作
2.1创建表
create table 表名 (列名 类型,列名 类型...);
comment:是注释的意思
但是comment是在创建表的时候的一种专属的注释(不推荐使用)
SQL中若想使用注释建议使用
#
或者
--
和创建数据库类似,我们在创建表和删除表的时候也可以写入
IF EXISTS 和 IF NOT EXISTS 来防止报错
类型:MySQL本身也支持很多数据类型
数字类型
M是有效数字的长度,D是小数点后的位数
比如设定:FLOAT(3,1)
99.3√
89.1√
1.23×(小数点后两位)
100.2×(有效数字四位)
DECIMAL是可以精确表示小数的
double 和 float 是不能精确表示小数的(详情请见C_深度刨析数据在内存中的存储)
因此DECIMAL就是为了解决上述问题,但DECIMAL也为此付出了代价
1.DECIMAL的内存占用更多
2.DECIMAL的计算速度更慢
字符串类型
VARCHAR(SIZE):属于可变长的字符串
SIZE:是它的最大长度,单位是字符(不是字节!!)
例如:varchar(10)=>最多十个字,哪怕是汉字,也是十个
时间日期
TIMESTAMP:时间戳
计算机中经常表示时间的一种方式
以1970/1/1/0.00为基准,表示当前时间与基准时间的差值
但是这个类型最大的问题就是他是4个字节的,范围有限所以更建议使用DATETIME
创建表的时候要提前想好是什么类型的,以后存放的数据都要符合这个类型
注意这两个地方要有空格
2.2查看数据库中的所有表
show tables;
2.3查看指定表的表结构
desc 表名;
describe:描述
这里的11表示的是打印的时候最多占11个字符这么宽(和存储范围无关)
2.4删除表
drop table 表名;
删除表,就相当于删除表中的所有的数据,和删除数据库差不多,都是非常危险的操作
(PS:都看到这里了,不妨点个赞吧)