mysql是一款关系数据库,是在web端常用的一款数据库。
创建数据库
create database database-name
切换数据库
use database-name
常用的字段类型
- 整型
- TINYINT (一个字节)
- SMALLINT (两个字节)
- INT (4个字节)
- BIGINT (8个字节)
- 浮点型
- FLAOT (4个字节)
- DOUBLE (8个字节)
- DECIMAL(M,D) (本质上市字符串,所以一般可以用来做为钱的字段)
- 时间类的
- DATE (日期)
- DATETIEM (日期加时间)
- 字符型
- CHAR (定长)
- VARCHAR (变长)
创建数据表
create table table-name(column-name column-type 限制条件,PRIMARY KEY ( `runoob_id` ))
ENGINE=InnoDB DEFAULT CHARSET=utf8
删除表
drop table table-name
插入数据
insert into table-name (column1,column2) value(one,two)
更新
update table-name set column1 = one where column2 = two
删除数据
delete from table-name where column = one
查询
- 简单查询
select * from table-name
- 条件查询
select * from table-name where column = one
- 模糊查询
select * from table-name where column like %one%
- 联合查询
select name from table1 union select name from table2
这样会查出table1和table2表中的name,但是只会出现不重复的,如果需要重复的,全部数据,那么使用union all
- 排序
select * from table-name order by column1
默认为升序(asc),在后面加desc是倒叙
- 排序
select * from table-name group by name having age>14
having是group常用的筛选,比where优先级低
- 连表查询
内连接
SELECT a.name, b.name FROM table1 a INNER JOIN table2 b ON a.name = b.name
左连接
select a.name b.name from table1 a left join table2 b on a.name=b.name
一般使用左连接或者右连接,内连接耗费性能
mysql中altert命令
- 删除字段
alter table table-name drop column
- 添加字段
alter table table-name add column type
也可以在最后加上first,就是新字段在最前面,或者after column ,就是在哪个字段的后面。
- 修改字段类型
alter table table-name modify column new-type
后面也可以继续加上字段的限制,和默认值
alter table table-name change column new_name new_type
- 修改表的名字
alter table table-name rename to new_name
索引
- 创建索引
create index on table-name(column(length))
如果是char或者varchar,这长度可以小于实际长度,但是blob或者text,就必须指定长度。
#创建表的时候直接创建
index index-name column(length)
- 删除索引
drop index index-name on table-name
关于json
查找
select id,json_extract(ext_property,'$.installer') from shop where id in (select shop_id from screen where agency_account_id = 132);
过滤
SELECT
*
FROM
`table`
WHERE
table.json -> '$.name' = '碳钢';