java开发工程师入门第二阶段(02-mysql数据库)

一.数据类型

1.1命名规则

1.字段名必须以字母开头,尽量不要使用拼音
2.长度不能超过30个字符(不同数据库,不同版本会有不同)
3.不能使用SQL的保留字,如where,order,group
4.只能使用如下字符az、AZ、0~9、$ 等
5.Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name
6.多个单词用下划线隔开,而非java语言的驼峰规

1.2字符

  • char长度固定,不足使用空格填充,最多容纳2000个字符,char(11)存储abc,占11位。查询速度极快但浪费空间
  • varchar变长字符串,最多容纳4000个字符,varchar(11)存储abc,只占3位。查询稍慢,但节省空间。Oracle为varchar2
  • 大文本: 大量文字(不推荐使用,尽量使用varchar替代)
  • 以utf8编码计算的话,一个汉字在u8下占3个字节
  • 注:不同数据库版本长度限制可能会有不同

1.3数字

  • tinyint,int整数类型
  • float,double小数类型
  • numeric(5,2) decimal(5,2)—也可以表示小数,表示总共5位,其中可以有两位小数
  • decimal和numeric表示精确的整数数字

1.4日期

  • date 包含年月日
  • time时分秒
  • datetime包含年月日和时分秒
  • timestamp时间戳,不是日期,而是从1970年1月1日到指定日期的毫秒数

二.字段约束

是通过不同的方式,给不同的字段添加不同的约束,实现不同效果
常见的字段约束: 非空约束/唯一约束/主键约束…
通常在设计表时,就已经设计好了表里一些字段的约束情况

2.1主键约束

主键约束:如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空。通常情况下,每张表都会有主键。

create table abc(
id int primary key auto_increment
);
insert into abc values(null);
insert into abc values(null);
insert into abc values(null);
select * from abc;

2.2非空约束

非空约束:如果为一个列添加了非空约束,那么这个列的值就不能为空,但可以重复。

添加非空约束,例如为password添加非空约束:

create table user(
id int primary key auto_increment,
password varchar(50) not null
);
show tables;
insert into user values(null,null);//不符合非空约束
insert into user values(null,123;);//OK

2.3唯一约束

唯一约束:如果为一个列添加了唯一约束,那么这个列的值就必须是唯一的(即不能重复),但可以为空。

添加唯一约束,例如为username添加唯一约束及非空约束:

create table test(
id int primary key auto_increment,
username varchar(50) unique--唯一约束
);
show tables;
insert into test values(null,'lisi');
insert into test values(null,'lisi');--username的值要唯一,重复会报错的
select * from test;

三.基础函数

3.1lower(数据转小写)

SELECT 'ABC',LOWER('ABC') from dept; --数据转小写

3.2upper(数据转大写)

select upper(dname) from dept --数据转大写

3.3length (数据的长度)

select length(dname) from dept --数据的长度

3.4substr(截取)

SELECT dname,SUBSTR(dname,1,3) FROM dept; --截取[1,3]

3.5concat(拼接数据)

select dname,concat(dname,'123') X from dept --拼接数据

3.6replace(字符替换)

select dname,replace(dname,'a','666') X from dept --把a字符替换成666

3.7ifnull(判断是否为null)

ifnull(判断是否为null) 

3.8round(四舍五入) & ceil( 向上取整 ) & floor( 向下取整 )

直接四舍五入取整

select comm,round(comm) from emp

四舍五入并保留一位小数

select comm,round(comm,1) from emp

ceil向上取整,floor向下取整

select comm,ceil(comm) ,floor(comm) from emp

3.9now (日期)

select now() -- 年与日 时分秒

select curdate() --年与日

select curtime() --时分秒

3.10year & month & day hour(时) minute(分) second(秒 )

select now(),hour(now()),minute(now()),second(now()) from emp ;

year()年 month()月 day()日

select now(),year(now()),month(now()),day(now()) from emp ;

3.11转义字符\

作为sql语句符号,内容中出现单撇就会乱套,进行转义即可

select 'ab'cd' -- 单引号是一个SQL语句的特殊字符

select 'ab\'cd' --数据中有单引号时,用一个\转义变成普通字符
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值