DML和DQL
创建表
CREATE TABLE IF NOT EXISTS `person` (
`id` INT(4) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(64) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(64) NOT NULL DEFAULT '123456' COMMENT '密码',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
-
之后的操作使用该表进行
DML
-
数据库操作语言
insert(增加)
语法:
INSERT INTO `表名`(`字段1`,`字段2`,`字段3`...) VALUES('值1','值2','值3'...);
单个字段情况:
INSERT INTO `person`(`name`) VALUES('李万东');
多个字段情况:
INSERT INTO `person`(`name`,`pwd`) VALUES('张三','666666');
多个数据情况:
INSERT INTO `person`(`name`,`pwd`) VALUES('李四','155555'),('王五','465465');
update(修改)
语法:
update `表名` set `字段名`='值' where 判断条件;
修改单个字段情况:
update `person` set `name`='王麻子' where `id`=5;
修改多个字段情况:
UPDATE `person` SET `name`='吴桐',`pwd`=99999 WHERE `id`=4;
如果不设置条件的情况下,默认会修改该字段的所有行,务必注意!面向监狱编程get
delete和truncate(删除)
delete
语法:
DELETE FROM `表名` WHERE 判断条件;
跑路情况:
DELETE FROM `person`;
删除单条数据情况:
DELETE FROM `person` WHERE `id`=2;
truncate
语法:
TRUNCATE `库名`;
清空数据库:
TRUNCATE `test`;
清空表:
TRUNCATE TABLE `person`;
区别
-
相同点
-
都能删除数据,不会删除表结构。
-
-
不同点
-
truncate可以重新设置自增列,计数器归零。
-
truncate不会影响事务。
-
初识DQL
本章节使用狂神P16SQL脚本导入的数据库学习。
地址:
狂神Mysql视频:https://www.bilibili.com/video/BV1NJ411J79W?p=16
Select
-
数据库查询语言
-
数据库中最核心的语言,最重要的语句。
-
使用频率极高。
1.简单语法
SELECT `字段名`,... FROM `表名`;
2.查询指定字段
SELECT `studentno`,`address` FROM `student`;
3.查询后更改表头
SELECT `studentno` AS 学号,`address`AS 地址 FROM `student`;
?
#AS可以给字段起别名,也能给表起别名。
4.拼接字符串
SELECT CONCAT('家庭住址:',`address`) AS 地址 FROM `student`;
5.去重
SELECT `studentno` FROM `result`;
SELECT DISTINCT `studentno` FROM `result`;
6.拓展
SELECT VERSION();
#通过函数查询mysql版本。
?
SELECT 22+2*1;
#查询表达式结果。
?
SELECT @@auto_increment_increment;
#查询系统变量。
?
SELECT `studentresult`+1 FROM `result`;
#在查询返回的结果中代入表达式计算。