MySql基础命令详解(基础篇)

MySql学习笔记(基础篇)-MySql基础命令详解

环境介绍

  • Centos7
  • MySql5.7

Sql的分类

Sql,分为DQL(查询),DML(修改),DDL(管理),TCL(事物的处理)。

**DDL语句:**数据定义语句,定义了不同的数据库,表,列,索引等。

**DML语句:**数据操纵语句,用于添加,删除,更新和查询数据库记录和检查数据完成性。

**DCL语句:**数据控制语句,定义了数据库,表,列,字段等的访问权限和安全级别。

DDL语句

对库的操作
CREATE DATABASE 库名; 	//创建数据库
CREATE DATABASE 库名 CHARACTER SET utf8; 	//创建数据库并指定库的字符编码

DROP DATABASE 库名; 		//删除数据库

/*案例*/

CREATE DATABASE school;	//创建一个姓名为 student 的数据库
DROP DATABASE school;		//删除了姓名为 student 的数据库

CREATE DATABASE school CHARACTER SET utf8; //创建一个姓名为 student 的数据库,并指定使用utf8编码

SHOW DATABASES; 			//查看已经创建的数据库
对表的操作
use 数据库; 	//在操作表之间需要先选择一个数据库
CREATE TABLE 表名(字段名 类型,字段名 类型 ....); 						//创建表
CREATE TABLE 表名(字段名 类型,字段名 类型 ....)CHARACTER SET utf8; 		//创建表并指定表的字符编码
DROP TABLE 表名;		//删除表
ALTER TABLE 表名 RENAME 新表名						 //修改表名
ALTER TABLE 表名 MODIFY 字段名 类型;			  		//修改已经创建表字段的类型
ALTER TABLE 表名 ADD 字段名 类型;				  		//添加新的字段
ALTER TABLE 表名 DROP 字段名;				   		 //删除已经存在的字段
ALTER TABLE 表名 CHANGE 原字段名 新字段名 类型;	   		 //修改已经存在字段的名称和类型
ALTER TABLE 表名 ADD 新字段名 类型 AFTER 已有字段名;		//在已有字段名后面插入新的字段
ALTER TABLE 表名 MODIFY 字段名 类型 FIRST;				//将这个字段放到最前面

/*案例*/
use student;	//选择student数据库,接下来就可以对数据库进行操作了

SHOW TABLES;	//查看数据库中存在的表

CREATE TABLE ceshi(
ceshi CHAR,
);

DROP TABLE ceshi;	//删除 表名为ceshi的表

//创建一个名字为student的表
CREATE TABLE student(
学号 int(8),
姓名 CHAR(8),
行吧 CHAR(4),
年龄 int(4),
班级 CHAR(20)
);

ALTER TABLE student RENAME students; 			//修改student表的表名为students

ALTER TABLE students MODIFY 学号 char(8);		   //修改字段学号的类型为char

ALTER TABLE students ADD 电话号码 char(13);		  //添加新的字段电话号码 类型为char

ALTER TABLE students DROP 学号;				   //删除已经存在的字段 学号

ALTER TABLE students CHANGE 行吧 性别 char(4);	  //修改原字段名称的行吧为性别jia

ALTER TABLE students ADD 家庭住址 char(20) AFTER 电话号码;	//在电话号码的前面添加字段家庭住址

ALTER TABLE students ADD 学号 char(10);	
ALTER TABLE students MODIFY 学号 char(10) FIRST;

DESC students;		//查看表的字段信息

DML语言

插入记录
INSERT INTO 表名 VALUES(‘内容1’,‘内容2’,‘内容3’...); 	   //需要注意插入内容的顺序是否对应

//只对表部分字段进行插入
INSERT INTO 表名(字段名)VALUES(‘内容’); 	

INSERT INTO 表名(字段名1,字段名2,字段名3...)VALUES(‘内容1’,‘内容2’,‘内容3’...); 

//一次性插入多条记录
INSERT INTO 表名 VALUES(‘内容1’,‘内容2’,‘内容3’...),(‘内容1’,‘内容2’,‘内容3’...).....; 

