前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库update语法-MySQL数据库 | SQL语句详解

数据库update语法-MySQL数据库 | SQL语句详解

作者头像
囍楽云
发布2022-12-29 12:59:51
1.9K0
发布2022-12-29 12:59:51
举报
文章被收录于专栏:囍楽云博客

MySQL数据库基本操作——DDL

  DDL解释:

  1.数据库的常用操作

  2.表结构的常用操作

  3.修改表结构

  数据库的常用操作 查看所有的数据库show ;

  创建数据库

  create if not exists 表名;

  切换(选择要操作的)数据库

  use 表名;

  删除数据库

  drop if exists 数据库

  修改数据库编码

  alter 表名 set utf8;

  表结构的常用操作

   use mydb3;

代码语言:javascript
复制
    create table if not exists user01(
        id int,
        name varchar(20),
        address varchar(20)
    );

  修改表结构 表结构的常用操作 查看当前数据库所有的表show tables;

  查看指定表的创建语句

  show create table 表名;

  查看表结构

  desc 表名;

  删除表

  drop table ;

  修改表结构格式 修改表添加列

   -- 语法:alter table 表名 add 列名 类型(长度)约束;

代码语言:javascript
复制
    alter table mydb1 add id varchar(20);

  修改列名和类型

   -- 语法:alter table 表名 change 旧列名 新列名 类型(长度)约束;

代码语言:javascript
复制
    alter table user01 change id cid varchar(30);

  修改表删除列

   -- 语法:alter table 表名 drop 列名;

代码语言:javascript
复制
    alter table mydb1 drop id;

  修改表名

   -- 语法:rename table 表名 to 新表名;

代码语言:javascript
复制
    rename table mydb1 to mydb3;

  MySQL数据库基本操作——DML

  DML解释:

  1.插入insert

  2.删除delete

  3.更新update

  数据插入(insert) 1.向表中插入某些insert into 表(列1数据库update语法,列2数据库update语法,列3…) value(值1,值1,值1…);

  2.向表中插入所有列

  insert into 表 value(值1,值1,值1…);

   insert into stu(sid,name,gender,age,birth,address,score)

代码语言:javascript
复制
                    values(001,"魏硕","男",18,"2002-11-25","武汉",100),
                    (002,"魏佳蕾","女",10,"2002-10-21","武汉",80),
                    (003,"魏佳蓓","女",10,"2002-10-21","武汉",70);
                    
    insert into stu values(004,"魏志刚","男",40,"2002-10-21","武汉",80);

  数据修改(update) update 表名 set 字段名=值,字段名=值…;

  update 表名 set 字段名=值,字段名=值… where 条件;

   update stu set address = '武汉';

代码语言:javascript
复制
    update stu set address = '北京' where sid = 001;                        
    update stu set address = '上海' where sid >= 5;                
    update stu set address = 'wuhan' , score = 0 where sid = 10;

  数据删除(delete)

  delete 只删除内容 类似于drop table 删除表

  delete from 表名 where 条件;

   table 表名 或者 表名

   delete from stu where sid = 11;

代码语言:javascript
复制
    delete from stu;
    truncate table stu;
    truncate stu;

  MySQL约束

  1.主键约束( key)——PK

  2.自增长约束()

  3.非空约束(not null)

  4.唯一约束(unique)

  5.默认约束()

  6.零填充约束()

  7.外键约束( key)——FK

  MySQL约束——非空约束(not null) 非空约束 方式一:创建表时指定

   语法: not null;

   create table user04(

代码语言:javascript
复制
        id int,
        name varchar(20) not null,
        address varchar(20) not null
    );
    insert into user04(id,name,address) values(1001,'魏硕','武汉');
    insert into user04(id,name,address) values(1001,null,null);
    insert into user04(id,name,address) values(1001,'','');

  方式二:创建表之后指定

   语法:alter table 表名 modify 字段 not null;

   use mydb3;

代码语言:javascript
复制
    create table user05(
        id int,
        name varchar(20) not null,
        address varchar(20) not null
    
    );
    alter table user05 modify name varchar(20) not null;
    alter table user05 modify address varchar(20) not null;
    desc user05;    -- 查看表结构
    insert into user05(id,name,address) values(1001,'魏硕','武汉');
    insert into user05(id,name,address) values(1001,null,null);
    insert into user05(id,name,address) values(1001,'','');

  删除非空约束

   语法:alter table 表名 modify 字段 类型

   alter table user05 modify name varchar(20);

代码语言:javascript
复制
    alter table user05 modify address varchar(20);

  MySQL约束——零填充约束() 零填充约束

   use mydb3;

