zoukankan      html  css  js  c++  java
  • day34

    操作表

    语法:

    ​ create table 表名(

    ​ 字段名 列类型 [可选参数],

    ​ 字段名 列类型 [可选参数]#最后一行不加逗号

    )charset=utf-8;#后面必须加分号

    列约束:(********************)

    ​ auto_increment:自增1

    ​ primary key:主键索引,加快查询速度,列的值不能重复,一条数据的唯一标识

    ​ NOT NULL:标识该字段不能为空

    ​ DEFAULT:为该字段设置默认值

    增加数据:

    ​ 语法:

    ​ insert into 表名(列1,列2)values(值1,‘值2’);

    查询数据:

    ​ 语法:

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

    列类型:

    数字

    ​ 整型

    ​ tingint

    ​ smallint

    ​ int(推荐使用)

    ​ mediumint

    ​ bigint

    ​ a.整数类型

    ​ b.取值范围

    ​ c.unsigned加上代表不能取负数,只适用于整型

    ​ 应用场景:根据公司业务的场景,来选取合适的类型

    浮点型(**)

    float不一定精确

    decimal:非常精确的数字(m,d)m是数字总个数(负号不算),d是小数点后个数

    插入的数据大于规定的长度,会四舍五入最后一位

    插入的数据小于规定的长度,会用0补全

    字符串

    char(长度):不可变,定长高效

    varchar(长度):不定长,省空间

    区别:

    ​ char:定长,无论插入的字符是多少个,永远固定占规定的长度

    场景:身份证,手机号(char11),md5加密之后的值,比如密码(char32)等

    varchar:变长,根据插入的字符串的长度来计算占的字节数,但是有一个字节是用来保存字符串的大小的

    注意:如果,不能确定插入的数据大小,一般建议使用varchar(255)

    时间日期类型

    YEAR

    DATE

    TIME

    DATETIME(********)

    TIMESTAMP

    枚举:列出多有的选项

    create table t1(
    	id int auto_increment primary key,
    	gender enum('male','female')
    )charset utf8;
    
    insert into t1(gender) values ('male');
    

    修改表名

    alter table 旧表名 rename 新表名;

    增加字段

    alter table 表名

    add 字段名 列类型 [可选的参数],

    add 字段名 列类型 [可选的参数];

    这样添加的默认都是在最后一列之后的

    删除字段

    alter table 表名 drop 字段名;

    修改字段

    alter table 表名 modify 字段名 数据类型 [完整性约束条件...]

    alter table 表名 change 旧字段名 新字段名 新数据类型 [完整性约束条件...]

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

    show tables;

    复制表结构

    show create table 表名;

    操作表数据行

    增加数据:

    语法:

    insert into 表名 (列1,列2)values(值1,‘值2’);

    delete from 表名 where 条件:

    delete from 表名 默认删除所有的数据

    truncate 表名 ##没有where条件的

    区间:

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

    delete删除,是一行一行的删除,效率低truncate:全选删除truncate删除的速度是高于delete的

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

    updata t1 set name=‘xxx’ where id=1;

    语法:

    select 列1,列2 from 表名 :(*代表所有的列)

    between...and ...取值范围是闭区间

    select *from t66 where id between 30 and 40;

    避免重复DISTINCT

    select distinct name from t66;

    通过四则运算查询(一般不使用)

    例如:select name,age*10 from 表名;

    模糊查询

    一般是数据小的情况下试用

    select * from t66 where name like ‘x%’;#以x开头

    select * from t66 where name like ‘x%x’;#包含x

    select * from t66 where name like ‘%x’;

    查询以x结尾的数据

    一般使用between的查询效率要比模糊查询效率高

  • 相关阅读:
    Ubuntu18.04 一些好用的扩展
    Java并发编程:volatile关键字解析
    SpringCloud(0) 外行人都能看懂的SpringCloud,错过了血亏!
    Java8中的流操作-基本使用&性能测试
    JDBC基本操作
    单例模式(二)
    单例模式(一)static、final和单例模式
    Lombok的使用与原理
    Linux下出现permission denied的解决办法
    虚拟机安装
  • 原文地址:https://www.cnblogs.com/gfhh/p/11761086.html
Copyright © 2011-2022 走看看