MySQL常用操作1


1. DML相关的操作: 数据库的操作语言
    作用 : 对表中数据的增  删  改
    关键词: insert  delete  update


    1.1: 如何添加数据操作:insert
        格式: 
            格式一: 
                insert into 表 (字段1,字段2,字段3....) values (值1, 值2,值3....);

            格式二:
                insert into 表 values(值1, 值2,值3....);

        注意事项:
            1) 值与字段必须对应,个数相同,类型相同
                对于格式一 , 字段1 对应的值 就是 值1  , 字段2 对应值就是值2 以此类推....
                对于格式2: 要求值的个数一定要与对应表中字段个数是一致的, 并且顺序也要一致
            2) 值的数据大小必须在字段的长度范围内
            3) 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号) 
            4) 如果要插入空值,可以不写字段,或者插入 null。        
                注意: 对于格式2来讲 只能使用null , 不能不写对应字段

        进行操作案例: 
            -- 1_在 bigData_day03 库中 创建一个 category 分类表
            use bigData_day03;
            create table category (

              id int primary key,
              name  varchar(20)
            );
            /*
            2) 往这个表中插入一下内容: 分别用两种格式
                            1  服装
                            2  电子产品
                            3  化妆品
                            4  图书
                            5  null
                            6  null
                        注意: null 是关键词 不用添加 单引号  表示啥也没有
             */
            insert into category (id,name) values(1,'服装');
            insert into category (name,id) values ('电子产品',2);
            insert into category values(3,'化妆品');
            insert into category values(4,'图书'); -- 报错的原因因为 id是int类型的 而图书是字符串, 还有没有可能出现其他问题呢?
            insert into category(id,name) values(5,null);
             -- 或者
            insert into category(id) values(5);

            insert into category values (6,null);
            -- 教大家一个 DQL 语句查询全部数据
            select * from  category;
    
    1.2: 更新(修改)数据: update
        语法格式:
            # 此种格式用于更新某一列或者某一列中全部数据
            update 表名 set 修改字段名称1 = 具体修改的值1 ,修改字段名称1 = 具体修改的值1 ...;
            # 此种格式用于根据具体条件, 将对应符合条件的数据的对应某一列或者某几列字段的值进行修改
            update 表名 set 修改字段名称1 = 具体修改的值1 ,修改字段名称1 = 具体修改的值1 ... where 条件;    
        
        注意事项:
            1) 列名的类型与修改的值要一致.
            2) 修改值得时候不能超过最大长度.
            3) 除了数值类型外,其它的字段类型的值必须使用引号引起

        案例操作:
            -- 需求1: 请将 id为 5 的数据 中的name值 修改为 家用电器 : 有没有条件呢 ? 有的 条件都是 id为5
            update category set name = '家用电器' where id = 5;
            -- 需求2: 请将 id为 6的数据中name值 修改为 厨房用品
            update  category set name = '厨房用户' where id = 6;
            -- 需求3: 请将 name字段的值统一修改为  电子产品
            update category set name = '电子产品';

    1.3: 删除数据操作: delete
        语法格式: 
            格式1:  如果没有条件, 全部都删除, 如果有条件, 就删除符合条件数据
                delete from 表名 [where 条件] ; 

            格式2: 清空表
                truncate table 表名 ;

        注意: 如果是清空表, 第一种第二种都可以, 如果要根据条件来删除数据, 必须使用格式1

        案例操作:
            -- 需求1: 删除 id为 6的数据
            delete  from  category where id = 6;

            -- 需求2: 删除全部数据 :
            delete from  category ;
            -- 或者
            truncate table category;

        关于 使用delete 和 truncate 再删除全部数据的区别:  笔试题中可能会问到
            1) delete 和 truncate删除的方式不同:
                    delete是将数据一条一条的删除的
                    truncate是将表之间drop掉, 然后重新建立一个新的表
            2) 所属的SQL分类也不同:
                delete属于 DML操作  而truncate 数据 DCL操作
            3) 关于自增长列不同:
                delete不会清空自增长列已经自增过的内容, 而truncate会清空, 让自动增长进行重新初始化

2. SQL的约束: 
    2.1: 主键约束: 
        关键词: primary key  
        特点: 唯一 非空
        注意事项:
            每个表都应该都一个主键, 并且每个表只能有一个主键

        如何添加主键约束: 
            方式一 : 创建表的时候, 直接在字段的约束的区域内, 标识对应约束即可  (比较常用的一种)
            create table Persons1(
                 Id_P int PRIMARY KEY,
                 LastName varchar(255)     ,
                 FirstName varchar(255),
                 Address varchar(255),
                 City varchar(255)
            );

            方式二: 创建表的时候, 在字段的最后, 使用constraint来定义约束内容 (高大上写法)
            格式: [constraint 约束的名称] PRIMARY KEY (字段列表)
                
            关键字constraint可以省略,如果需要为主键命名,constraint不能省略,主键名称一般没用。
            字段列表需要使用小括号括住,如果有多字段需要使用逗号分隔。声明两个以上字段为主键,我们称为联合主键。    
            
            CREATE TABLE Persons2(
                  FirstName varchar(255),
                  LastName  varchar(255),
                  Address   varchar(255),
                  City      varchar(255),
                  constraint pk_PersonID PRIMARY KEY (FirstName, LastName)
            );

            需求: 创建一个表 people   , 字段有  firstName 和 lastName 和 age字段
                其中 firstName 和 lastName为联合主键

            操作代码:
                create table people (
                  firstName varchar(20),
                  lastName varchar(20),
                  age int ,
                  primary key (firstName,lastName)
                );

            方式三: 使用alter 来进行添加, 主要是用于在创建表以后来添加操作
                alter table 表名 add primary key (字段列表)

        如何删除主键约束: 
            alter table 表名 drop primary key ;

            思考: 请问为什么在删除主键约束的时候, 不需要指定对应字段呢, 主键的字段有可能有多个呢?
                因为主键约束在整个表中只有一个


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值