常用数据库命令大全

常用数据库命令大全

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2NyaXB0LmJveQ==,size_16,color_FFFFFF,t_70,g_se,x_16

#3.创建两个数据库,一个名为自己姓名首字母,一个名为老师名字首字母的数据库
CREATE DATABASE IF NOT EXISTS lgp;
#使用数据库
USE lgp;
CREATE DATABASE IF NOT EXISTS dsj;
USE dsj;

#4.使用SHOW语句来查看已经存在的数据库
SHOW DATABASES;

#5.查看用自己姓名创建数据库的信息
SHOW CREATE DATABASE lgp;

#6.修改名为自己数据库的字符集为gbk
ALTER DATABASE lgp CHARACTER SET utf8;

#7.删除数据库
DROP DATABASE dsj;
DROP DATABASE lgp;

#8.查看正在使用的数据库
SELECT DATABASE();

#9.使用/切换数据库切换到自己姓名数据库
USE lgp;
#10.创建一个表,使用存在就重新删除创建
DROP TABLE IF EXISTS tb_department;
CREATE TABLE tb_department 
	( 
	dep_name VARCHAR ( 20 ) NOT NULL COMMENT '系名', 
	dep_phone VARCHAR ( 20 ) NOT NULL UNIQUE COMMENT '电话', 
	PRIMARY KEY ( dep_name ) 
) DEFAULT CHARSET = utf8;

INSERT INTO tb_department
VALUES
	( '大数据学院', '10086' ),
	( '大健康学院', '110' ),
	( '工程学院', '119' ),
	( '体育学院', '123' ),
	( '学院', '206' );

#查询表创建是否成功
SELECT	* FROM	tb_department;

DROP TABLE IF	EXISTS tb_course;
CREATE TABLE tb_course 
( cou_id VARCHAR ( 20 ) NOT NULL COMMENT '课程号',
 cou_name VARCHAR ( 20 ) NOT NULL COMMENT '课程名', 
 PRIMARY KEY ( cou_id ) 
 ) DEFAULT CHARSET = utf8;

#添加表的内容
INSERT INTO tb_course VALUES
	( 'kc01', '技术与应用' ),
	( 'kc02', 'JAVA' ),
	( 'kc03', 'JAVAWEB' ),
	( 'kc04', '概论' ),
	( 'kc20652114267', '技术' );
	
SELECT	* FROM	tb_course;

DROP TABLE IF EXISTS tb_student;
CREATE TABLE IF	NOT EXISTS tb_student (
		S_id VARCHAR ( 20 ) NOT NULL UNIQUE COMMENT '学号',
		S_name VARCHAR ( 20 ) NOT NULL COMMENT '姓名',#S_sex VARCHAR(2) COMMENT'性别' NOT NULL CHECK(S_sex IN('M','F')),
		S_sex ENUM ( '男', '女' ) DEFAULT '男',
		S_age INT ( 2 ) NOT NULL COMMENT '年龄',
		S_dep_name VARCHAR ( 20 ) NOT NULL COMMENT '系名',
		PRIMARY KEY ( S_id ),
		CONSTRAINT FK_ID_1 FOREIGN KEY ( S_dep_name ) REFERENCES tb_department ( dep_name ) ON UPDATE CASCADE ON DELETE CASCADE 
	) DEFAULT CHARACTER SET utf8;

INSERT INTO tb_student VALUES
	( 'xs01', '钟', '男', '20', '大数据学院' ),
	( 'xs02', '何', '男', '20', '大健康学院' ),
	( 'xs03', '黄', '女', '19', '工程学院' ),
	( 'xs04', '冯', '男', '21', '体育学院' ),
	( 'xs20652114267', '刘', '男', '20', '学院' );

SELECT	* FROM	tb_student;

