[数据库] 常用数据库命令大全

1436 0
Honkers 2025-3-8 18:16:37 | 显示全部楼层 |阅读模式

常用数据库命令大全

  1. #3.创建两个数据库,一个名为自己姓名首字母,一个名为老师名字首字母的数据库
  2. CREATE DATABASE IF NOT EXISTS lgp;
  3. #使用数据库
  4. USE lgp;
  5. CREATE DATABASE IF NOT EXISTS dsj;
  6. USE dsj;
  7. #4.使用SHOW语句来查看已经存在的数据库
  8. SHOW DATABASES;
  9. #5.查看用自己姓名创建数据库的信息
  10. SHOW CREATE DATABASE lgp;
  11. #6.修改名为自己数据库的字符集为gbk
  12. ALTER DATABASE lgp CHARACTER SET utf8;
  13. #7.删除数据库
  14. DROP DATABASE dsj;
  15. DROP DATABASE lgp;
  16. #8.查看正在使用的数据库
  17. SELECT DATABASE();
  18. #9.使用/切换数据库切换到自己姓名数据库
  19. USE lgp;
  20. #10.创建一个表,使用存在就重新删除创建
  21. DROP TABLE IF EXISTS tb_department;
  22. CREATE TABLE tb_department
  23. (
  24. dep_name VARCHAR ( 20 ) NOT NULL COMMENT '系名',
  25. dep_phone VARCHAR ( 20 ) NOT NULL UNIQUE COMMENT '电话',
  26. PRIMARY KEY ( dep_name )
  27. ) DEFAULT CHARSET = utf8;
  28. INSERT INTO tb_department
  29. VALUES
  30. ( '大数据学院', '10086' ),
  31. ( '大健康学院', '110' ),
  32. ( '工程学院', '119' ),
  33. ( '体育学院', '123' ),
  34. ( '学院', '206' );
  35. #查询表创建是否成功
  36. SELECT * FROM tb_department;
  37. DROP TABLE IF EXISTS tb_course;
  38. CREATE TABLE tb_course
  39. ( cou_id VARCHAR ( 20 ) NOT NULL COMMENT '课程号',
  40. cou_name VARCHAR ( 20 ) NOT NULL COMMENT '课程名',
  41. PRIMARY KEY ( cou_id )
  42. ) DEFAULT CHARSET = utf8;
  43. #添加表的内容
  44. INSERT INTO tb_course VALUES
  45. ( 'kc01', '技术与应用' ),
  46. ( 'kc02', 'JAVA' ),
  47. ( 'kc03', 'JAVAWEB' ),
  48. ( 'kc04', '概论' ),
  49. ( 'kc20652114267', '技术' );
  50. SELECT * FROM tb_course;
  51. DROP TABLE IF EXISTS tb_student;
  52. CREATE TABLE IF NOT EXISTS tb_student (
  53. S_id VARCHAR ( 20 ) NOT NULL UNIQUE COMMENT '学号',
  54. S_name VARCHAR ( 20 ) NOT NULL COMMENT '姓名',#S_sex VARCHAR(2) COMMENT'性别' NOT NULL CHECK(S_sex IN('M','F')),
  55. S_sex ENUM ( '男', '女' ) DEFAULT '男',
  56. S_age INT ( 2 ) NOT NULL COMMENT '年龄',
  57. S_dep_name VARCHAR ( 20 ) NOT NULL COMMENT '系名',
  58. PRIMARY KEY ( S_id ),
  59. CONSTRAINT FK_ID_1 FOREIGN KEY ( S_dep_name ) REFERENCES tb_department ( dep_name ) ON UPDATE CASCADE ON DELETE CASCADE
  60. ) DEFAULT CHARACTER SET utf8;
  61. INSERT INTO tb_student VALUES
  62. ( 'xs01', '钟', '男', '20', '大数据学院' ),
  63. ( 'xs02', '何', '男', '20', '大健康学院' ),
  64. ( 'xs03', '黄', '女', '19', '工程学院' ),
  65. ( 'xs04', '冯', '男', '21', '体育学院' ),
  66. ( 'xs20652114267', '刘', '男', '20', '学院' );
  67. SELECT * FROM tb_student;
  68. DROP TABLE IF EXISTS tb_techer;
  69. CREATE TABLE tb_techer (
  70. t_id VARCHAR ( 20 ) NOT NULL COMMENT '教师号',
  71. t_name VARCHAR ( 20 ) NOT NULL COMMENT '姓名',
  72. t_sex ENUM ( '男', '女' ) NOT NULL COMMENT '性别',
  73. t_technical VARCHAR ( 20 ) NOT NULL COMMENT '职称',
  74. S_dep_name VARCHAR ( 20 ) NOT NULL COMMENT '系名',
  75. PRIMARY KEY ( t_id ),
  76. CONSTRAINT FK_ID_2 FOREIGN KEY ( S_dep_name ) REFERENCES tb_department ( dep_name ) ON UPDATE CASCADE ON DELETE CASCADE
  77. ) DEFAULT CHARACTER SET utf8;
  78. INSERT INTO tb_techer VALUES
  79. ( 'js01', '钟', '男', '高级教师', '大数据学院' ),
  80. ( 'js02', '何', '女', '一级教师', '大健康学院' ),
  81. ( 'js03', '黄', '男', '一级教师', '体育学院' ),
  82. ( 'js04', '何', '女', '二级教师', '工程学院' ),
  83. ( 'js20652114267', '刘', '男', '一级教师', '学院' );
  84. SELECT * FROM tb_techer;
  85. DROP TABLE IF EXISTS tb_tech;
  86. CREATE TABLE tb_tech (
  87. t_id VARCHAR ( 20 ) NOT NULL COMMENT '教师号',
  88. cou_id VARCHAR ( 20 ) NOT NULL COMMENT '课程号',
  89. PRIMARY KEY ( t_id, cou_id ),
  90. CONSTRAINT FK_ID_3 FOREIGN KEY ( t_id ) REFERENCES tb_techer ( t_id ) ON UPDATE CASCADE ON DELETE CASCADE,
  91. CONSTRAINT FK_ID_4 FOREIGN KEY ( cou_id ) REFERENCES tb_course ( cou_id ) ON UPDATE CASCADE ON DELETE CASCADE
  92. ) DEFAULT CHARSET = utf8;
  93. INSERT INTO tb_tech
  94. VALUES
  95. ( 'js01', 'kc01' ),
  96. ( 'js02', 'kc02' ),
  97. ( 'js03', 'kc03' ),
  98. ( 'js04', 'kc04' ),
  99. ( 'js20652114267', 'kc20652114267' );
  100. SELECT * FROM tb_tech;
  101. DROP TABLE IF EXISTS tb_record;
  102. CREATE TABLE tb_record (
  103. s_id VARCHAR ( 20 ) NOT NULL COMMENT '学号',
  104. cou_id VARCHAR ( 20 ) NOT NULL COMMENT '课程号',
  105. grade FLOAT NOT NULL COMMENT '成绩',
  106. PRIMARY KEY ( s_id, cou_id ),
  107. CONSTRAINT FK_ID_5 FOREIGN KEY ( s_id ) REFERENCES tb_student ( S_id ) ON UPDATE CASCADE ON DELETE CASCADE,
  108. CONSTRAINT FK_ID_6 FOREIGN KEY ( cou_id ) REFERENCES tb_course ( cou_id ) ON UPDATE CASCADE ON DELETE CASCADE
  109. ) DEFAULT CHARSET = utf8;
  110. INSERT INTO tb_record
  111. VALUES
  112. ( 'xs01', 'kc01', '55' ),
  113. ( 'xs02', 'kc02', '88' ),
  114. ( 'xs03', 'kc03', '90' ),
  115. ( 'xs04', 'kc04', '91' ),
  116. ( 'xs20652114267', 'kc20652114267', '100' );
  117. SELECT * FROM tb_record;
  118. #11、 查看数据库中的所有表
  119. SHOW TABLES;
  120. #12、 查看表结构
  121. DESC tb_course;
  122. #13、 查看创建表的 SQL 语句
  123. SHOW CREATE TABLE tb_course;
  124. CREATE TABLE `tb_course` (
  125. `cou_id` VARCHAR(20) NOT NULL COMMENT '课程号',
  126. `cou_name` VARCHAR(20) NOT NULL COMMENT '课程名',
  127. PRIMARY KEY (`cou_id`)
  128. ) ENGINE=INNODB DEFAULT CHARSET=utf8
  129. #14、 添加数据,每个表5条模拟数据,其中有一条是自己的数据,倒回去截图
  130. #INSERT INTO 表名 VALUES(),(),(),(),();
  131. #SELECT * FROM 表名
  132. #15、 复制学生表,表名用自己姓名首字母 -- create table 新表 select * from 旧表
  133. CREATE TABLE tb_lgp LIKE tb_student;
  134. SELECT * FROM tb_lgp;
  135. #16.将tb_student表的数据蠕虫复制到用自己姓名创建表中
  136. INSERT INTO tb_lgp SELECT * FROM tb_student;
  137. SELECT * FROM tb_lgp;
  138. #复制表2的所有列到表1中 -- INSERT INTO 表名 1 SELECT * FROM 表名 2;
  139. #17、 为复制的表添加一个电话字段s_telephone,数据类型为varchar(12)
  140. ALTER TABLE tb_lgp ADD s_telephone VARCHAR(12);
  141. SELECT * FROM tb_lgp;
  142. DESC tb_lgp;
  143. #18、 修改复制的表里面字段s_telephone,数据类型为int(20)
  144. ALTER TABLE tb_lgp MODIFY s_telephone INT(20);
  145. DESC tb_lgp;
  146. #修改列名:ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
  147. #删除列:ALTER TABLE 表名 DROP 列名;
  148. DESC tb_lgp;
  149. #19.修改复制的表字符集为gbk: ALTER TABLE 表名 CHARACTER SET 字符集;
  150. ALTER TABLE tb_lgp CHARACTER SET gbk;
  151. #20.修改复制表的表名为tb_原表名
  152. RENAME TABLE tb_lgp TO tb_liuguoping;
  153. SELECT * FROM tb_liuguoping;
  154. #21、 删除列复制表里面字段s_telephone
  155. ALTER TABLE tb_liuguoping DROP s_telephone;
  156. #查看
  157. DESC tb_liuguoping;
  158. #22、 为复制的表添加一个老师的数据
  159. INSERT INTO tb_liuguoping VALUES
  160. ( 'xs06', 'dsj', '男', '30', '大数据学院' );
  161. SELECT * FROM tb_liuguoping;
  162. #23、 修改复制表里面大数据的年龄为100
  163. #UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
  164. #注:修改复制的表里面字段S_age,数据类型为int(3)
  165. ALTER TABLE tb_liuguoping MODIFY S_age INT(20);
  166. UPDATE tb_liuguoping SET S_age ='100' WHERE tb_liuguoping.S_id='xs06';
  167. #24、 删除复制表里面老师的数据
  168. DELETE FROM tb_liuguoping WHERE S_id='xs06';
  169. SELECT * FROM tb_liuguoping;
  170. #25、 使用 truncate 删除复制表中所有记录
  171. TRUNCATE TABLE tb_liuguoping;
  172. #26、 删除复制的表
  173. DROP TABLE tb_liuguoping;
  174. SHOW TABLES;
  175. #27、 查询学生表(tb_student)表里面数据,要求只显示中文别名学号和姓名字段的数据
  176. SELECT S_id AS 学号, S_name AS 姓名 FROM tb_student;
  177. #28、 (DISTINCT清除重复值)查询学生表(tb_student)里面性别的种类
  178. SELECT DISTINCT S_sex FROM tb_student;
  179. #29、 查询选修表(tb_record)里面成绩整体上浮50分的结果
  180. SELECT grade+50 FROM tb_record;
  181. #30、 查询学生表(tb_student)自己的那条数据
  182. SELECT * FROM tb_student WHERE S_id='xs20652114267';
  183. #31、 查询学生表(tb_student)年龄大于等于18岁同学
  184. SELECT * FROM tb_student WHERE S_age>18;
  185. #32、 查询学生表(tb_student),年龄在18,19的同学
  186. SELECT * FROM tb_student WHERE S_age=18 || S_age=19;
  187. #33、 查询教师表(tb_techer)姓钟的老师信息
  188. SELECT * FROM tb_techer WHERE t_name LIKE '%钟%';
  189. #34、 用count()函数统计tb_student表中记录的条数
  190. SELECT COUNT(0) FROM tb_student;
  191. #35、 查询学生表、课程表、选修表中的数据,要求只显示姓名,课程名,成绩
  192. 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;
  193. #36、 创建视图cj_view,视图内容要求包含id,姓名,课程名,成绩
  194. 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 ;
  195. #查询
  196. SELECT * FROM cj_view;
  197. #37、 用sum函数统计cj_view视图中总成绩,要求显示总分字段
  198. SELECT SUM(成绩) AS 总分 FROM cj_view WHERE cj_view.成绩;
  199. #38、 用avg函数统计cj_view视图中平均分
  200. SELECT AVG(成绩) AS 平均分 FROM cj_view WHERE cj_view.成绩;
  201. #39、 用min函数统计cj_view视图中最低分
  202. SELECT MIN(成绩) AS 最低分 FROM cj_view WHERE cj_view.成绩;
  203. #40、 用max函数统计cj_view视图中最高分
  204. SELECT MAX(成绩) AS 最高分 FROM cj_view;
  205. #41、 查询cj_view视图中所有记录,并按照成绩进行降序排序
  206. #select * from stu order by age asc;
  207. #order by:是排序的关键字
  208. #asc:代表的是升序
  209. #desc: 代表降序
  210. #age:表示的是age字段
  211. SELECT * FROM cj_view ORDER BY 成绩 DESC;
  212. #42、 将tb_student中数据按照s_sex进行分组查询,计算出每组各有多少名学生
  213. #简单的分组查询:SELECT * FROM tb_student GROUP BY S_sex;
  214. SELECT COUNT(0)FROM tb_student GROUP BY S_sex;
  215. #43、 查询tb_student表中第2位到第4位学生信息
  216. SELECT * FROM tb_student WHERE S_id IN ('xs02','xs04');
  217. #-- 查询 id 不是 1 或 3 或 5 的学生
  218. #select * from student3 where id not in(1,3,5);
  219. #44、 用交叉连接查询tb_student和tb_department所有数据
  220. SELECT * FROM tb_student,tb_department;
  221. SELECT * FROM tb_student CROSS JOIN tb_department;
  222. #45、 查询分数大于60分学生姓名
  223. SELECT * FROM tb_student,tb_record WHERE tb_student.S_id=tb_record.s_id AND tb_record.grade>60;
  224. #46、 创建存储过程cj_proc,作用是查询姓名,课程名,成绩
  225. DELIMITER //
  226. CREATE PROCEDURE cj_proc(IN 姓名1 VARCHAR(20),OUT 课程名1 VARCHAR(20),成绩1 FLOAT)
  227. BEGIN
  228. SELECT 姓名,课程名,成绩 FROM cj_view;
  229. END//
  230. DELIMITER ;
  231. #查询存储过程
  232. CALL cj_proc(@姓名1,@课程名1,@成绩1);
  233. #查询视图
  234. SELECT * FROM cj_view;
  235. DESC tb_student;
  236. DESC tb_course;
  237. DESC tb_record;
  238. DROP PROCEDURE cj_proc;
  239. #删除存储过程
  240. #1.drop procedure 存储过程名称;2.drop procedure if exists 存储过程名称;
  241. DROP PROCEDURE cj_proc1;
  242. #47、 创建存储过程cj_proc1,作用是输入查询学生的学号后返回一个成绩
  243. DELIMITER //
  244. CREATE PROCEDURE cj_proc1(IN S_id VARCHAR(20) , OUT grade VARCHAR(20))
  245. BEGIN
  246. SELECT 成绩 INTO grade FROM cj_view WHERE 学号=S_id;
  247. END//
  248. DELIMITER ;
  249. CALL cj_proc1('xs01',@grade);
  250. SELECT @grade;
  251. #48、 为tb_student表创建一个名为insert_zxg触发器,触发器作用查询tb_student中自己姓名和年龄
  252. DELIMITER //
  253. CREATE TRIGGER insert_zxg AFTER INSERT
  254. ON tb_student FOR EACH ROW
  255. BEGIN
  256. UPDATE tb_techer SET t_technical='教授';
  257. END //
  258. DELIMITER ;
  259. SELECT * FROM tb_techer;
  260. #执行该条并触发
  261. INSERT INTO tb_student VALUES('xs011', 'll', '女', '18', '大数据学院' );
  262. SELECT * FROM tb_student;
  263. #查询触发器
  264. SHOW TRIGGERS;
  265. #删除触发器
  266. DROP TRIGGER insert_dsj;
  267. #49、在C盘用自己姓名首字母名命一个文件夹,将用自己创建的数据库备份到该文件夹,文件名命名方式为:姓名首字母+当前日期
  268. #cmd下:
  269. mysqldump -u root -p123456 lgp > c:/lgp/lgp1228.SQL
  270. #50、 在sqlyog创建一个dsj数据库,将上一题备份数据库恢复到名为dsj数据库里面
  271. CREATE DATABASE dsj;
  272. USE dsj;
  273. DROP DATABASE dsj;
  274. #注:
  275. cmd下:mysql -u root -p123456 dsj< c:/lgp1220.SQL
  276. cmd进入MySQL并使用需要用来备份上一个数据库的命令:source C:/LGP/lgp1210.SQL;
复制代码

 

 

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行