代码语言:javascript
复制
    create table user10 (
        id int zerofill,
        name varchar(20)
    );
    insert into user10 values(123,'张三');
    insert into user10 values(3,'李四');

  删除零填充约束

   alter table user10 modify id int;

  MySQL约束——默认约束() 默认约束 方式一: ;

   create table user08(

代码语言:javascript
复制
        id int,
        name varchar(20),
        address varchar(20) default '北京'   -- 指定默认约束
    );
    insert into user08(id,name,address) values(1001,'魏硕',null);
    insert into user08(id,name) values(1001,'魏硕');
    delete from user08 where id = 1001;

  方式二:alter table 表名 modify 列名 类型 默认值;

   create table user09(

代码语言:javascript
复制
        id int,
        name varchar(20),
        address varchar(20)
    );
    alter table user09 modify address varchar(20) default '武汉';
    insert into user09(id,name,address) values(1001,'魏硕',null);
    insert into user09(id,name) values(1001,'魏硕');
    delete from user09 where id = 1001;

  删除默认约束 语法:alter table modify 列名 类型 null;

   alter table user09 modify address varchar(20) default null;

  MySQL约束——唯一约束(unique) 唯一约束 方式一: unique

   create table user06(

代码语言:javascript
复制
        id int,
        name varchar(20),
        phone_number varchar(20) unique
    );
    insert into user06 values(1001,'张三1',138);
    insert into user06 values(1002,'张三2',139);
    insert into user06 values(1002,'张三2',139); //error
    insert into user06 values(1001,'张三3',NULL);
    insert into user06 values(1002,'张三4',NULL);

  方式二:alter table 表名 add 约束名 unique(列);

   create table user07(

代码语言:javascript
复制
    id int,
    name varchar(20),
    phone_number varchar(20)
    );
        
    alter table user07 add constraint unique_pn unique(phone_number);
    insert into user07 values(1001,'张三1',138);
    insert into user07 values(1002,'张三2',139);
    insert into user07 values(1002,'张三2',139); //error
    insert into user07 values(1001,'张三3',NULL);
    insert into user07 values(1002,'张三4',NULL);

  删除唯一约束 格式:alter table drop index

   -- 方式一:

代码语言:javascript
复制
    alter table user06 drop index phone_number;
    -- 方式二:
    alter table user07 drop index unique_pn;

  MySQL约束——主键约束( key)——PK

  主键约束:

  1.添加单列主键

  2.添加多列联合主键

  3.删除主键

  添加单列主键

   -- (方式一)

代码语言:javascript
复制
    -- 语法:
    create table 表名(
        ...
         primary sky
        ...
    );

   -- 案例

代码语言:javascript
复制
    create table emp1(
        eid int primary key,
        name varchar(20),
        salary double
    );

   -- (方式二)

代码语言:javascript
复制
    -- 语法:
    create table 表名(
        ...
        [constraint ] primary sky [字段名]
    );

   create table emp2(

代码语言:javascript
复制
        eid int,
        name varchar(20),
        salary double,
        constraint pk1 primary key(eid)      -- constraint pk1 可省略
    );

  添加多列联合主键

   -- 语法:

代码语言:javascript
复制
    create table 表名(
        ...
        primary key(字段1,字段2,...,字段n)
    );

   -- 案例

代码语言:javascript
复制
    create table emp3(
        eid int,
        name varchar(20),
        salary double,
        constraint pk1 primary key(eid,name)      -- constraint pk1 可省略
    );

  通过修改表结构添加主键

   -- 语法:

代码语言:javascript
复制
    create table 表名(
        ...
    );
    alter table  add primary key (字段列表);

   -- 案例

代码语言:javascript
复制
    create table emp4(
        eid int,
        name varchar(20),
        salary double
    
    );
    alter table emp4 add primary key (eid,name);

  删除主键

  单列主键/多列主键 都可以删除

  alter table drop key;

   -- 单列主键

代码语言:javascript
复制
    alter table emp4 drop primary key;
    -- 多列主键
    alter table emp5 drop primary key;

  MySQL约束——自增长约束() 自增长约束

   -- 语法:

代码语言:javascript
复制
    字段名 数据类型 auto_increment

   -- 自增长约束

代码语言:javascript
复制
    create table user01(
        id int primary key auto_increment,
        name varchar(20)
    );

  方式一:创建表时指定

   use mydb3;

代码语言:javascript
复制
    create table user02(
        id int primary key auto_increment,
        name varchar(20)
    )auto_increment = 100;
    insert into user02 value(NULL,'魏硕');
    insert into user02 value(NULL,'嘻嘻');

  方式二:创建表之后指定

   use mydb3;

代码语言:javascript
复制
    create table user03(
        id int primary key auto_increment,
        name varchar(20)
    );
    alter table user03 auto_increment = 1001;
    insert into user03 value(NULL,'七七');
    insert into user03 value(NULL,'六六');

  删除自增长约束

   -- delete和truncate在删除后自增列的变化

代码语言:javascript
复制
                -- delete数据之后自动增长从断点开始
                -- truncate数据之后自动增长从默认起始值开始

   delete from user03;

代码语言:javascript
复制
    truncate user03;

本文共 798 个字数,平均阅读时长 ≈ 2分钟

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档