MySQL的存储引擎:存储引擎有很多,这里只介绍MyISAM和InnoDB
- MyISAM和InnoDB的区别
- MyISAM:不需要事物,空间小,以查询访问为主
- InnoDB:多删除、更新操作,安全性高,事务处理及并发控制
查看当前默认存储引擎
- SHOW AVRIABLES LIKE 'storage_engine%';
设置表的搜索引擎
- 语法:CREATE TABLE 表名(#省略代码)ENGINE=存储引擎;
- 例:CREATE TABLE `myisam` (id INT(4))ENGINE=MyISAM;
DML语句--插入单条数据记录
- 语法:INSERT INTO 表名 [(字段名列表)] VALUES (值列表);
- 例:INSERT INTO `student`(`loginPwd`,`studentName`,`gradeId`,`phone`,`bornDate`)
- VALUES('123','黄小平',1,'13956799999','1996-5-8');
- 注意:字段名是可选的,如省略则依次插入所有字段
- 多个列表和多个值之间使用逗号分隔
- 值列表和字段名列表一一对应
- 如插入的是表中部分数据,字段名列表必填
DML语句--插入多条数据记录
- 语法:INSERT INTO 新表(字段名列表)VALUES(值列表1),(值列表2),……,(值列表n);
- 例:INSERT INTO `subject`(`subjectName`,`classHour`,`gradeID`)
- VALUES('Logic Java',220,1),('HTML',160,1),('Java OOP',230,2);
- 注意:为避免表结构发生变化引发的错误,建议插入数据时写明具体字段名!
DML语句——将查询结果插入新表
- 语法:CREATE TABLE 新表(SELECT 字段1,字段2…… FROM 原表);
- 例:CREATE TABLE `phoneList`(SELECT `studentName`,`phone`FROM `student`);
- 语义:创建一个名为phonelist的表,(从student查询studentName,phone);
更新数据记录
- 语法:UPDATE 表名SET 字段1=值1,字段2=值2,…,字段n=值n[WHERE 条件];
- 例:UPDATE student SET sex = ‘女’;
- WHERE address = ‘北京女子职业技术学校刺绣班’;
- 注:where起匹配作用,只有满足where条件的数据才会被更新,不写where条件会将所有数据更新
删除数据记录
- DELETE FROM 表名 [WHERE条件];
- TRUNCATE TABLE 表名;(注:TRUNCATE语句删除后将重置自增列,表结构及其字段、约束、索引保持不变,执行速度比DELETE语句快)
- 例:DELETE FROM student WHERE studentName = ‘王宝宝’;
- TRUNCATE TABLE student;
查询语法
查询全部的行和列
- 语法:SELECT * FROM `student`;
查询部分列
- SELECT <列名|表达式|函数|常量>
- FROM <表名>
- [WHERE <查询条件表达式>]
- [ORDER BY <排序的列名>[ASC或DESC]];注:DESC是倒叙
- 例:
- SELECT `studentNo`,`studentName`,`phone`,`address`,`bornDate`
- FROM `student`
- WHERE `gradeId` = 1
- ORDER BY `studentNo`;
数据查询-列别名
- SELECT `studentNo` AS 学生编号,`studentName` AS 学生姓名,
- `address `AS 学生地址
- FROM `student`
- WHERE `address` <> '河南新乡‘;注:AS起命名作用,或者叫起别名
查询空行
- 例:SELECT `studentName` FROM `student` WHERE `email` IS NULL;
常用函数——聚合函数
常用函数——字符串函数
常用函数——时间日期函数
常用函数——数学函数