注:mysql是大小写不敏感的.
1.数据库基础操作(展示)
//1.展示当前数据库 show databases; //2.创建数据库 create database 数据库名; //3.使用数据库 use 数据库名; //4.删除数据库 drop database 数据库名;
2.SQL中基本类型
2.1 数值类型(整数和浮点型)
注:decimal和numeric是一样的,都是解决IEEE754的无法精确表述的痛点,以空间换精确
数据类型 | 大小 | 说明 | 对应java类型 |
BIT[ (M) ] | M指定位 数,默认 为1 |
二进制数,M范围从1到64, 存储数值范围从0到2^M-1 |
常用Boolean对应BIT,此时 默认是1位,即只能存0和1 |
TINYINT | 1字节 | Byte | |
SMALLINT | 2字节 | Short | |
INT | 4字节 | Integer | |
BIGINT | 8字节 | Long | |
FLOAT(M, D) | 4字节 | 单精度,M指定长度,D指定 小数位数。会发生精度丢失 |
Float |
DOUBLE(M, D) |
8字节 | Double | |
DECIMAL(M, D) |
M/D最大 值+2 |
双精度,M指定长度,D表示 小数点位数。精确数值 |
BigDecimal |
NUMERIC(M, D) |
M/D最大 值+2 |
和DECIMAL一样 | BigDecimal |
2.2 字符串类型
数据类型 | 大小 | 说明 | 对应java类型 |
VARCHAR (SIZE) | 0-65,535字节 | 可变长度字符串 | String |
TEXT | 0-65,535字节 | 长文本数据 | String |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | String |
BLOB | 0-65,535字节 | 二进制形式的长文本数据 | byte[] |
注:varchar较为常用
2.3 日期类型
数据类型 | 大 小 |
说明 | 对应java类型 |
DATETIME | 8 字 节 | 范围从1000到9999年,不会进行时区的 检索及转换。 |
java.util.Date、 java.sql.Timestamp |
TIMESTAMP | 4 字 节 | 范围从1970到2038年,自动检索当前时 区并进行转换。 |
java.util.Date、 java.sql.Timestamp |
3.表基本操作
注:使用表之前一定得先选中数据库
//1.查看表结构 desc 表名; //2.创建表 create table 表名(表参数); //参数是先给名称后跟类型,以逗号分隔 //3.删除表 drop table 表名; //4.注释 comment '' - # 都可以
4.数据表基础操作(增删查改)
4.1 增加
insert into 表名 values(列,列......); 这里列的数目和类型都得和表结构相匹配 //可以在表名前面显示写入你要添加哪些参数,也可以一次性添加多条数据 eg:insert into 表名 values(),(),();
4.2 查询(重点,不涉及源数据)
1.全列查询 select * from 表名 2.指定列查询 select 列名,列名 from 表名 3.查询带有表达式 针对查询的结果进行计算 运算过程都是不影响服务器硬盘上的原始数据的 4.查询的时候带上别名 select 表达式 as 别名 from 表名 5.查询的时候进行去重 select distinct 列名 from 表名 6.排序 select 列名 from 表名 order by 列名(asc ,desc ) 写到前面的列优先级高,后面的列优先级低 7.条件查询 select 列名 from 表名 where 条件;
条件:
比较运算符
运算符 | 说明 |
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL |
<=> | 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1) |
!=, <> | 不等于 |
BETWEEN a0 AND a1 |
范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1) |
IN (option, ...) | 如果是 option 中的任意一个,返回 TRUE(1) |
IS NULL | 是 NULL |
IS NOT NULL | 不是 NULL |
LIKE | 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字 符 |
逻辑运算符
运算符 | 说明 |
AND | 多个条件必须都为 TRUE(1),结果才是 TRUE(1) |
OR | 任意一个条件为 TRUE(1), 结果为 TRUE(1) |
NOT | 条件为 TRUE(1),结果为 FALSE(0) |
注:
1. WHERE条件可以使用表达式,但不能使用别名。
2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
4.3 修改
update 表名 set 列名 = 值 where 条件; 举例:update exam_result set math = 80 where name = "孙悟空"; //同时改两个列 update exam_result set math = 60,chinese = 70 where name = "曹孟德";
4.4 删除
delete from 表名 where 条件;