数据库02

操作表

create table 表名 (

​ 字段名1 列约束 [可选的参数],

​ 字段名2 列约束 [可选的参数],

​ ……..

​ 字段名3 列约束 [可选的参数] 最后一行不要加逗号

)charset = UTF-8;

既然在键的是后要给表添加字段的数据类型,和约束条件,那么有哪些数据类型和约束条件呢

数据类型

  1. 数字类型:

    数字类型分为整型和浮点型:

    • 整型

      在MySQL中的整数类型可以分为5中,分别是tinyint、smallint、mediumint、int、bigint,不同的整数型所对应的字节大小和取值范围都不同,我们用的最多的就是int类型

    • 浮点型

      float:不一定非常精确

      decimal:非常精确的数字,decimal (m,n) m:指数字的个数,n:指小数点位数

      double:双精度浮点数,意思就是小数点后面两位

      float和double都是小数点后面两位,但是取值范围double比float要大

  2. 日期和时间

    YEAR:YYYY(1901/2155)

    DATE:YYYY-MM-DD(1000-01-01/9999-12-31)

    TIME :HH:MM:SS('-838:59:59'/'838:59:59')

    DATETIME :YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)

    TIMESTAMP :YYYY-MM-DD HH:MM:SS(1970-01-01 00:00:00/2037 年某时)

    我们可以使用current_date()或者now()来获取当前时间

  3. 枚举:列出所有的选项

  4. 字符串

    char:定长的字符串,如char(4)无论输入多少个(少于4个),始终占4字节的空间

    varchar:不定长的字符串,varchar(4),所占字节为输入实际字节长度加1

约束条件

  1. 主键约束(primary key):为了快速查找表中的某条记录可以通过设置主键来完成,它是唯一标识表中的记录
  2. 非空约束(not null):让字段不能为空,如果为空则会报错
  3. 唯一约束(unique):保证字段唯一
  4. 默认约束(default):给字段设置一个默认值
  5. 自增(auto_increment):必须要约束一个整数类型,从1开始自动增加

删除可以删除表也可以删除字段,不过在正常的开发中,一般不会使用删除表的操作

删除表的命令:drop table 表名;

删除字段的命令:alter table 表名 drop 字段名;

查表无非就是查看数据库里所有的表,和查看表的结构

查看库里所有的表:show tables;

查看表结构:desc 表名;

查看建表时的语句:show create table 表名;

对表的修改可以修改表名,可以修改字段

修改表名:alter table 旧表名 rename 新表名;

修改字段:alter table 表名 modify 字段名 数据类型 [约束条件];

增加字段:

  • **ALTER TABLE 表名 ADD 字段名 列类型 [可选的参数] FIRST; **first 表示添加在第一个位置

  • **ALTER TABLE 表名 ADD 字段名 列类型 [可选的参数] AFTER 字段名; **表示在选定字段后面添加

  • ALTER TABLE 表名 ADD 字段名 列类型 [约束条件];什么都不加默认添加在最后

操作表数据

对数据表的操作也无非增删查改,我们首先来了解单表的增删查改

增加就是向数据表中插入数据

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

如果不写插入的字段,就默认全部,我们可以通过这种方法插入单条数据,可以插入多条数据,所以就不赘述其他的操作命令了

按条件删除命令:delete from 表名 where 条件;

删除所有: delete from 表名;

删除所有还有一种方式truncate

命令:truncate 表名;

那么delete 和 truncate 有什么区别呢

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

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

在修改时你要知道要修改的数据在哪,所以要有一个where条件

命令:update 表名 set 字段1 = 新值1 ,字段2 = 新值2 where 条件;

但是当你没有添加where条件时,它会默认修改全部。

对于表中的数据而言,查数据才是最为重要的,我们首先了解单表查询

在MySQL中查询数据的基本语句是select语句,在select语句中可以根据自己对数据的需求使用不用的查询条件

最基本的查询命令:**select * | {字段1,字段2···} from 表名 **

*代表表中的所有字段,这个命令的意思是查询指定字段的所有数据

带关系运算符的查询

在select语句中,最常用的是使用where 子句来进行条件的过滤

命令:select 列1, 列2 from 表名 where 条件;

条件运算符就是我们最常用的一些数学符号

= 等于、<> 和 != 不等于、< 小于 、> 大于、<=小于等于、>=大于等于

带between and 关键字的查询

如果我们想要取一定范围内的值就可以使用between and 进行判断

如我们要查找id在30-40之间的数据就可以使用如下命令

命令:select 列1, 列2 from 表名 where id between 30 and 40;

要注意的是,between and 的取值范围是闭区间

带in关键字的查询

in的作用是用于判断某个字段的值是在指定的集合,也可以在前面加个not 表示不再指定的集合

命令:select 列1, 列2 from 表名 where 字段名 [not] in (元素1,元素2,···);

空值查询

在数据表中,有些字段的值可能为空,如果要查空值,就要使用is null来进行判断

命令:select 列1, 列2 from 表名 where 字段名 is [not] null;

加上not 表示不为空

distinct 关键字查询

DISTINCT表示去重,如果表中的数据有重复,我们就可以使用distinct过滤重复的字段

命令:select distinct 字段名 from 表名;

like关键字模糊查询

查询以x开头: mysql> select * from t66 where name like 'x%';

以x结尾:mysql> select * from t66 where name like '%x';

包含x : mysql> select * from t66 where name like '%x%';

posted @ 2019-11-03 16:54  KONNE  阅读(166)  评论(0编辑  收藏  举报