DROP TABLE IF	EXISTS tb_techer;
CREATE TABLE tb_techer (
	t_id VARCHAR ( 20 ) NOT NULL COMMENT '教师号',
	t_name VARCHAR ( 20 ) NOT NULL COMMENT '姓名',
	t_sex ENUM ( '男', '女' ) NOT NULL  COMMENT '性别',
	t_technical VARCHAR ( 20 ) NOT NULL COMMENT '职称',
	S_dep_name VARCHAR ( 20 ) NOT NULL COMMENT '系名',
	PRIMARY KEY ( t_id ),
	CONSTRAINT FK_ID_2 FOREIGN KEY ( S_dep_name ) REFERENCES tb_department ( dep_name ) ON UPDATE CASCADE ON DELETE CASCADE 
) DEFAULT CHARACTER SET utf8;

INSERT INTO tb_techer VALUES
	( 'js01', '钟', '男', '高级教师', '大数据学院' ),
	( 'js02', '何', '女', '一级教师', '大健康学院' ),
	( 'js03', '黄', '男', '一级教师', '体育学院' ),
	( 'js04', '何', '女', '二级教师', '工程学院' ),
	( 'js20652114267', '刘', '男', '一级教师', '学院' );
	
SELECT	* FROM	tb_techer;

DROP TABLE IF	EXISTS tb_tech;
CREATE TABLE tb_tech (
	t_id VARCHAR ( 20 ) NOT NULL COMMENT '教师号',
	cou_id VARCHAR ( 20 ) NOT NULL COMMENT '课程号',
	PRIMARY KEY ( t_id, cou_id ),
	CONSTRAINT FK_ID_3 FOREIGN KEY ( t_id ) REFERENCES tb_techer ( t_id ) ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT FK_ID_4 FOREIGN KEY ( cou_id ) REFERENCES tb_course ( cou_id ) ON UPDATE CASCADE ON DELETE CASCADE 
) DEFAULT CHARSET = utf8;

INSERT INTO tb_tech
VALUES
	( 'js01', 'kc01' ),
	( 'js02', 'kc02' ),
	( 'js03', 'kc03' ),
	( 'js04', 'kc04' ),
	( 'js20652114267', 'kc20652114267' );
	
SELECT	* FROM	tb_tech;

DROP TABLE IF	EXISTS tb_record;
CREATE TABLE tb_record ( 
	s_id VARCHAR ( 20 ) NOT NULL COMMENT '学号',
	cou_id VARCHAR ( 20 ) NOT NULL COMMENT '课程号',
	grade FLOAT NOT NULL COMMENT '成绩',
	PRIMARY KEY ( s_id, cou_id ),
	CONSTRAINT FK_ID_5 FOREIGN KEY ( s_id ) REFERENCES tb_student ( S_id ) ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT FK_ID_6 FOREIGN KEY ( cou_id ) REFERENCES tb_course ( cou_id ) ON UPDATE CASCADE ON DELETE CASCADE 
) DEFAULT CHARSET = utf8;

INSERT INTO tb_record
VALUES
	( 'xs01', 'kc01', '55' ),
	( 'xs02', 'kc02', '88' ),
	( 'xs03', 'kc03', '90' ),
	( 'xs04', 'kc04', '91' ),
	( 'xs20652114267', 'kc20652114267', '100' );

SELECT	* FROM	tb_record;

#11、	查看数据库中的所有表
SHOW TABLES;

#12、	查看表结构
DESC tb_course;

#13、	查看创建表的 SQL 语句
SHOW CREATE TABLE tb_course;

