Day1 文件 数据表 数据行操作
操作文件夹
增加 create database db1 default charset utf8
展示 show databases
删除 drop database db1
操作表
创建表
create table t1(id int ,name char(10)) engine = innodb fdefault charset utf8
create table t1(
列名 类型 null---可以为空
列名 类型 notnull---不可以为空
列名 类型 notnull default1 auto_increment primary key ------默认值是1 自增
) engine = innodb fdefault charset utf8
注:引擎 innodb 支持事物原子性操作,primary key表示主键 (不能重复不能为空)加速查找
清空表:
delete from t3;
truncate table t3;
注:二者的区别 delete 表后自增的数字会按照删除之前的继续增加,但是truncate 表后自增数字会从0开始
删除表:
drop table t1
查看表:
select* from t1
对数据行进行操作
插入数据:insert into t1(id,name) values (1,'root1'),(2,'root2')
insert into t1(name,age) selct name,age from tb1
删除数据:delete from t1 where id<6
delete from t1 where id!=2 and name='root1'
delete from t1 where id!=2 or name='root1'
修改数据:update t1 set age =18 where age =17
update tb1 set name='root1',age=19 where id>12 and name='root2'
查看数据: select* from t1
select id,name from t1
select id,name from t1 where id>10 or name='xxx'
select name,age from tb2
select * from t1 where id in(1,5,7)
select * from t1 where id not in(1,5,7)
select * from t1 where id between 1and 7
select * from t1 where id in(select id from t1)
通配符: ‘%’ 表示后面有多个字符 ‘_'表示后面有1个字符
select * from t1 where name like ' ale%' ---ale开头的所有的单词
select * from t1 where name like ' ale-' ---ale后面只有一个字符开头的所有的单词
select * from t1 limite 10 取前面10天数据(用于排名后取前几名)
select * from t1 limite 2,4 从第二个数据后取后面两条
select * from t1 limite 1 offset2 取从第2条数据开始后面取1条
如果想区数据后10个,可以先将数据反转再用limite
数据类型:数字类型 字符类型 时间类型
数字类型:
int
bigint
tinyint
小数
float
Double
decimal (最精准,储存用它,因为底层逻辑是按字符串储存的)
num decimal(10,5)(总位数10,小数点后最多有5位)
字符类型:
char(长度)
varchar(长度)
注: char和varchar的区别 定义char(10) 若插入数据'root'虽然只有4个字符但是计算机会自动补上后面6位一共沾满10个字符
定义 varchar(10) 插入数据'root' 仅占四个字符可以节省空间,但查找起来没有char快
text 特点:常
enum 枚举类型 出入其中一个
Create table thirts(
Name varchhar(40),
Size enum(‘xs’,’s’,’m’,’l’,xl’));
Insert into shirts(name,size)values(‘adidas’,’xl’)
set 集合
Create table myset(
Name varchar(40),
Col set (‘r’,’b’,’g’,’p’)
Insert into shirts(name,col) values(‘adidas’,’a’)
Insert into shirts(name,col) values(‘adidas’,’r,b,p’)
注: enum 和set之间的区别 enum插入数据时之能插入其中1个,set可以插入其中一个或者其中的任意组合
时间类型:
date YYYY-MM-DD
time
year
datetimeYYYY-MM-DD HH:MM:SS
timestamp 时间戳格式:从1970年1月1日(UTC)以来的秒数
将时间戳timestamp格式改成datetime格式:
SELECT FROM_UNIXTIME(unix_timestamp_column) AS readable_datetime
对于date数据取年月日 y=year(date) m=month(date) d=day(date)
找到这个月份的数据 month(date)=month(now())