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 基本操作的主要内容,如果未能解决你的问题,请参考以下文章

Mysql——实现按字段部分升序,部分降序的方法

MYSQL 按升序和降序排序

MySQL查询基础

MySQL ORDER BY 两个子句(降序和升序)

如何为mysql中显示的内容显示升序或降序

sql 升序降序排列