数据库表和表数据行的操作

一、数据表的操作

1. 增——操作

# 增
语法:
create table 表名(
                    字段名  列类型 [可选的参数],  ### 记住加逗号
                    字段名  列类型 [可选的参数],  ### 记住加逗号
                    .....
                    字段名  列类型 [可选的参数]  ### 最后一行不加逗号      
                  )charset=utf8;  #### 后面加分号


# 创建表时的列的约束**************************************

auto_increment  : 自增
primary key : 主键索引 , 加快查询速度 , 列的值不能重复
not null    : 标识改字段不能为空
default     : 为该字段设置默认值
   

# 列类型:**********************************

1.数字类型:

当列类型为数字类型时,在上面的列类型后面可以加一个参数 unsigned ,该参数表示让前面的数字类型的范围是无符号的范围。不加则表示有符号的范围。
无符号的意思是,假如 int 类型的整个范围是200,无符号的范围是 0~199
而有符号的范围是 -99~100 , 有符号的范围包括负数,无符号没有负数。

    整型:
        tinyint
        smallint
        int (**************************推荐使用)
        bigint
        mediumint
        
    浮点型:
        float  当小数位多时不一定精确,一般四舍五入保存两位小数
        double 与float类似
        decimal 可以表示非常的精确的数字 语法: decimal(m, d) m是数字总个数(负号不算),d是小数点后个数。 若保存的数据的小数部分不足d,则自动补0,若小数部分多余d,则四舍五入到d个

2.字符串

    char(长度)  定长的字符串,无论保存的数据是短是长,都按固定的长度保存,即都占用指定的大小的内存。
    
    varchar(长度) 变长,会根据保存的数据的实际大小来开辟内存保存。并且一直自带一个字节的大小来保存数据的长度。
   
3.时间日期类型

    year 只有年份
    date 年月日
    time 时分秒
    datetime 年月日时分秒(***********************推荐使用)
    timestamp 时间戳 表示从1970计算机元年开始到现在的秒数

4. 枚举
    emun()  列出所有选项。 和列表类似,限制存储的数据只能从括号内选择一个。
    
    
# 实例:
create table t1(
                            id int,
                            name char(5)
                        )charset=utf8;
                    
                        # Query OK, 0 rows affected (0.72 sec)  如果回显是Quey ok,代表创建成功

2. 删——操作

# 删除表

语法:

drop table 表名;  #### 线上禁用

3. 改——操作

# 修改表名和字段

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

# 2.增加表字段
语法:

ALTER TABLE 表名
                ADD 字段名 列类型 [可选的参数],
                ....
                ADD 字段名 列类型 [可选的参数];
实例:
mysql> alter table t88 add name varchar(32) not null default '';

在每一增加字段的语句的最后都可以添加一个参数——》first 或者 after 已存在的字段名, first 表示添加的字段放在所有字段的第一行。 after表示添加的字段放在after指定的字段后面。没有参数则默认添加在最后一行。

# 3.删除表字段

语法:
ALTER TABLE 表名  DROP 字段名;

# 4.修改表字段

语法:
#修改某字段的属性
ALTER TABLE 表名 MODIFY 字段名 数据类型 [完整性约束条件…];

#修改字某段的名字和属性
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

4. 查——操作

# 查看表

语法:
show tables;

5. 复制表结构

  • 复制表的结构只是复制某个表的字段和字段的属性,表中的数据不会复制,所以复制后的表为空。
语法:

create table 新表名 like 已存在的表名;

二、表数据行的操作

1. 增——操作

# 增加数据

语法:
insert into 表名 (列1, 列2) values (值1,'值2');

若不写列名,则values里的值会依次传给各列。写了列名则会把值一一对应的传给列。

2. 删——操作

# 删除某行数据

语法:
delete from 表名 where 条件;

delete from 表名; 当没有where条件时,删除表中所有的数据

truncate 表名; #### 固定写法,没有where条件

区别: 
1. delete之后,插入数据从上一次主键自增加1开始, truncate则是从1开始

2. delete删除, 是一行一行的删除, truncate:全选删除 truncate删除的速度是高于delete的

3. 改——操作

语法:

update 表名 set 列名1=新值1,列名2=新值2 where 条件;

4. 查——操作

语法:

# 1.查询列
select 列1, 列2 from 表名;  (*代表查询所有的列)

# 2.查询全部
select * from 表名;  (*代表查询所有的列)

#3. 按条件查询
select * from t66 where 条件;

# 4. 去重查询
select distinct 列1 from 表名;  表示查询所有列1的数据,把其中重复的数据去掉。

# 5. 通过四则运算查询(不要用),把查询后的结果进行运算,会降低数据库的查询速率**********
select 列名*10 from 表名;  此列名为int类型 

# 6. in方法 类似python中的成员运算
select * from t66 where id in (23,34,11);

# 7. 模糊查询 like 方法
# 以x开头
select * from t66 where name like 'x%';

# 以x结尾
select * from t66 where name like '%x';

# 包含x的
select * from t66 where name like '%x%';

# 8. between..and...: 取值范围是闭区间
select * from t66 where id between 30 and 40;

猜你喜欢

转载自www.cnblogs.com/Mcoming/p/11759330.html