Mysql基本操作
1.mysql是一个开放源代码的数据库管理系统(DBMS)。
主键:唯一标识,不能有两行相同的列值,不能为空。
2.数据库的基本操作
数据库引擎:InnoDB
使用命令操作数据库:
登入数据库:mysql -h localhost -u root -p
查看所有数据库:show databases;
创建数据库:create databases database_name;
删除数据库:drop databases database_name;
使用数据库:use database_name;
3.数据表的基本操作
创建表:
create table user
(
id int(11),
name varchar(25),
deptid int(11),
salary float
);
使用主键约束:
定义列的同时定义主键
create table user
(
id int(11) primary key,
name varchar(25),
deptid int(11),
salary float
);
定义完所有列后定义主键
create table user
(
id int(11),
name varchar(25),
deptid int(11),
salary float,
primary key(id)
);
多字段联合
primary key(id, name, salary)
使用非空约束:
create table user
(
id int(11) primary key,
name varchar(25) not null,
deptid int(11),
salary float
);
使用唯一约束:
定义列的同时定义
create table user
(
id int(11) primary key,
name varchar(25) unique,
deptid int(11),
salary float
);
定义完所有列后定义
create table user
(
id int(11) primary key,
name varchar(25),
deptid int(11),
salary float,
constraint sth unique(name)
);
使用默认约束:
create table user
(
id int(11) primary key,
name varchar(25) not null,
deptid int(11) default 1111,
salary float
);
设置表的属性值自动增加:
create table user
(
id int(11) primary key auto_increment,
name varchar(25) not null,
deptid int(11) default 1111,
salary float
);
4.修改数据表
修改表名:
alter table 旧表名 to 新表名
修改字段数据类型:
alter table 表名 modify name varchar(30);
修改字段名:
alter table 表名 change 旧字段名 新字段名 数据类型
添加字段:
在表的第一列添加字段
alter table 表名 add column2 int(11) first;
在表的指定列之后添加一个字段
alter table 表名 add column2 int(11) after name;
删除字段:
alter table 表名 drop 字段名
修改表的字段排列位置:
修改总段为表的第一个字段
alter table 表名 modify column1 varchar(12) first;
修改字段到表的指定列之后
alter table 表名 modify column1 varchar(12) after location;
更改表的存储引擎:
alter table 表名 engine=myisam
删除表的外键约束:
alter table 表名 drop foreign key 外键约束名
删除数据表:
删除无关联的数据表
drop table 表名;
删除有关联的表
删除父表,接触外键约束,删除本表
5.数据类型
整型:
tinyint 很小的整数
smallint 小的整数
mediumint 中等大小的整数
int 普通大小的整数
bigint 大整数
浮点数:
float 单精度
double 双精度
decimal,dec 严格定点数
日期与时间类型:
year YYYY
time HH:MM:SS
date YYYY-MM-DD
datatime YYYY-MM-DD HH:MM:SS
timestamp YYYY-MM-DD HH:MM:SS
文本字符串类型:
char 固定长度非二进制字符串
varchar 变长非二进制字符串
tinytext 非常小的非二进制字符串
text 小的非二进制字符串
mediumtext 中等大的小的非二进制字符串
longtext 大的小的非二进制字符串
enum 枚举类型
set 一个设置
二进制字符串类型:
bit 位字段类型
binary 固定长度二进制字符串
varbinary 可变长度二进制字符串
blog
6.查询数据
聚合函数查询:
1.count()函数
select count(*) As cust_num from user 返回user表中总行数,名称为cust_num
2.sum()函数
select sum(price) As cust_num from user where o_num = 3005 订单号为3005的总和
3.avg()函数
select avg(price) As cust_num from user where o_num = 3005 订单号为3005均价
4.max()函数
select max(price) As cust_num from user 查询某列最大值
5.min()函数
select min(price) As cust_num from user 查询某列最小值
7.连接查询
1.内连接查询
select fieldlist from table1 inner join table2 on table1.column=table2.column 普通连接
2.外连接
左连接:
select courses.cno, max(coursename), count(sno) from courses LEFT JOIN grades ON courses.cno=grades.cno group by courses.cno
左连接特点:显示全部左边表中的所有项目,即使其中有些项中的数据未填写完全。
左外连接返回那些存在于左表而右表中却没有的行,再加上内连接的行。
右连接:right join 显示全部右边表中的所有项目
3.复合条件连接查询:就是在连接查询的过程中,通过添加过滤条件来限制查询结果,使查询结果更加精确。