mysql 表的增删改查
表的操作
create table 表名(列名 列类型, [...列名 列类型])
插入表数据:
insert into 表名 values(列值, [...列值])
drop table 表名
rename table 表名 to 新表名
修改表字符集:
alter table 表名 character set 字符集
select * from 表名
insert 语句
insert into table_name [(列名, ...列名)] values (列值, ...列值)
insert 语句的细节:
1. 插入的数据应和定义字段的数据类型相同;(数据库数据也存在隐式转换,如 `string(3) -> number(3)`, 前提是能转)
2. 列可以插入空值 (前提是改字段允许为空);
3. `insert` 可同时添加多条记录
+ `insert into table_name(列名, ...列名) values (列值, ...列值), (列值, ...列值)`
4. **insert 数据时,如果插入表中所有列时,可不写前面的字段名称; (`如果列值和表的长度不一致则会报错`)**
+ `insert into table_name values(列值, ...列值)`
5. **如果单指定其中某个字段名和值,其它字段可能会自动为空处理; (前提是, 允许为为空的情况下)**
1. 表字段: `id, name, price`
2. `insert into table_name(id, name) values ('1', '三星手机')` // 列名称不用引号
update 语句
update table_name set 列名=列值 [, 列名=列值] [where where_definition]
where
语句指定条件(应更新哪些行),如果没有 where
语句,则跟新所有行 (set , where 条件列名称不用引号)
delete 语句
delete from 表名 [where where_definition]
1. 如果不适用 `where` 语句,将删除表中所有数据
2. `delete` 语句适用删除行数据; (如需删除列: `alter` , 如需删除列中的值:`update 设置为null或空`)
3. `delete` 删除表,将改表的内容都删除,但是表还在 (`drop` 会连表及内容全部删除
select 语句
select [distinct] * , [列名, ...列名] from 表名
// 查询表 列名不需要引号select *, [列名 | 表达式, ...列名 | 表达式] from 表名
// 使用表达式对查询的列进行运算列名 | 表达式, ...列名 | 表达式
表示查询出后tabel 展示的内容select 列名 as 列别名 from 表名
// 在select语句中使用 as 起别名
注意:
+ `select` 指定查询哪些列数据
+ `column` 指定列名, `*` 号代表所有, `from` 指定查询哪张表
+ `distinct` 指显示结果是否去掉重复数据, 只能用在 `select` 语句中
group by
对查询结果分组统计 (可进行多个条件分组)
// 分组的目的是为了更方便的查看列数据;
// 一般用于,对数据进行二次整合,指定的分组项可能会进行合并数量自增处理;
select 列名1 [, ...列名2] from 表名 group by 列名1 [, ...列名2]
group by column having...
对查询结果分组统计, 限制/过滤分组显示结果 (group by 的过滤 配合 having 使用)
select 列名1 [, ...列名2] from 表名 group by 列名 group by 列名 having...
在where语句中使用的运算符
运算符类型 | 符号 | 描述 |
---|---|---|
比较运算符 | > < ,>= <= ,= ,!= <> between ...and... in(set) like ‘张pattern’ not like ‘’ is null | 大于,小于,大于(小于)等于,不等于 显示在某一区间的值 显示在 in 列表中的值, 如: in(100, 200) 模糊查询 (name like '张%')匹配name以张开头的 模糊查询不包含的 判断是否为空 |
逻辑运算符 | and or not | 多个条件同时成立 多个条件任意成立 不成立,例:where not(num>100) |
like语句使用通配符来匹配不包含指定字符串的值
%:表示匹配任意字符,可以是零个字符、一个字符或多个字符
_:表示匹配单个字符
order by 语句排序查询
select 列名 [,列名|表达式, ...] from 表名 order by 列名 asc|desc;
order by 指定排序的列, 排序的列即可以是表中的列名,也可以是 select 语句 as 后指定的列名
asc 升序 [默认], desc 降序
order by 语句应位于 select 语句的结尾
表头列信息的操作
alter table 表名 add 列名 列类型, [...列名 列类型]
查看表的列结构:
desc 表名
alter table 表名 drop 列名
alter table 表名 change 旧列名 新列名 新列类型
desc 表名
评论区