其他分享
首页 > 其他分享> > day34

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的查询效率要比模糊查询效率高

标签:name,day34,字段名,表名,table,where,select
来源: https://www.cnblogs.com/gfhh/p/11761086.html