CREATE TABLE `tb_course` (
  `cou_id` VARCHAR(20) NOT NULL COMMENT '课程号',
  `cou_name` VARCHAR(20) NOT NULL COMMENT '课程名',
  PRIMARY KEY (`cou_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

#14、	添加数据,每个表5条模拟数据,其中有一条是自己的数据,倒回去截图 
#INSERT INTO 表名 VALUES(),(),(),(),();
#SELECT	* FROM 表名

#15、	复制学生表,表名用自己姓名首字母 -- create table 新表 select * from 旧表
CREATE TABLE tb_lgp  LIKE tb_student;

SELECT * FROM tb_lgp;

#16.将tb_student表的数据蠕虫复制到用自己姓名创建表中 
INSERT INTO tb_lgp SELECT * FROM tb_student;

SELECT * FROM tb_lgp;
#复制表2的所有列到表1中 -- INSERT INTO 表名 1 SELECT * FROM 表名 2;


#17、	为复制的表添加一个电话字段s_telephone,数据类型为varchar(12)
ALTER TABLE tb_lgp ADD s_telephone VARCHAR(12);

SELECT * FROM tb_lgp;
DESC tb_lgp;

#18、	修改复制的表里面字段s_telephone,数据类型为int(20)
ALTER TABLE tb_lgp MODIFY s_telephone INT(20);
DESC tb_lgp;
#修改列名:ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
#删除列:ALTER TABLE 表名 DROP 列名;
DESC tb_lgp;

#19.修改复制的表字符集为gbk: ALTER TABLE 表名 CHARACTER SET 字符集;
ALTER TABLE tb_lgp CHARACTER SET gbk;

#20.修改复制表的表名为tb_原表名
RENAME TABLE tb_lgp TO tb_liuguoping;

SELECT * FROM tb_liuguoping;

#21、	删除列复制表里面字段s_telephone
ALTER TABLE tb_liuguoping DROP s_telephone;
#查看
DESC tb_liuguoping;

#22、	为复制的表添加一个老师的数据
INSERT INTO tb_liuguoping VALUES
	( 'xs06', 'dsj', '男', '30', '大数据学院' );
	
SELECT * FROM tb_liuguoping;
#23、	修改复制表里面大数据的年龄为100
#UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
#注:修改复制的表里面字段S_age,数据类型为int(3)
ALTER TABLE tb_liuguoping MODIFY S_age INT(20);

UPDATE tb_liuguoping SET S_age ='100' WHERE tb_liuguoping.S_id='xs06';

#24、	删除复制表里面老师的数据
DELETE FROM tb_liuguoping WHERE S_id='xs06';
SELECT * FROM tb_liuguoping;

#25、	使用 truncate 删除复制表中所有记录
TRUNCATE TABLE tb_liuguoping;

#26、	删除复制的表
DROP TABLE tb_liuguoping;

SHOW TABLES;

#27、	查询学生表(tb_student)表里面数据,要求只显示中文别名学号和姓名字段的数据
SELECT S_id AS 学号, S_name AS 姓名 FROM tb_student;

#28、	(DISTINCT清除重复值)查询学生表(tb_student)里面性别的种类
SELECT DISTINCT S_sex FROM tb_student;

#29、	查询选修表(tb_record)里面成绩整体上浮50分的结果
SELECT grade+50 FROM tb_record;

#30、	查询学生表(tb_student)自己的那条数据
SELECT * FROM tb_student WHERE S_id='xs20652114267';

#31、	查询学生表(tb_student)年龄大于等于18岁同学
SELECT * FROM tb_student WHERE S_age>18;

#32、	查询学生表(tb_student),年龄在18,19的同学
SELECT * FROM tb_student WHERE S_age=18 || S_age=19;

#33、	查询教师表(tb_techer)姓钟的老师信息
SELECT * FROM tb_techer WHERE t_name LIKE '%钟%';

#34、	用count()函数统计tb_student表中记录的条数
SELECT COUNT(0) FROM tb_student;

#35、	查询学生表、课程表、选修表中的数据,要求只显示姓名,课程名,成绩
SELECT tb_student.S_name,tb_course.cou_name,tb_record.grade FROM tb_student,tb_course,tb_record WHERE tb_student.S_id=tb_record.s_id AND tb_course.cou_id=tb_record.cou_id;

#36、	创建视图cj_view,视图内容要求包含id,姓名,课程名,成绩

CREATE VIEW cj_view (学号,姓名,课程名,成绩 )AS SELECT tb_student.S_id,tb_student.S_name,tb_course.cou_name,tb_record.grade FROM tb_student,tb_course,tb_record WHERE tb_student.S_id=tb_record.s_id AND tb_course.cou_id=tb_record.cou_id ;

#查询
SELECT * FROM cj_view;

#37、	用sum函数统计cj_view视图中总成绩,要求显示总分字段
SELECT SUM(成绩) AS 总分 FROM cj_view WHERE cj_view.成绩;

#38、	用avg函数统计cj_view视图中平均分
SELECT AVG(成绩) AS 平均分 FROM cj_view WHERE cj_view.成绩;

#39、	用min函数统计cj_view视图中最低分
SELECT MIN(成绩) AS 最低分 FROM cj_view WHERE cj_view.成绩;

#40、	用max函数统计cj_view视图中最高分
SELECT MAX(成绩) AS 最高分 FROM cj_view;

#41、	查询cj_view视图中所有记录,并按照成绩进行降序排序
#select * from stu order by age asc;
#order by:是排序的关键字
#asc:代表的是升序
#desc: 代表降序
#age:表示的是age字段
SELECT * FROM cj_view ORDER BY 成绩 DESC;

#42、	将tb_student中数据按照s_sex进行分组查询,计算出每组各有多少名学生
#简单的分组查询:SELECT * FROM tb_student GROUP BY S_sex;
SELECT COUNT(0)FROM tb_student GROUP BY S_sex;

#43、	查询tb_student表中第2位到第4位学生信息
SELECT * FROM tb_student WHERE S_id IN ('xs02','xs04');

#-- 查询 id 不是 1 或 3 或 5 的学生
#select * from student3 where id not in(1,3,5);

#44、	用交叉连接查询tb_student和tb_department所有数据
SELECT * FROM tb_student,tb_department;
SELECT * FROM tb_student CROSS JOIN tb_department;

#45、	查询分数大于60分学生姓名
SELECT * FROM tb_student,tb_record WHERE tb_student.S_id=tb_record.s_id AND tb_record.grade>60;

#46、	创建存储过程cj_proc,作用是查询姓名,课程名,成绩
DELIMITER //
CREATE  PROCEDURE cj_proc(IN 姓名1 VARCHAR(20),OUT 课程名1 VARCHAR(20),成绩1 FLOAT)
BEGIN
    SELECT 姓名,课程名,成绩 FROM cj_view;
END//
DELIMITER ;
#查询存储过程

CALL cj_proc(@姓名1,@课程名1,@成绩1);
#查询视图
SELECT * FROM cj_view;

DESC tb_student;
DESC tb_course;
DESC tb_record;

DROP PROCEDURE cj_proc;

#删除存储过程
#1.drop procedure 存储过程名称;2.drop procedure if exists 存储过程名称;
DROP PROCEDURE cj_proc1;

#47、	创建存储过程cj_proc1,作用是输入查询学生的学号后返回一个成绩
DELIMITER //
CREATE PROCEDURE cj_proc1(IN S_id VARCHAR(20) , OUT grade VARCHAR(20))
BEGIN
  SELECT 成绩 INTO grade FROM cj_view WHERE 学号=S_id;
END//
DELIMITER ;

CALL cj_proc1('xs01',@grade);
SELECT @grade;

#48、	为tb_student表创建一个名为insert_zxg触发器,触发器作用查询tb_student中自己姓名和年龄
DELIMITER //
CREATE TRIGGER insert_zxg AFTER INSERT
ON tb_student FOR EACH ROW 
BEGIN
	UPDATE tb_techer SET t_technical='教授';
END //
DELIMITER ;

SELECT * FROM tb_techer;
#执行该条并触发
INSERT INTO tb_student VALUES('xs011', 'll', '女', '18', '大数据学院' );
SELECT * FROM tb_student;
#查询触发器
SHOW TRIGGERS;

#删除触发器
DROP TRIGGER insert_dsj;

#49、在C盘用自己姓名首字母名命一个文件夹,将用自己创建的数据库备份到该文件夹,文件名命名方式为:姓名首字母+当前日期
#cmd下:
mysqldump -u root -p123456 lgp > c:/lgp/lgp1228.SQL


#50、	在sqlyog创建一个dsj数据库,将上一题备份数据库恢复到名为dsj数据库里面
CREATE DATABASE dsj;
USE dsj;

DROP DATABASE dsj;
#注:
cmd下:mysql -u root -p123456 dsj< c:/lgp1220.SQL
cmd进入MySQL并使用需要用来备份上一个数据库的命令:source C:/LGP/lgp1210.SQL;

猜你喜欢

转载自blog.csdn.net/m0_59186440/article/details/124387898