Study MySQL(Day02)

MySQL(Day02)

主键约束

  • 主键:用于表示数据唯一性的字段称为主键
  • 约束:就是对表字段的值添加限制条件
  • 主键约束:保证主键的值唯一并且非空
  • 格式: create table t1(id int primary key,name varchar(10)); 测试: insert into t1 values(1,'aaa'); insert into t1 values(1,'bbb'); //报错,不能重复 insert into t1 values(null,'ccc');//报错,不能为null insert into t1 values(2,'ddd');

主键约束+自增

  • 格式: create table t2(id int primary key auto_increment,name varchar(10));
  • 自增数值只增不减,从历史最大值的基础上+1
  • truncate table t2; //删除表并创建新表 自增数值清零

注释 comment

  • 格式: create table t3(id int primary key auto_increment comment '这是个主键',name varchar(10) comment '这是名字'); 查看注释内容: show create table t3;

`和单引号的区别

  • `:用于修饰表名和字段名 create tablet4(idint,name` varchar(10));
  • ':用于修饰文本

数据冗余

  • 如果表设计不合理,可能会出现大量的重复数据,这种现象称为数据冗余,通过拆分表的形式解决此问题

事务

  • 事务(transaction)是数据库中执行同一业务多条SQL语句的工作单元,事务可以保证多条SQL语句全部执行成功或全部执行失败。
  • 第二种开启事务的方式 数据库中事务默认是自动提交的:
  • 查看数据库自动提交的状态 show variables like '%autocommit%';
  • 修改自动提交的状态 0关闭 1 开启 set autocommit=0;
  • 修改李雷钱为50000 update user set money=50000 where id=1;
  • savepoint:保存回滚点 set autocommit=1; 李雷开始是50000 begin; update user set money=10000 where id=1; savepoint s1 update user set money=20000 where id=1; savepoint s2 update user set money=30000 where id=1; rollback to s1;
  • 总结事务相关指令:
  • begin开启事务
  • rollback 回滚事务
  • commit 提交事务
  • 查看自动提交状态 show variables like '%autocommit%'
  • 修改自动提交状态 set autocommit=0/1;
  • 保存回滚点 savepoint s1;
  • 回滚到回滚点 rollback to s1;

SQL分类

DDL Data Definition Language

  • 数据定义语言
  • 包括: create,alter,drop,truncate
  • 不支持事务

DML Data Manipulation Language

  • 数据操作语言
  • 包括: insert delete update select(DQL)
  • 支持事务

DQL Data Query Language

  • 数据查询语言
  • 只包括select

TCL Transaction Control Language

  • 事务控制语言
  • 包括:begin,rollback commit,savepoint xxx,rollback to xxx

DCL Data Control Language

  • 数据控制语言
  • 用于分配用户权限相关的SQL

数据类型

  1. 整数类型: int(m)对应java中的int, bigint(m)对应java中的long,m代表显示长度,需要结合 zerofill使用 create table tint(id int,age int(8) zerofill); insert into tint values(1,28); select * from t_int;
  2. 浮点数: double(m,d) m代表总长度,d代表小数长度 76.232(m=5 d=3),decimal超高精度小数,当涉及超高精度运算时使用。
  3. 字符串: char(m) 固定长度 最大255 char(10) "abc" 所占长度10,varchar(m) 可变长度 最大65535 varchar(10) "abc" 所占长度3,可变长度更节省空间,固定长度执行效率略高
  4. varchar最大65535 但是建议保存255以内的长度,超过255使用text
  5. text可变长度 最大65535,
  6. 日期:
  7. data:只能保存年月日
  8. time:只能保存时分秒
  9. datetime:保存年月日时分秒,最大值9999-12-31,默认值null
  10. timestamp:保存年月日时分秒,最大值2038-1-19,默认值为当前时间

create table t_date(d1 date,d2 time,d3 datetime,d4 timestamp);

insert into t_date values('2018-11-15','16:58:33',null,null);

insert into t_date values ('2018-11-15','16:58:33','2018-10-18 12:30:18',null);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值