目录
2.创建数据库(create database[if not exists] 数据库名;)
4.删除数据库(drop database [if exists] 数据库名;)
1.创建表(create table 表名(列名 类型 ,列名 类型...);)
3.删除表(drop table[if not exists] 表名;)
SHOW DATABASES; / show databases;
首先要说明的是MySQL 大小写字母皆可

create database[if not exists] 数据库名;
if not exists 加不加都可,但若数据库名重复
不加 if not exists ——报错

加 if not exists 后——警告

系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci,但是MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符。MySQL真正的使用的是utf8mb4
可用创建方式:
create database if not exists 数据库名 character set utf8;
后续可以插入中文

use 数据库名;
在对表进行操作前需要先使用库
drop database [if exists] 数据库名字;
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除,一不小心,损失百万
1.bit(M)——boolean M指定位数,默认为1字节 ,M范围1~64,存储数值范围0~2^M-1
2.tinyint——byte 1字节
3.smallint——short 2字节
4.int——integer 4字节
5.bigint——long 8字节
6.float(M,D)——float 4字节 M指定长度,D指定小数位数,会发生精确丢失
7.double(M,D)——double 8字节
8.decimal(M,D)——bigdecimal M/D最大值+2字节 M指定长度,D指定小数位数,精确数值
9.numeric(M,D)——bigdecimal M/D最大值+2字节 M指定长度,D指定小数位数,精确数值
注意:
①数值类型可以指定为无符号(unsigned),表示不取负数,但不推荐这样使用
②对于放不下的数据,一开始就使用bigint类型
1.varchar——string 可变长度字符串
2.text——String 长文本文件
3.mediumtext——string 中等长度文本数据
4.blob——byte 二进制形式的长文本数据
对于一个不清楚类型的文件,可以尝试使用记事本来打开,若出现内容可以看懂,有规律,即是文本文件,反之,为二进制文件
1.datetime——java.util.Date 举例 '2022-08-01 12:00:00'
2.timestamp——java.util.Date
操作表之前,需要先使用该数据库
use 数据名;
create table [if not exists] 表名 (列名 类型 comment '注释' ,列名 类型 /*注释*/, ...);
注释:括号内 comment' 注释' , /* 注释*/
括号外 -- 注意“--”后的空格
注意,1.如果列较多,建议分行来写
2.可以先在其他编辑器编辑,再粘贴
create table 表名 (
id int,
name varchar(20) comment '姓名',
password varchar(50) comment '密码',
age int ,
sex varchar(1),
birthday timestamp,
amout decimal(13,2),
resume text
);
注意:
1.varchar后面的数字不能省略
2.末尾的 ); 单独占最后一行

show tables;

desc 表名; (desc "描述")

解释:
1.11是描述的打印格式,可以省略
2.Field字段
3.20是最多存20个字符,不可省略
drop table[if not exists] 表名;
同样危险
insert into 表名 values (值,值,...);
insert into 表名 values ( 值,值 ,...),( 值,值 ,...),( 值,值 ,...);
insert into 表名 (列名,列名,...) values ( 值,值 ,...);
注意列-值对应

1.直接在建立数据库时加上utf8
create database 数据库名 character set utf8;
2.直接在配置文件时把数据库默认字符集设为utf8,具体操作如下:
select * from 表名;
注意:这个操作是一个危险操作,如果当前存储的数据量大,很容易导致读磁盘和写网卡的时间非常长,甚至于把磁盘带宽和网卡带宽都吃满,通俗来讲,就是变卡变死机
显示表与查表不同


select 列名,列名... from 表名;

select 列名 + 列名... from 表名;
计算结果以结果正确性为先,无关整形,浮点型,注意点是数字不能加字符

select 表达式 as 别名 from 表名;

select distinct 列名 from 表名;

1.以某列为基准进行升序排序
select * from 表名 order by 列名;

2.以某列为基准进行降序排序
select * from 表名 order by 列名 desc;

3.以多列为基准进行排序,按顺序依次排序,如果首列出现相同项,再按第二个列排
select * from 表名 order by 列名,列名;

select * from 表名 where 列名 运算表达式;


优先级and > or > not
举几个栗子:
< , > , >= , <= . = , !=

表达式:

in:

Like:

1. like + '%孙' 匹配以孙结尾的 2.'孙%'匹配以孙开头的 3.'%孙%匹配以孙结尾的'
select * from 表名 limit N; 查询前N条记录
select * from 表名 limit N offset M;从第M条开始,查询N条记录

update 表名 set 列名=值 [where 条件] [ order by 列名 ] [ limit N];
危险操作

delete from 表名 where 条件;
和drop不一样,delete只是删除数据,但是drop连表带数据删除
