mysql数据库操作
记录不熟数据类型
二进制类型
- BINARY(M) 字节数为 M,允许长度为 0~M 的定长二进制字符串
- VARBINARY(M) 允许长度为 0~M 的变长二进制字符串,字节数为值的长度加 1
- TINYBLOB 可变长二进制数据,最多 255 个字节
- BLOB 可变长二进制数据,最多(216-1)个字节
- MEDIUMBLOB 可变长二进制数据,最多(224-1)个字节
- LONGBLOB 可变长二进制数据,最多(232-1)个字节
数据库基本操作
数据库简介
数据库(Database)是按照数据结构来组织、存储和管理数据的
一、常用数据库操作语句
- Show databases; 显示所有数据库
- Create databases 数据库名; 创建数据库
- Drop databases 数据库名 删除数据库
二、常用数据库表操作语句
语法
CREATE TABLE 表名(属性名 数据类型[完整性约束条件],
…
属性名 数据类型[完整性约束条件],);
三、常用约束性条件
约束条件 | 说明 |
---|---|
primary key | 标识该属性为该表的主键,可以唯一的标识对应的记录 |
foreign | 标识该属性为该表的外键,与某表的主键关联 |
notnull | 标识该属性不能为空 |
unique | 标识该属性的值是唯一的 |
auto_increment | 标识该属性的值自动增加 |
default | 为该属性设置默认值 |
举例
create table db_class(
classID int primary key
);
create table db_student(
id int,
studentName varchar(20) not null,
studentAge varchar(20) not null,
studentClass int,
primary key(id),
CONSTRAINT `fk` foreign key (`studentClass`) references `db_class` (`classid`)
);
四、常用修改数据库表语句
- describe(desc) 表名; 查看基本表结构
- show createtable; 查看详情表结构
- alter table 旧表名 rename 新表名; 修改表名
- alter table 表名 change 旧属性名 新属性名 新数据类型; 修改字段
- alter table 表名 add 属性名1 数据类型 [完整性约束条件][first|alter 属性名2]; 增加字段
- alter table 表名 drop 属性名; 删除字段
- drop table 表名; 删除表
五、单表查询
-
select * from 表名; 查询所有信息
-
select 字段1,字段2…, from 表名; 查询指定字段
-
select 字段1,字段2… from 表名 where 条件表达式; where 条件查询
-
select 字段1,字段2…from 表名 where 字段[not]in(元素1,元素2…); 带in 关键字查询
mysql> select * from test where id not in(1,3,4);
-
select 字段1,字段2… from 表名 where 字段[not] between 取值1 and 取值2; 带between and 的范围查询
mysql> select * from test where id not between 1 and 3;
-
select 字段1 ,字段2 from 表名 where 字段[not] like ‘字符串’; 模糊查询 ‘%’表示全部字符 ‘_’表示单个字符
mysql> select * from test where name not like'小%';
-
select 字段1,字段2… from 表名 where 字段 is [not] null; 空值查询
mysql> select id from test where id is not null;
-
select 字段1 ,字段2 … from 表名 where 条件表达式1 and 表达式2 …and 表达式n; 带and 多条件查询
-
select 字段1,字段2 …form 表名 where 条件表达式 1 or 条件表达式2; 带or多条件 查询
-
select distinct 字段名 from 表名; 去重复查询
mysql> select distinct name from test;
-
**select 字段1 ,字段2…from 表名 order by 属性名 [asc|desc];**对查询结果排序
mysql> select * from test order by id desc;
-
group by 属性名[having 条件表达式][with rollup];
- 单独使用毫无意义
- 与group_concat()函数一起使用;
- 与聚合函数一起使用
- 与having一起使用(限制输出的结果)
- 与with rollup一起使用(最后加入一个总和行)
SELECT * FROM t_student GROUP BY gradeName;
SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName;
SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName;
SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName HAVING COUNT(stuName)>3;
SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName WITH ROLLUP;
SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName WITH ROLLUP;
- **select 字段1 ,字段2 …from表名 limit 初始位置 ,记录位置;**limit 分页查询
六、使用聚合函数查询
- count() 函数 用来统计记录的条数 与group by 关键字一起使用
- sum() 函数 求和函数 与group by 关键字一起使用
- avg()函数 求平均值函数与group by 关键字一起使用
- max()函数 求最大值函数与group by 关键字一起使用
- min()函数 求最小值函数与group by 关键字一起使用