目录
操作须知
数据类型
1 DDL
1.1 操作库
1.2 操作表
1.3 操作字段(ALTER TABLE 表名)
2 DML
3 DQL(见下章)
※ MySQL在windows环境不区分大小写,但在Linux环境严格区分大小写
※ 不同的数据库可能存在同名的表,可以给表前加"数据库前缀" //例:aaa.user表示aaa数据库下的user表,bbb.user表示bbb数据库下的user表
※ 如果表名或字段名是关键字,要写在反引号``中
※ 字段的值(除了数值类型),必须写在单引号''中
※ Navicat工具中使用sql语句对表结构修改后,表信息没有及时更新:右键 >> 设计表 >> (不做任何操作)保存
数据类型 | 对应JAVA类型 | 说明 |
varchar(n) | String | n:字符串最大长度 //字符多长,就占多大空间 |
char(n) | String | n:字符串最大长度 //固定占据n个字符空间 |
data | Date | 日期类型(yyyy-MM-dd) 在单引号中写入:'1994-06-12'或'1994.06.12'或'19940612' |
datatime | Date | 日期时间类型(yyyy-MM-dd HH:mm:ss) datetime(3)精确到毫秒; datetime(6)精确到微秒 //MySQL5.6.4以上版本支持 |
tinyint | byte,Byte | tinyint(1)取值为0~9,且0表示false,1表示true 如果以boolean接收数据库数据,有false/true2种对应值 如果以Boolean接收数据库数据,有null/false/true3中对应值 |
int | int,Integer | |
bigint | long,Long | |
double(m,n) | double,Double | m:总长度最大值 n:小数位(固定,不够用0填充) |
decimal(m,n) | java.math.BigDecimal | m:总长度最大值 n:小数位(固定,不够用0填充) new BigDecimal(浮点数) //不推荐,得到的小数"带尾巴" new BigDecimal("字符串"/整数) //得到精确的小数 加,减,乘:bd1.add/subtract/multiply(bd2) 除:bd1.divide(bd2,保留小数,BigDecimal.AAA) .ROUND_HALF_UP (去除正负号)四舍五入 .ROUND_UP (去除正负号)舍弃位"非0进1" .ROUND_DOWN (去除正负号)舍弃位"不会进位" 小数点处理:bd1.setScale(保留小数,BigDecimal.AAA) //同上 |
DDL(Data Definition Languages数据定义语言),操作库、操作表
创建库:CREATE DATABASE 库名
删除库:DROP DATABASE 库名
创建表:CREATE TABLE 表名(字段1 类型,字段2 类型......)
删除表:DROP TABLE 表名
修改表名:RENAME TABLE 旧表名 TO 新表名
添加字段:~ ADD 新字段 类型 约束 COMMENT '备注' AFTER 字段1
//新字段位置(不写(最后),FIRST(最前),AFTER(某字段之后))
删除字段:~ DROP 字段
修改字段:~ CHANGE 旧字段 新字段 类型 约束
DML(Data Manipulation Language数据操纵语言),操作记录
插入记录:INSERT INTO 表名 (字段1,字段2......) VALUES ('值1','值2'......),('值3','值4'......)......
更新记录:UPDATE 表名 SET 字段1='值1',字段2='值2'......WHERE 字段='值'
无就插入,有就更新:INSERT INTO 表名(字段1,字段2......)VALUES('值1','值2'......)ON DUPLICATE KEY UPDATE 字段x='值x',字段y='值y'......
//依次(从左往右)以'值1','值2'...中的UNIQUE字段去单条件查询
//如果有记录,对于查询到的所有这些记录进行UPDATE(值x,值y......)
//如果都无记录,就INSERT(值1,值2)
先批量删除,再插入:REPLACE INTO 表名(字段1,字段2......)VALUES('值1','值2'......)
//依次(从左往右)以'值1','值2'...中的UNIQUE字段去单条件查询,将查询到的所有记录都删除,插入一条全新记录
删除记录:DELETE FROM 表名 WHERE 字段='值'
DELETE FROM 表名 //删除表,自增数据保留
TRUNCATE TABLE 表名 //摧毁表然后新建一张同名表,自增从1开始
DQL(Data Query Language数据查询语言),查询数据