mysql数据库

分类

DML(Data Manipulation Language)数据操纵语言
如:insert,delete,update,select(插入、删除、修改、检索)简称CRUD操新增Create、查询Retrieve、修改Update、删除Delete

DDL(Data Definition Language)数据库定义语言
如:create table之类

DCL(Data Control Language)数据库控制语言
如:grant、deny、revoke等,只有管理员才有相应的权限

DQL(Data Query Language)数据库查询语言
如: select 语法

数据类型


命名规则
字段名必须以字母开头,尽量不要使用拼音
长度不能超过30个字符(不同数据库,不同版本会有不同)
不能使用SQL的保留字,如where,order,group
只能使用如下字符az、AZ、0~9、$ 等
Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name
多个单词用下划线隔开,而非java语言的驼峰规则
字符
char长度固定,不足使用空格填充,最多容纳2000个字符,char(11)存储abc,占11位。查询速度极快但浪费空间
varchar变长字符串,最多容纳4000个字符,varchar(11)存储abc,只占3位。查询稍慢,但节省空间。Oracle为varchar2
大文本: 大量文字(不推荐使用,尽量使用varchar替代)
以utf8编码计算的话,一个汉字在u8下占3个字节

注:不同数据库版本长度限制可能会有不同

数据类型

数字
tinyint,int整数类型
float,double小数类型
numeric(5,2) decimal(5,2)—也可以表示小数,表示总共5位,其中可以有两位小数
decimal和numeric表示精确的整数数字
日期
date 包含年月日
time时分秒
datetime包含年月日和时分秒
timestamp时间戳,不是日期,而是从1970年1月1日到指定日期的毫秒数
图片
blob 二进制数据,可以存放图片、声音,容量4g。早期有这样的设计。但其缺点非常明显,数据库庞大,备份缓慢,这些内容去备份多份价值不大。同时数据库迁移时过大,迁移时间过久。所以目前主流都不会直接存储这样的数据,而只存储其访问路径,文件则存放在磁盘上。

数据库

创建数据库:create database zj DEFAULT CHARACTER SET utf8;

删除数据库:drop database zj;

查看所有数据库:show databases;

使用数据库:use zj;

DROP TABLE IF EXISTS tb_user; #如果表存在则删除,慎用会丢失数据

约束

主键约束

主键的特点是唯一且不能为空。通常情况下,每张表都会有主键。

主键primary key 自增策略(auto_increment)

非空约束 not null

唯一约束 unique

sex CHAR(2) DEFAULT '男' #默认值
age INT,
CHECK (age>0 AND age<=200) 检查约束

foreign key(user_id) REFERENCES tb_user(id) 
DESC tb_user;
tb_user_address中user_id字段录入tb_user表不存在的主键值,将报错

insert into tb_door values(null,'永和大王1店',666);

Delete from tb_door where id=2;

update tb_door set tel=555 where id=1;

SELECT * FROM tb_door;

函数

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

Select * from timu order by xuhao desc; 排序 默认降序

Select count(*) from timu; 查询timu表中的总记录数

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

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

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

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

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

select ifnull(comm,10) comm from dept2 #判断,如果comm是null,用10替换

select round(ceil(xuhao)) from timu where id=1  round四舍五入,ceil向上取整,floor向下取整

select comm,round(comm) from emp 直接四舍五入取整

select comm,round(comm,1) from emp 四舍五入并保留一位小数

select comm,ceil(comm) ,floor(comm) from emp ceil向上取整,floor向下取整

SELECT UUID() 

时间

year -- month -- day--hour--minute--second

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

select curdate() --年与日

select curtime() --时分秒

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

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

select 'ab\'cd'; 转义字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值