MySQL数据库之表相关

 

阅读目录

 

一、存储引擎介绍

存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制

https://www.cnblogs.com/baicai37/p/12827274.html

二、表介绍

表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

MySQL数据库之表相关

 

 

 id,name,qq,age称为字段,其余的,一行内容称为一条记录

三、创建表

#语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);

#注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的
4.最后一行不能有逗号

create table t6(
    id int,
    name char,
); 报错

创建表示例:

mysql> create table t1(
    -> id int,
    -> name varchar(50),
    -> password varchar(50)
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+-----------------------+
| Tables_in_userinfo_db |
+-----------------------+
| baseinfo              |
| t1                    |
+-----------------------+
2 rows in set (0.00 sec)

mysql> desc t1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(50) | YES  |     | NULL    |       |
| password | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)

mysql>

 

"""补充"""
# 宽度
    一般情况下指的是对存储数据的限制
    create table t7(name char);  默认宽度是1
    insert into t7 values(jason);
    insert into t7 values(null);  关键字NULL
        针对不同的版本会出现不同的效果
            5.6版本默认没有开启严格模式 规定只能存一个字符你给了多个字符,那么我会自动帮你截取
            5.7版本及以上或者开启了严格模式 那么规定只能存几个 就不能超,一旦超出范围立刻报错 Data too long for ....
"""严格模式到底开不开呢?"""
MySQL5.7之后的版本默认都是开启严格模式的
使用数据库的准则:
    能尽量少的让数据库干活就尽量少 不要给数据库增加额外的压力

# 约束条件 null  not null不能插入null
create table t8(id int,name char not null);

"""
宽度和约束条件到底是什么关系
    宽度是用来限制数据的存储
    约束条件是在宽度的基础之上增加的额外的约束
"""

 

四、严格模式

# 如何查看严格模式
show variables like "%mode";
也可以使用:
select @@sql_mode;

模糊匹配/查询
    关键字 like
        %:匹配任意多个字符
        _:匹配任意单个字符

# 修改严格模式
    set session  只在当前窗口有效
    set global   全局有效
    
   #启用严格模式    #NO_ENGINE_SUBSTITUTION非严格模式
    set global sql_mode = STRICT_TRANS_TABLES;
    
    修改完之后 重新进入服务端即可

五、数据类型以及枚举和集合用法

https://www.cnblogs.com/baicai37/p/12828292.html

 

六、表相关操作

对字段操作:

语法:
1. 修改表名
      ALTER TABLE 表名 
                          RENAME 新表名;

2. 增加字段
      ALTER TABLE 表名
                          ADD 字段名  数据类型 [完整性约束条件…],
                          ADD 字段名  数据类型 [完整性约束条件…];
      ALTER TABLE 表名
                          ADD 字段名  数据类型 [完整性约束条件…]  FIRST;              #添加到最前面
      ALTER TABLE 表名
                          ADD 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;   #添加到指定字段名之后
                            
3. 删除字段
      ALTER TABLE 表名 
                          DROP 字段名;

4. 修改字段(名称、类型或完整性约束)只有完整性约束条件可写可不写,其他必写
      ALTER TABLE 表名 
                          MODIFY  字段名 数据类型 [完整性约束条件…];     #修改字段类型
      ALTER TABLE 表名 
                          MODIFY  字段名 数据类型 [完整性约束条件…] first;   #将字段修改为第一字段
      ALTER TABLE 表名 
                          MODIFY  字段名 数据类型 [完整性约束条件…] after 字段名;  #将字段放在指定字段名之后 
      ALTER TABLE 表名 
                          CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
      ALTER TABLE 表名 
                          CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

 

对表本身的操作:

show tables;                                                          #查看当前数据库里有多少张表;
create table t1(id varchar(20),name varchar(20));    #创建名为t1表,并创建两个字段,id、name表示表的字段,varchar表示设置字段类型(宽度以及约束条件);
desc t1;(describe)                                                   #查看t1表结构;

alter table t1 modify column name varchar(20);        #修改表t1中name字段的长度;
update t1 set name=egon where id=1;                   #修改表t1中id = 1对应的name内容;
flush  privileges;                                                     #刷新权限;
drop  table t1 ;                                                       #删除表;

show engines;查看MySQL存储引擎;
show variables like %storage_engine%#查看MySQL默认的存储引擎;
alter table t1  engine=innodb;                                  #修改MySQL t1表存储引擎;

 

MySQL数据库之表相关

上一篇:Docker搭建MySQL数据库


下一篇:关于sqlmap当中tamper脚本编码绕过原理的一些总结(学习python没多久有些地方肯定理解有些小问题)