命令行连接MySQL
mysql -h localhost -u root -p
mysql -u root -p
#1.数据库的创建和删除
#1.1创建数据库
CREATE DATABASE MySchool;
#1.2删除数据库
DROP DATABASE MySchool;
#1.3查看数据库
SHOW DATABASES;
#2.表的创建 修改 查看 以及删除
#2.1创建表
#创建学生表
DROP TABLE IF EXISTS student;
CREATE TABLE student(
studentNo INT(4) NOT NULL PRIMARY KEY,
loginPwd VARCHAR(20) NOT NULL,
studentName VARCHAR(50) NOT NULL,
sex CHAR(2) DEFAULT ‘男’ NOT NULL ,
gradeId INT(4),
phone VARCHAR(50),
address VARCHAR(255) DEFAULT ‘地址不详’,
bornDate DATETIME,
email VARCHAR(50),
identityCard VARCHAR(18) UNIQUE KEY
)COMMENT=“学生表”;#表注释 “学生表”
#创建科目表
DROP TABLE IF EXISTS subject
CREATE TABLE subject(
subjectNo INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
subjectNmae VARCHAR(50),
classHour INT(4),
gradeId INT(4)
)
#创建成绩表
DROP TABLE IF EXISTS result;
CREATE TABLE result(
studentNo INT(4) NOT NULL COMMENT ‘学号’,
subjectNo INT(4) NOT NULL COMMENT ‘课程编号’,
examDate DATETIME DEFAULT NOW() NOT NULL COMMENT ‘考试日期’,
score INT(4) COMMENT ‘考试成绩’ NOT NULL
);
#创建年级表
DROP TABLE IF EXISTS grade;
CREATE TABLE grade(
gradeId INT(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
gradeName VARCHAR(50) NOT NULL
);
#2.2查看当前数据库表
SHOW TABLES;
#2.3查看表结构
DESCRIBE student;
#2.4删除表
DROP TABLE IF EXISTS student;
#2.5修改表
#2.5.1修改表名
DROP TABLE IF EXISTS demo01;
CREATE TABLE IF NOT EXISTS demo01(
id INT NOT NULL,
name VARCHAR(20) NOT NULL
);
ALTER TABLE demo01 RENAME TO demo02;
#2.5.2添加表字段
ALTER TABLE demo02 ADD pwd VARCHAR(20) NOT NULL;
#2.5.3修改字段
ALTER TABLE demo02 CHANGE pwd PASSWORD VARCHAR(10);
#2.5.4删除字段
ALTER TABLE demo02 DROP PASSWORD;
#2.5.5添加约束
ALTER TABLE demo01
ADD CONSTRAINT PK_id PRIMARY KEY(id);
ALTER TABLE result
ADD CONSTRAINT FK_studentNo FOREIGN KEY(studentNo) REFERENCES student(studentNo);
#2.5.6删除约束
ALTER TABLE demo01
DROP PRIMARY KEY;
#2.5.7设置自增以及使用
#3.DML和DQL
/*3.1存储引擎 指定了表的存储类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算机中的存储方式。
MySQL5.5支持的存储引擎有InnoDB、MYISAM、Memory、MRG_MyISAM、Archive、Federated、CSV、BLACKHOLE等9中
常用的存储引擎InnoDB、MYISAM
InnoDB存储引擎:在事务处理上有优势,,需要进行频繁的更新、删除操作,同时还对事务的完整性要求比较高,需要实现并发控制,适合使用该存储引擎。
MYISAM存储引擎:不支持事务,也不支持外键,访问速度比较快,因此对不需要事务处理、以访问为主的应用适合使用该引擎。
如果想修改默认存储引擎,可以通过配置向导,也可以通过配置文件my.ini eg:defalutstorage-engine=MylSAM
/
#3.1.1查看系统所支持的引擎类型
SHOW ENGINES;
#3.1.2查看当前的默认存储引擎
SHOW VARIABLES LIKE ‘storage_engine%’;
#3.1.3指定表的存储引擎 (有时也称表的存储引擎为表类型)
CREATE TABLE demo01(
id INT(4)
)ENGINE=MYISAM;
#3.1.4数据文件的存储位置 C:\ProgramData\MySQL\MySQL Server 5.6\data
#3.1.5MyISAM类型的表文件
/

1…frm文件:表结构定义文件,存放表的元数据,包括表结构定义的信息,任何存储类型的表都会有。
2…MYI文件:索引文件,主要存放MyISAM类型表的索引信息。
3…MYD文件:数据文件,存放表中数据的文件。
/
#3.1.6InnoDB类型的表文件
/

1…frm文件:表结构定义文件,存放表的元数据,包括表结构定义的信息,任何存储类型的表都会有。
2…ibd文件:数据文件,可以通过my.ini文件中的参数innodb_data_home_dir查询或修改。
eg:innodb_data_home_dir=“D:/MySQL DataFiles/”
/
#3.1.7MySQL多行插入
INSERT INTO demo01 VALUES(1,‘张三’),(2,‘李四’);
#3.1.8将查询结果插入到新表
CREATE TABLE demo02 (SELECT id,name FROM demo01);
#添加数据
/
subject表数据/
INSERT INTO subject VALUES(1,‘LogicJava’,220,1),(2,‘HTML’,160,1),(3,‘Java OOP’,230,2);
/student表数据/
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10000’,‘123’,‘郭靖’,‘男’,‘1’,‘13645667783’,‘天津市河西区’,‘1990-09-08 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10001’,‘123’,‘李文才’,‘男’,‘1’,‘13645667890’,‘地址不详’,‘1994-04-12 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10002’,‘123’,‘李斯文’,‘男’,‘1’,‘13645556793’,‘河南洛阳’,‘1993-07-23 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10003’,‘123’,‘张萍’,‘女’,‘1’,‘13642345112’,‘地址不详’,‘1995-06-10 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10004’,‘123’,‘韩秋洁’,‘女’,‘1’,‘13812344566’,‘北京市海淀区’,‘1995-07-15 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10005’,‘123’,‘张秋丽’,‘女’,‘1’,‘13567893246’,‘北京市东城区’,‘1994-01-17 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10006’,‘123’,‘肖梅’,‘女’,‘1’,‘13563456721’,‘河北省石家庄市’,‘1991-02-17 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10007’,‘123’,‘秦洋’,‘男’,‘1’,‘13056434411’,‘上海市卢湾区’,‘1992-04-18 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘10008’,‘123’,‘何睛睛’,‘女’,‘1’,‘13053445221’,‘广州市天河区’,‘1997-07-23 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘20000’,‘123’,‘王宝宝’,‘男’,‘2’,‘15076552323’,‘地址不详’,‘1996-06-05 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘20010’,‘123’,‘何小华’,‘女’,‘2’,‘13318877954’,‘地址不详’,‘1995-09-10 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘30011’,‘123’,‘陈志强’,‘男’,‘3’,‘13689965430’,‘地址不详’,‘1994-09-27 00:00:00’,NULL,NULL);
INSERT INTO student (studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, email, identityCard) VALUES(‘30012’,‘123’,‘李露露’,‘女’,‘3’,‘13685678854’,‘地址不详’,‘1992-09-27 00:00:00’,NULL,NULL);
/result表数据/
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10000’,‘1’,‘2016-02-15 00:00:00’,‘71’);
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10000’,‘1’,‘2016-02-17 00:00:00’,‘60’);
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10001’,‘1’,‘2016-02-17 00:00:00’,‘46’);
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10002’,‘1’,‘2016-02-17 00:00:00’,‘83’);
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10003’,‘1’,‘2016-02-17 00:00:00’,‘60’);
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10004’,‘1’,‘2016-02-17 00:00:00’,‘60’);
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10005’,‘1’,‘2016-02-17 00:00:00’,‘95’);
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10006’,‘1’,‘2016-02-17 00:00:00’,‘93’);
INSERT INTO result (studentNo, subjectNo, examDate, score) VALUES(‘10007’,‘1’,‘2016-02-17 00:00:00’,‘23’);
#3.1.9删除数据
/
1.DROP FROM 表名 [where限制条件]
2.truncate table 表名 执行速度快,删除后表的标识列会进行重新编号,删除数据不能恢复还原
/
#3.1.10数据查询
#1.起别名
SELECT studentNo 学号, studentName AS 姓名 FROM student;
#2.合并列查询 (存在问题)
SELECT firstName+’.’+lastName AS 姓名 FROM employee;
#4.常用函数
/

1.聚合函数
MAX() MIN() COUNT() AVG() SUM()
2.字符串函数
CONCAT(str1,str2,…,str3)
INSERT(str,pos,len,newstr)
LOWER(str)
UPPER(str)
SUBSTRING(str,startPos,len)
3.时间日期函数
CURDATE() 获取当前日期
CURTIME() 获取当前时间
NOW() 获取当前日期和时间
WEEK(date) 返回一年中的第几周
YEAR(date) 返回年份
HOUR(time) 返回小时
MINUTE(time) 返回分钟
DATEDIFF(date1,date2) 返回日期相隔的天数
ADDDATE(date,n) 返回给定时间加上指定天数后的时间
4.数学函数
CELL(x)
FLOOR(x)
RAND() 返回0~1之间的随机数
*/
#5.limit子句
/*注意:1.order by子句在MySQL中不再是放在最后
2.Limit子句第一个参数表示起始位置可以省略默认为0,第一条数据的起始位置为0
第二个参数表示要显示的条数
/
SELECT * FROM Student WHERE gradeId=1 ORDER BY studentNo LIMIT 4;
SELECT * FROM Student WHERE gradeId=1 ORDER BY studentNo LIMIT 4,4;
#6.子查询 连接查询 分组查询
#7.创建临时表
CREATE TEMPORARY TABLE TT1(SELECT * FROM Student WHERE gradeId=1 ORDER BY studentNo LIMIT 4,5);
SELECT * FROM TT1;
#8.事务
/

1.MySQL中支持事务的引擎有InnDB、BDB,InnDB存储引擎事务主要通过UNDO日志和REDO日志实现
UNDO日志:复制事务执行前的数据,用于在事务发生异常时回滚数据。
REDO日志:记录在事务执行中,每条对数据进行更新的操作,当事务提交时,该内容将被刷新到磁盘。
2.事务的特性:
原子性(Atomicity):事务是一个完整的操作,事务的各元素是不可分的。
一致性(Consistency):当事务完成时,数据必须处于一致状态。
隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。
持久性(Durability):事务的持久性是指无论系统是否发生了故障,事务处理的结果都是永久的,
3.事务使用步骤:
1.开始事务 begin或start TRANSACTION;
2.提交事务 COMMIT;
3.回滚事务 ROLLBACK;
4.设置事务自动提交关闭或开启
set autocommit = 0|1;
/
#eg:转账 张三给李四转账1000元
CREATE TABLE Bank(
id INT(4) PRIMARY KEY,
name VARCHAR(20) NOT NULL,
account INT NOT NULL
)
INSERT INTO Bank VALUES(1,‘张三’,500),(2,‘李四’,2000);
SELECT * FROM bank;
BEGIN;
UPDATE Bank SET account-=1000 WHERE name=‘张三’;
UPDATE Bank SET account+=1000 WHERE name=‘李四’;
COMMIT;
#9.视图
CREATE VIEW vw_stuInfo
AS
SELECT studentNo,studentNAme,phone,address,email FROM Student;
SELECT * FROM vw_stuInfo;
DROP VIEW IF EXISTS vw_stuInfo;
#10.索引
/

1.普通索引
2.唯一索引
3.主键索引
4.复合索引
5.全文索引
6.空间索引
创建语法:create [unique|fulltext|spatial] index_name on table_name(column_name[length]…)
length:指定索引长度,可选参数,只有字符串类型才能指定索引长度
*/
CREATE INDEX index_student_studentName
ON student(studentName)
DROP INDEX index_student_studentName ON student;
#10.1查看索引
SHOW INDEX FROM student;
#11.数据库的备份与恢复
/*1.DOS命令备份与恢复
1.mysqldump 备份命令 将包含数据的表结构和数据内容转换成相应的create语句和insert into 语句
mysqldump -u username -h host -p password dbname[tbname1[,tbname2…]] > filename.sql
2.mysql 还原命令 mysql -u username -p [dbname] < filename.sql
/
CREATE DATABASE MySchoolDB;
USE myschooldb;
SELECT * FROM student;
DROP TABLE student;
/
2.mysql命令恢复数据库 */
source d:\BACKUP\student.sql;
/*3.通过复制文件实现数据备份和恢复
通过C:\ProgramData\MySQL\MySQL Server 5.6\data找到指定数据库文件
3.1flush tables; 3.2停止数据库服务
*/
#4.表数据导出到文本文件
USE Myschool;
SELECT * FROM result INTO OUTFILE ‘d:/backup/result.txt’
#5.文本文件导入到数据库
USE myschoolDB;
CREATE TABLE result(
studentNo INT(4) NOT NULL COMMENT ‘学号’,
subjectNo INT(4) NOT NULL COMMENT ‘课程编号’,
examDate DATETIME DEFAULT NOW() NOT NULL COMMENT ‘考试日期’,
score INT(4) COMMENT ‘考试成绩’ NOT NULL
);
LOAD DATA INFILE ‘d:/backup/result.txt’ INTO TABLE result;
SELECT * FROM result;
#查看MySQL帮助
HELP DATA TYPES;
HELP ALTER TABLE;
#注意: 设置结果集以某种编码格式显示 SET NAMES GBK;

北大青鸟深圳嘉华分享MySQL基础知识相关推荐

  1. 北大青鸟深圳嘉华分享Hibernate基础入门内容

    0.Hibernate基础 0.1.什么是hibernate hibernate是免费开源的框架,是一个OR-Mapping映射工具, 将实体类和数据库表形成映射关系,是一个优秀的持久层解决方案,hi ...

  2. 北大青鸟深圳嘉华分享MySQL用户管理

    1.创建用户 CREATE USER teacher@localhost IDENTIFIED BY '123456'; CREATE USER student IDENTIFIED BY '1234 ...

  3. 北大青鸟嘉华学院python_北大青鸟深圳嘉华:Python好学吗?

    原标题:北大青鸟深圳嘉华:Python好学吗? Python作为近两年随着人工智能一道火起来的语言,很多人知道Python,但是并不清楚的了解.你可能听说过C语言,听说过java语言,php语言,we ...

  4. 北大青鸟深圳嘉华学校分享Hibernate查询

    1.Hibernate查询方式 1.get|load(class,id):OID查询 2.HQL(Hibernate Query Lanage):HQL查询 3.QBC(Query By Criter ...

  5. 北大青鸟深圳嘉华学校分享Hibernate关联映射

    关联映射: 1.关于n:1 使用emp和dept进行举例 单项多对一: emp: entity:+private Dept dept: hbm.xml:+ dept无需修改 双向一对多:emp:ent ...

  6. 2.MySQL 基础知识

    文章目录 MySQL 基础知识 知识点一 : MySQL命令行常用命令 知识点二 : 持久化 相关概念 知识点三 : 数据库 相关概念 知识点四 : DB 和 DBMS 关系图示 知识点五 : MyS ...

  7. mysql+连接每一行数据_MySQL_深入mysql基础知识的详解,1.每个客户端连接都会从服务 - phpStudy...

    深入mysql基础知识的详解 1.每个客户端连接都会从服务器进程中分到一个属于它的线程.而该连接的相应查询都都会通过该线程处理. 2.服务器会缓存线程.因此并不会为每个新连接创建或者销毁线程. 3.当 ...

  8. MySQL工作中的实际用_总结工作中经常用到的mysql基础知识

    总结工作中经常用到的mysql基础知识 发布时间:2020-06-08 11:27:30 来源:51CTO 阅读:217 作者:三月 本文主要给大家介绍工作中经常用到的mysql基础知识,文章内容都是 ...

  9. mysql基础知识(二)

    这一篇是第二部分,要查看第一部分,请查看这个链接 mysql基础知识(一) DQL语言 1.1简单的单表查询 查询表的通用格式:select [distinct] [*] [列名1,列名] from ...

最新文章

  1. 整理了一下SQL Server里面可能经常会用到的日期格式转换方法
  2. unity shader入门精要_shader入门数学基础矩阵篇
  3. Spring MVC 基于AnnotationFormatterFactory接口实现自定义的规则
  4. iBatis 配置文件详解
  5. CSS 关于雪碧图预处理和后处理方案的讨论
  6. [转载] Python中str跟int的转换
  7. 6月国产网络游戏审批信息公布 共计86款游戏过审
  8. c语言寻找文件指令,c语言实现文件查找
  9. 复习webpack4之PWA打包配置
  10. 射频卡读写器c#源码
  11. 【测试】嵌入式软件测试VS一般软件测试
  12. Java——NIO和IO的区别
  13. python中英文古风排版_ET(CAD)-中国风复古女唐装制版教程04
  14. 游戏直播的下一站在哪?战旗TV开启线上线下联动
  15. R 语言与中心极限定理
  16. Schrodinger软件学习计算机辅助药物设计——基本操作以及分子对接
  17. 2020年中国化学发光行业发展现状、竞争格局及未来发展趋势分析,市场规模爆发式增长,成为体外诊断中的“主力军”「图」
  18. 聊天室案例,模仿QQ,微信群聊
  19. 国外接活网站介绍:Elance vs GetAFreelancer vs ScriptLance
  20. 用Python删除电脑中的重复文件!竟然这么简单!

热门文章

  1. 2021数据科学平台领域最具商业合作价值企业盘点
  2. 基于JavaWEB的网上订餐系统设计与实现
  3. 民生银行十五年的数据体系建设,深入解读阿拉丁大数据生态圈、人人BI 是如何养成的?...
  4. 分割字符串(每个子串的ASCII码值的和均为水仙花数)
  5. 建筑CAD软件导出超大T3或T8格式图纸时卡顿怎么办?
  6. 众所周知,在每一个彗星后都有一只UFO。这些UFO时常来收集地球上的忠诚支持者。不幸的是,他们的飞碟每次出行都只能带上一组支持者。因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走。他们为
  7. AD快捷键笔记(画板前一定要看看)
  8. android 低电量卡,[转载]Android 中低电量的处理方法
  9. 51单片机C语言code定义,51单片机数组的定义方法(code与data的作用)
  10. if-else选择结构 天意如此 选择恐惧症福音