MySQL 基本操作
Posted 长沙火山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 基本操作相关的知识,希望对你有一定的参考价值。
一、基本知识
1、连接数据库
mysql -uroot -p;
2、查询当前的库
show databases;
3、选择某个数据库
use blogs;
4、查看当前所使用数据库
select database();
5、创建一个新库
create database db1;
6、查看表中所有记录:
select * from student;
7、插入数据:
insert into student values('1','张三',20);
8、删除表
drop tablbe student;
9、删除表中所有的数据
delete from student;
二、约束
1、主键约束
(1) 主键约束能够唯一确定表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得该字段不重复且不为空。
create table user(
id int primary key,
name varchar(20)
);
(2) 如果创建表的时候,忘记创建主键约束了,可以通过以下语句添加:
alter table user add primary key(id);
(3) 修改主键
alter table user modify id int primary key;
(4) 删除主键
alter talbe user drop primary key;
(5) 联合主键:两个字段加起来不重复
create table user(
id int,
name varchar(20),
password varchar(20),
primary key (id,name)
);
2、自增约束
create table user(
id int primary key auto_increment,
name varchar(20)
);
3、外键约束
create table students(
id int primary key,
name varchar(20),
class_id int,
foreign key(class_id) references classes(id)
);
4、唯一约束:约束修饰的字段的值不可以重复。
create table user(
id int;
name varchar(20) unique
);
5、非空约束:修饰的字段不能为空
create table user(
id int,
name varchar(20) not null
);
6、默认约束:当我们插入字段值的时候,没有传值,就会使用默认值
create table user(
id int,
name varchar(20),
age int default 10
);
三、常用的操作
1、查询表中所有的记录:
select * from student;
2、查询表中指定的字段:
select sname, ssex, class from student;
3、去重查询:
select distinct depart from student;
4、查询区间记录:
select * from score where degree between 90 and 92;
或者使用运算符比较:
select * from score where degree >= 90 and degree <= 92;
5、查询指定符合条件的记录
(1) 表示或者关系的查询in
, 比如查询score表中成绩为90,92的记录:
select * from score where degree in(90, 92);
(2) 表示或者关系的查询or
,比如查询score表中班级为95031或者性别为女的同学记录:
select * from student where class = '95031' or ssex = '0';
6、升序和降序
(1) 以class降序查询student表中所有记录:
select * from student order by class desc;
(2) 以class降序查询student表中所有记录:
select * from student order by class asc;
(3) 以cno升序、degree降序查询score表中所有的记录:
select * from score order by cno asc, degree desc;
7、统计,比如查询95031班级中的学生人数:
select count(*) from student where class='95031';
8、子查询或者排序,比如查询score表中的最高分的学生学号和课程号:
select sno, cno from score where degree = (select max(degree) from score);
9、查询每门课程的平均成绩:
select avg(degree) from score where cno='3-105';
分组查询:
select cno,avg(degree) from score group by cno;
10、查询分数大于70,小于90的sno列
方法一:
select sno,degree from score where degree>=70 and degree<=90;
方法二:
select sno,degree from score where degree between 70 and 90;
11、多表查询
(1) 查询所有学生的sname、cno 和 degree列:
select sname,cno,degree from student,score where student.sno=score.sno;
(2) 查询所有学生的sname、cname和degree列:
sname -> student
cname -> course
degree -> score
select sname,cname,degree from student,course,score where student.sno=score.sno and course.cno=score.cno;
以上是关于MySQL 基本操作的主要内容,如果未能解决你的问题,请参考以下文章