/*案例*/
//插入一条记录
INSERT INTO students VALUES('20200001','张大胖','男',18,'19数据库1班','翻斗花园8栋5单元1号','18366579916');
//插入多条记录
INSERT INTO students VALUES
('20200001','张二胖','男',18,'19数据库1班','翻斗花园7栋5单元1号','18366579916'),
('20200002','张三胖','男',19,'19数据库1班','翻斗花园7栋5单元2号','18366579917'),
('20200003','张四胖','女',17,'19数据库1班','翻斗花园7栋5单元3号','18366579918'),
('20200004','李二胖','男',18,'19数据库1班','翻斗花园7栋5单元4号','18366579919'),
('20200005','李三胖','女',50,'19数据库1班','翻斗花园7栋5单元5号','18366579911'),
('20200006','李四胖','女',99,'19数据库2班','翻斗花园7栋5单元6号','18366579912'),
('20200007','王二胖','男',7,'19数据库2班','翻斗花园7栋5单元7号','18366579913'),
('20200008','王三胖','女',31,'19数据库2班','翻斗花园7栋5单元8号','18366579914'),
('20200009','王四胖','男',23,'19数据库2班','翻斗花园7栋5单元9号','18366579926'),
('20200010','徐二胖','男',17,'19数据库2班','翻斗花园7栋5单元10号','18366579816'),
('20200011','徐三胖','女',16,'19数据库3班','翻斗花园7栋5单元11号','18366579116'),
('20200012','徐四胖','男',19,'19数据库3班','翻斗花园7栋5单元12号','18366579316'),
('20200013','徐大胖','男',13,'19数据库3班','翻斗花园7栋5单元13号','18366579116'),
('20200014','王大胖','女',28,'19数据库3班','翻斗花园7栋5单元14号','18366579316'),
('20200015','李大胖','男',687,'19数据库4班','翻斗花园7栋5单元15号','18366577616'),
('20200016','张七胖','女',953,'19数据库4班','翻斗花园7栋5单元16号','18366552116'),
('20200017','刘九胖','男',48,'19数据库4班','翻斗花园7栋5单元17号','18366579221');
更新记录
//将字段名2为内容A的那条记录下的字段名1的内容更新为内容B 字段1和字段2可以为同一字段
UPDATE 表名 SET 字段名1='B' WHERE 字段名2='A';		

UPDATE 表名 SET 字段名1='B',字段名2 WHERE 字段名3='A';	

/*案例*/
UPDATE students SET 班级='19数据库2班' WHERE 姓名='张三胖'; 	//将张三胖的班级调整到2班

UPDATE students SET 班级='19数据库1班',电话号码='18365891254' WHERE 姓名='徐三胖';
删除记录
DELETE FROM 表名 WHERE 字段名='a1';				   //将字段名为a1的所以记录删除

DELETE a,b FROM a 表1,b 表2 WHERE a.字段名=b.字段名 and b.字段名='a1';	//删掉多个表的记录。

//使用的时候一定要加WHERE条件不然会把所有的记录都删除。

/*案例*/
DELETE FROM students WHERE 姓名='张大胖';	//删除张大胖这条记录
查询记录
DESC 表名;				// 显示表的状态

SELECT * FROM 表名;			// * 代表查询表的所有记录,会显示所以字段的记录
SELECT * FROM students;		 //显示students表里面的所以记录

/*筛选查询*/
SELECT 字段名1,字段名2,字段名3 FROM 表名; 		//显示固定字段的记录
SELECT 学号,姓名,班级 FROM students;			//只显示学号,姓名,班级 这个三个字段相关的信息

/*条件查询*/
SELECT * FROM 表名 WHERE 字段名='a'; 		  	     //显示满足条件的字段的记录
SELECT * FROM students WHERE 班级='19数据库4班';   	//只显示四班人员的信息

/*排序查询*/
SELECT * FROM 表名 ORDER BY 字段名;			 	//从小到大排序显示
SELECT * FROM students ORDER BY 年龄;			  //按照年龄从小到大排序显示

SELECT * FROM 表名 ORDER BY 字段名 DESC;		 	//从大到小排序显示
SELECT * FROM students ORDER BY 年龄 DESC; 	  //按照年龄从大到小排序显示

/*限制查询*/
SELECT * FROM 表名 ORDER BY 字段 LIMIT 2;	  		//只显示前三行
SELECT * FROM students ORDER BY 年龄 LIMIT 2;		 //只显示前三行

SELECT * FROM 表名 ORDER BY 字段 LIMIT 1,5;  		//只显示从第二行开的向后三行
SELECT * FROM students ORDER BY 年龄 LIMIT 1,5;	 //只显示从第二行开的向后三行

/*聚合*/
//常用的聚合函数 count 求记录数量、sum 求和、max 最大值、min最小值.....
SELECT 聚合函数 FROM 表名; 					   
SELECT COUNT(1) FROM students;		//students表中有多少条记录

//根据函数对数据进行分类查询
SELECT 字段名,聚合函数 FROM 表名 GROUP BY 字段名;  
SELECT 班级,COUNT(1) FROM students GROUP BY 班级;		//每个班级中有多少人
SELECT max(年龄),min(年龄) FROM students;	  			//表中年龄最大的,最小的。

//分类查询后在汇总数量
SELECT 字段名,聚合函数 FROM 表名 GROUP BY 字段名 WITH ROLLUP; 	
SELECT 班级,COUNT(1) FROM students GROUP BY 班级 WITH ROLLUP;	//每个班级中的人数,以及总人数

//对分类数据进行筛选
SELECT 字段名,聚合函数 FROM 表名 GROUP BY 字段名 HAVING 聚合函数>2; 
SELECT 班级,COUNT(1) FROM students GROUP BY 班级 HAVING COUNT(1)>3; ///显示人数大于3个的班级

MySql语法规范

  • 不区分大小写,但建议关键字大写,表名,列名小写。
  • 每一条命令用;结尾
  • 每条命令根据需要,可以进行缩进或换行
  • 注释,单行注释#,多行注释/**/
发布了13 篇原创文章 · 获赞 19 · 访问量 1042

猜你喜欢

转载自blog.csdn.net/DRAGON_ranhou/article/details/105004295