2MYSQL数据表的基本操作
2.1MySQL数据表增删改
create table <表名> ([表定义选项])表选项;
--创建表
create table user(
name varchar(20) unique,
id int(20) auto_increment,
sex enum(0,1) default 0,
tel char(11) not null,
primary key(id)
);
-- 删除表
drop table if exists user;
-- 查看表结构
desc user;
2.2MySQL修改数据表
alter table <表名> [修改选项]
- add column <列名> [修改选项]:添加列
- change column <旧列名> <新列名> <新类型>:修改列名
- modify column <列名> <类型>:修改列名
- drop column <列名>:删除列名
- rename to 新表名
- character set <字符集名>
- collate <校对规则名>
-- 修改表名
alter table user rename to tb_user;
-- 修改表字符集
alter table tb_user character set utf8;
-- 修改字段名称 类型不能为空
alter table tb_user change name avartername char(20);
-- 修改字段类型
alter table tb_user modify sex eum(0,1);
-- 删除字段
alter table tb_user drop descp;
-- 添加字段
alter table tb_user add descp varchar(50);
-- 添加主键
alter table tb_user add primary key(id,name);
-- 删除主键
alter table tb_user drop primary
2.3MySQL表的约束
- mysql主键: primary key
- mysql 主键自增: auto_increment
- mysql 外键约束: foreign key
- mysql 唯一约束: unique key
- mysql 检查约束: check
- mysql 默认值: default
- mysql 非空约束: not null
-- 设置单字段主键
create table user(
id int(11) primary key,
name varchar(25),
depId int(11),
salary float
)
-- 设置多字段主键加自增,唯一,默认,
create table user(
id int(11) auto_increment,
name varchar(25) unique,
depId int(11) ,
salary float not null,
age int default null,
sex enum(0,1) default 0,
primary key(id,name),
constraint department foreign key(deptId) references tb_dept1(id)
)
3MYSQL数据表查询
select {* | 字段列名}
from <表名>,<表名2>
where <表达式>
group by definition
having expression
order by definition
limit offset,count
3.1去重和设置别名
select dictinct age as user_age from user
3.2条件查询
-
比较运算符和逻辑运算符
-
between and 关键字的查询
-
is null 空查询
-
in 关键字
-
like:% , _
select * from where age > 20 and name like %ddh%
3.3 分组查询
分组函数需和聚合函数一起使用,count(),sum(),avg(),max() ,min(),
- group_concat():可以将分组字段值显示出来
- having: 分组过滤
select sex , count(sex) from user group by sex;
-- 使用group_concat()函数一起使用
select sex , group_concat(name) from user group by sex;
-- 分组过滤
select name,sex,height from user from having height>150;
3.4交叉连接
-------生成笛卡尔积
-- 方式1
select <字段名> from <表1> cross join <表2> [where子句]
-- 方式2
select <字段名> from <表1>,<表2> where 交叉连接
3.5连接查询
-- 内连接 on 用于连接条件 inner join
select <字段名> from <表1> inner join <表2> on 子句
-- 左连接 left outer join
select <字段名> from <表1> left outer join <表2> on 子句
-- 右连接 right outer join
select <字段名> from <表1> right outer join <表2> on 子句
4MYSQL数据修改
4.1 插入数据
-
insert... values 语句
-
insert... set 语句
-- insert... values
insert into tb_courses
(course_id,course_name,course_grade,course_info) values (1,'network',3,'computer')
-- 使用 insert into ... from 复制表
insert into tb_courses_new
(course_id,course_name,course_grade,course_info)select course_id,course_name,course_grade,course_info from tb_courses_new
4.2 更新表中的数据
update tb_courses_new set cour_grade =4 , course_name = 'db' where course_id = 2;
4.3删除表中数据
delete from tb_course where course_id =4
4.4清空表记录
TRUNCATE [TABLE] 表名