zoukankan      html  css  js  c++  java
  • 数据库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%';

  • 相关阅读:
    《软件需求十步走》阅读笔记一
    《探索需求》读书笔记三
    2018.9.26 随笔
    2018.9.09 随笔
    日期随笔,目录
    2018.9.03 随笔
    linux signal函数遇到的问题
    关于子线程执行两次的问题
    本科四年的一点经验
    linux 网络编程 3---(io多路复用,tcp并发)
  • 原文地址:https://www.cnblogs.com/lyyblog0715/p/11787997.html
Copyright © 2011-2022 走看看