MySQL基础回顾01

SQL

​         结构化查询语言,所有关系型数据库的操作标准

分类

        DQL: 数据查询语言

                ​ 用于数据的查询,经常select子句绑定where条件子句使用

        DML: 数据操作语言

                ​ 添加,修改|删除表中的数据

        添加数据:
​          insert into 表名(字段名,字段名,…)values(要赋的值,…);

​          insert into 表名(字段名1,字段名2,…,字段名n) values(值1,值2,…,值n);

​          当要给所有字段都赋值的时候,(字段名,字段名,…)可以省略不写

​          insert into 表名 values(值1,值2,…,值n);

​          当要给部分字段都赋值的时候,(字段名,字段名,…)可以必须指明哪些字段

​          当要添加多条数据时,可以在values后面用逗号","隔开

          insert into 表名 values(值1,值2,…,值n),(值1,值2,…,值n),(值1,值2,…,值n);
        ​ 修改数据:
​ update 表名 set 字段名=新值;

​ 一般情况下不会使用上面的修改语句,因为上面的修改语句默认会修改当前字段所有的数据,一般要在后面加上where子句。

 update 表名 set 字段名=新值,字段名=新值… where 条件;
        删除数据:
delete from 表名;

​ 一般情况下不会使用上面的删除语句,因为上面的删除语句默认会删除当前表中所有的数据,一般要在后面加上where子句。

​ delete from 表名 where 条件;

​ delete和truncate都可以删除数据,区别是:

​ 1.delete为DML操作数据语言;truncate为DDL数据定义语言(因为涉及到删除表格)

​ 2.delete操作是将表中的记录一条一条删除直到删除完;truncate操作则是将旧表的结构保留并进行新建,所有状态都相当于新表。truncate效率会更高。

​ 3.delete操作可以回滚;truncate操作可能会导致隐式提交,因此不能回滚

​ 4.delete操作执行成功后会在底部运行结果返回已删除的行数;truncate操作不会返回。

​ 5.delete操作删除表中记录后,再次向表中添加新记录时,对于设置有自增约束字段的值会从删除前表中该字段的最大值加1开始自增;truncate 操作会重新从1开始自增。

​ ​

DDL:数据定义语言

​ 操作数据库(库),数据库表 (表) ,识图,索引…

​         创建库
    create database 库名;

​         删除库
    drop database 库名;

​         选择库
   use 库名;
​         创建表
​ create table 表名(
​     字段名 字段类型,
​     …
​ )

​         删除表
drop table 表名;

​         操作表
 修改表名
​ rename table 旧表名 to 新表名;
​ 修改字段类型 modify
​ alter table 表名 modify 字段名 新字段类型;
​ 修改字段名称
​ alter table 表名 change 旧字段名 新字段名 新字段类型;
​ 添加字段
​ alter table 表名 add 字段名 字段类型; – 添加到末尾
​ alter table 表名 add 字段名 字段类型 first; – 添加到第一个位置
​ alter table 表名 add 字段名 字段类型 after 指定字段名; – 添加到指定字段名的后面
​ 查看所有表
​ show tables;
​ 查看指定表的层级结构
​ desc 表名;
​ 查看建表语句
​ show create table 表名;

数据控制语言 DCL

        DCL用来授予或回收访问数据库的权限

        主要包括:

                GRANT: 授予用户权限
                REVOKE: 回收授予的权限 。

事务控制语言 TCL

        TCL用于数据库的事务管理

        主要包括:

                START TRANSACTION: 开启事务
                COMMIT: 提交事务
                ROLLBACK: 回滚事务

SQL中常见的数据类型

​ 整型

        ​ int(长度限制):

                ​ 长度限制可以指定也可以不指定

​                 指定了长度限制,超了指定的限制,自动扩充

​ 浮点类型

​         double(m,n):

                ​ 长度限制需要指定

​                 指定了长度限制,不可以超过指定的限制

​                 m是整体长度

​                 n是小数点后的长度

​ 字符型

​         char(长度限制):

​                 长度限制需要指定

​                 指定了长度限制,不可以超过指定的限制

​                 直接分配指定的空间(长度不可变)

        ​ varchar(长度限制):

​                 长度限制需要指定

​                 指定了长度限制,不可以超过指定的限制

​                 根据内容动态分配空间(长度可变)

​ 日期类

        ​ time:‘HH:MM:SS’

        ​ date:‘YYYY-MM-DD’

​         datetime:日期+时间 ‘YYYY-MM-DD HH:MM:SS’

​         timestamp:日期+时间 ‘YYYY-MM-DD HH:MM:SS’

​ TIMESTEMP类型的数据指定方式与DATETIME基本相同,两者不同之处在于以下几点:

​ 1.数据的取值范围不同,TIMESTEMP类型的取值范围更小

​ 2.如果我们对TIMESTAMP类型的字段没有明确赋值,或是被赋与了NULL值,MySQL会自动将该字段赋值为系统当前的日期与时间

约束

​         可以对表中的数据做一些限制,保证数据的正确性、完整性、有效性

​ 分类

        主键约束

                primary key  唯一+非空(不可重复且不能为空) 一个表中只能存在一个主键约束

        ​语法格式

​                 1.创建表时                 

   1)字段名 字段类型 primary key

   2)primary key(字段名)

                ​ 2.表创建后(通过DDL语句设置主键)

​     alter table 表名 primary key(字段名);

​     主键自增:数据库自动生成主键字段的值

​     主键字段 字段类型 primary key auto_increment (字段类型必须为整数类型)

​     删除主键约束:(使用DDL语句删除主键约束时,注意主键不能设置为自增)

​     alter table 表名 drop primary key; (只删除了不能重复)

​     alter table 表名 modify 主键字段 字段类型; (删除了不能为空)

​ 唯一约束

         unique 唯一(不能重复)

 ​语法格式    
 字段名 字段类型 unique

​ 设置完后当前字段中的数据不能出现重复,如果出现重复会提示 Duplicate entry ‘值’ for key
​ 非空约束

         not null 非空

 ​语法格式    ​         
 字段名 字段类型 not null

​ 设置完后当前字段中的数据不能为空,如果为空会提示 Column ‘字段名’ cannot be null
​ 默认值约束 

         default 赋予默认值

语法格式   
​   字段名 字段类型 default ‘默认值’

​   当不指定字段的具体值时,会使用默认值存储

   ​删除默认值 (就是把默认值变为null)

​   字段名 字段类型 default null
​ 检查(mysql8提供)

         check 检查取值范围是否符合要求

 ​语法格式    
字段名 字段类型 check(字段=‘值’ or 字段=‘值’)

​字段名 字段类型 check(字段>m or 字段<n)

字段名 字段类型 check(字段>m and字段<n)

设置完后当前字段中的数据必须符合check要求,如果不符合会提示 Check constraint ‘表名_chk_1’ is violated
​ 外键

        foreign key 表与表之间的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值