事物、SQL分类、主键、自增、非空、注释

eclipse自定义代码块 自定义模板代码
-添加方式:window->最后一个->data management->sql Develepment->sql Editor->templates->new

    name:是简化后的代码
    description:描述
    pattern:简化前的代码
应用场景:代码比较复杂 并且频繁使用的时候可用自定义代码块
主键及自增
    每一张表通常会有一个且只有一个主键 来表示每条数据的唯一性 
    主键其实是对某一个字段的 约束 
    -主键特性:1.值不能重复 2.非空(不能赋值为null)
    -主键约束写法:    
        create table student (id int primary key,age int); 
    -主键+自增的写法:    
        create table student (id int primary key auto_increment,age int); 

非空
    -非空约束 not null        
        create table student (id int primary key auto_increment, age int not null);

表字段的注释
    -表字段的注释关键字:comment

        create table user (
            id int comment '用户的id', 
            age int comment '用户的年龄'
        );

单引号和`的区别
    单引号:用于给字符串赋值
    `:用于给表名 和 字段名赋值 可以省略不写 

表设计
    
    -在设计表字段的时候,如果某个字段有可能出现大量的重复(称为数据冗余),需要把该字段单独提出创建一张新表,把可能重复的放到新表内,在原表只需要使用新表的id即可
###练习:
    -创建员工表(emp) 和 部门表(dept) 分别在两个表中插入几条数据 id要进行主键约束并且自增 部门名称不能为null
    
        create table emp (
            id int primary key auto_increment,
            name varchar(20),
            detpId int,
            joinDate date
        );
        create table dept (
            id int primary key auto_increment,
            name varchar(20) not null
        );

        insert into dept (name) values ('财务');
        insert into dept (name) values ('市场');
        insert into emp (name,deptId) values ('小明',1),('小红',1),('小白',2),('小绿',2);


事务
    -事务是数据库中的执行单元 
    -事务能够保证事务内部的sql语句要么都成功,要么都失败 
    -mysql 客户端(终端、命令行)事务是默认提交的
    -修改mysql事务的自动提交
        -查看当前数据库是否自动提交事务
        show variables like '%autocommit%';
        -给自动提交参数赋值为0 是关闭 1是开启
        set autocommit=0;
    
    -演示事务:
    创建User表 有id 和money字段 
    插入一条数据  id=1  money=100;
    1.开启两个终端A、B,在A里面 执行
        set autocommit=0; 然后修改表中的某个数据
    此时去B终端查看,因为A开启了事务此时并没有提交,则A的操作是在内存中操作所以此时B终端看不到数据的改变,直到A执行Commit才把内存中的操作执行到数据库,如果在执行Commit之前执行了Rollback 则A窗口 会回到修改之前的状态
    begin:开启事务
    commit:提交事务
    rollback:回滚 
    

SQL分类
数据定义语言 DDL
data Definition language
 -DDL不支持事务 不能回滚
常见命令有: create alter drop 

 数据操纵语言 DML
Data Manipulation Language
    -DDL支持事务
常见命令:insert update delete
select属于DML
数据查询语言 DQL
Data Query Language
select 是最常用的命令 
面试问的最多
TCL
Trainsaction Control Language 事务控制语言
常见命令:begin commit rollback
DCL
Data Control Language 数据控制语言

数据库数据类型
1. 整数
-常用类型为 int(m) bigint(m)
-m代表显示的位数 意思是当显示的数据不足m值时在前面补0,前提是必须在字段的声明后面添加zerofill

    create table t_int (id int(6) zerofill);
注意:有个别公司把这个m 当成数据长度来用
2.浮点数
float(m,d): 不常用
double(m,d):比float精度高
decimal(m,d):比double精度还要高好多
m代表总长度,的代表小数的位数
  
当涉及到钱的时候需要用到高精度的类型 会使用decimal

3. 字符串  
varchar(20) :可变长度 执行效率低 节省空间   abc  3           :65535  但是建议不超过255如果文本超过255则建议使用text
char(20) :固定长度 执行效率高 占空间大   abc  20
            长度255
text:长度可变最大65535 


4.日期
date:只能保存日期
time:只能保存时间
datetime:保存日期+时间 如果不赋值默认值为null,最大值9999-12-31
timestamp:保存日期+时间 如果不赋值默认为当前时间,最大值2038-01-19 
因为timestamp有默认值当前时间所以平时使用较多

案例:创建表t,字段d1 date,d2 time,d3 datetime,d4 timestamp

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

        insert into t (d1,d2) values ('2018-12-21','12:22:38');
    
        insert into t values ('2018-12-21','12:22:38','9898-12-10 12:06:38','2028-05-06 11:11:11');
timestamp如果插入数据超出取值范围则报错


总结

1.主键
    primary key  唯一  不能为null
2.自增
    auto_increment 
3.非空
    not null
4.注释
    comment 
5.`'区别  `字段名和表名   '字符串的值的时候

6.事务 数据库的执行单元  

7.begin 开启事务  commit 提交事务 rollback 回滚事务
    查看当前数据库是否自动提交
    show variables like '%autocommit%';
    关闭自动提交 开启为1
    set autocommit=0;

8.SQL分类
    ddl 数据定义语言 不支持事务 create drop alter 
    dml 数据操作语言 支持事务 insert update delete select(也属于dql)
    dql 数据查询语言 select
    tcl 事务控制语言 begin commit rollback
    dcl 数据控制语言 控制权限分配
9.数据类型
    整数:int bigint 
    浮点数:float double decimal(m,d) m总长度 d小数点后面的位数 
    字符串: char(20) varchar(20) text 
        char 固定长度 text长度65535
    日期:date time datetime timestamp
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值