一、数据库操作
- 连接数据库。
mysql -uroot -h 127.0.0.1 -pni123456
参数:
-u 用户名
-h IP地址
-p 密码 - 查询所有数据库。
show databases; - 创建数据库;
create database mydb//如果已存在则创建失败。
create database [if not exists] mydb [default charset 字符集] [coliate排序规则] - 使用数据库
use mydb; - 查询当前数据库。
select database(); - 删除数据库
drop database [if exists] mydb;
二、表操作
- 查询所有表。
show tables - 创建表
create table my_user(
id int comment 'id',
name varchar(50) comment "姓名",
age int comment "年龄");
- 查看表结构
desc my_user - 查看创建表语句
show create table my_user; - 修改表操作
1)新增字段
alter table <表名> add <字段名> <类型 长度> [comment 注释] [约束];
2)修改字段
alter table <表名> change <旧字段> <新字段> <类型 长度> [comment 注释] [约束];
3)删除字段
alter table <表名> drop <字段名>;
4) 修改表名
alter table <表名> rename to<新表名>;
5)删除表
drop table [if exists] <表名>;
6)删除并重新创建该表
truncate table <表名>;
三、增、删、改数据操作
- 添加数据
1)指定字段添加
insert into 表名(字段1,字段2,…) values(值1,值2,…);
2)全部字段添加
insert into 表名 values(值1,值2,…);
3)批量添加
insert into 表名(字段1,字段2,…) values(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
insert into 表名 values(值1,值2,…),(值1,值2,…)(值1,值2,…)…; - 修改数据
update 表名 set 字段1=值1,字段2=值2,… [where 条件];
没有where将会更新所有。 - 删除数据
delete from 表名 [where 条件]; //没有条件则删除所有数据;
四、查询数据操作
-
基本查询
1)查询指定字段。
select 字段1,字段2… from 表名;
2) 查询全部字段。
select * from 表名;//实际开发尽量不用
3) 起别名。
select 字段 as “别名” from 表名;
4)去除重复值。
select distinct 字段 from 表名; -
条件查询
1)比较运算符
运算符 | 备注 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<> 或 != | 不等于 |
berween … and … | 在…之间 |
in(…) | 在in之后的列表值,多选1 |
like “…” | 模糊匹配。_匹配单个,%匹配多个 |
is null | 是 null |
2)逻辑运算符
逻辑运算符 | 备注 |
---|---|
and 或 && | 并且 |
OR 或 || | 或者 |
NOT 或 ! | 非 |
3)基本语句
select 字段列表 from 表名 where 条件列表;
3. 聚合函数
1)常见的聚合函数
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
2)基本语句
select 函数(字段) from 表;
-
分组查询
1)基本语法
select 字段列表 [聚合函数] from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]where:分组之前过滤,不满足则不参与分组,不能对聚合函数进行判断。
having:是对分组结果进行过滤,可以对聚合函数进行判断。 -
排序查询
1)基本语句
select 字段列表 from 表名 order by 字段1 排序方式,字段2 排序方式;
2)排序方式
ASC:升序(默认可省略);
DESC:降序
注:多字段排序时会先按第一个字段排序,值相同才会根据第二个字段排序。 -
分页查询
1)基本语句
select 字段列表 from 表名 limit 起始索引,记录条数;
注:索引从0开始,起始索引=(查询页码-1)* 每页记录数,第一页可以省略索引;
不同的数据库不同的实现,此处案例为mysql;
五、数据类型
- 数值类型
分类 | 大小 | 有符号范围(SIGNED) | 无符号范围(UNSIGNED) | 备注 |
---|---|---|---|---|
TINYINT | 1bytes | -127~127 | 0-255 | 小整数 |
SMALLINT | 2bytes | -32768~32768 | 0-65535 | 大整数 |
MEDIUMINT | 3bytes | -8388608~8388608 | 0-16777215 | 大整数 |
INT/INTEGER | 4bytes | -2147483648~2147483648 | 0-4294967295 | 大整数 |
BIGINT | 8bytes | -2^63 ~ 2^63 | 0^64-1 | 单精度浮点 |
FLOAT | 4bytes | -3.402823466 E+38 ~ 3.402823466 E+38 | 0,1.175494351E-38 ~3.402823466 E+38 | 双精度浮点 |
DOUBLE | 8bytes | -1.7976931348623157 E+308 ~ 1.7976931348623157 E+308 | 0,2.22.0738585072014 E-308 ~2.22.0738585072014 E+308 | 双精度浮点 |
DECIMAI | 取决于M和D | 取决于M和D | 小数 |
- 字符串类型
类型 | 大小 | 备注 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 二进制 |
TINYTEXT | 0-255 bytes | 短文本 |
BLOB | 0-65535 bytes | 二进制长文本 |
TEXT | 0-65535 bytes | 长文本 |
MEDIUMBLOB | 0-16777215 bytes | 二进制中文本 |
MEDIUMTEXT | 0-16777215 bytes | 中文本 |
LONGBLOB | 0-4294967295 bytes | 二进制极大文本 |
LONGTEXT | 0-4294967295 bytes | 极大文本 |
- 日期类型
类型 | 大小 | 范围 | 格式 | 备注 |
---|---|---|---|---|
DATE | 3 bytes | 1000-01-01~9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 bytes | -838:59:59 ~ 838:59:59 | HH:MM:SS | 时间值 |
YEAR | 1 bytes | 1901 ~ 2155 | YYYY | 年份 |
DATETIME | 8 bytes | 1000-01-01 00:00:00~ 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 日期时间 |
TIMESTAMP | 4 bytes | 1970-01-01 00:00:00~ 2038-1-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 日期时间,时间戳 |