目录
1)DQL(Data Query Language:数据查询语言)
关于MySQL的运用
SHOW CREATE DATABASE 库名--查看创建数据库的的语句
SHOW CREATE TABLE 表名--查看创建表的语句
DESC 表名 --显示表的结构
1、创建数据库
1)创建库语句
CREATE DATABASE 库名
例:CREATE DATABASE school
2)使用库语句
USE 库名
例:USE school
2、创建数据库表
1)创建表语句
CREATE TABLE IF NOT EXISTS `表名` (
`字段名` 列类型[属性] [索引] [注释],
`字段名` 列类型[属性] [索引] [注释],
···········
`字段名` 列类型[属性] [索引] [注释]
)[表类型] [字符集设置] [注释]
例:
创建学生表,学号int、登陆密码varchar(20)、姓名、性别vachar(2)、出生日期(datetime)、家庭住址、emil
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`pwd` VARCHAR(20) NOT NULL DEFAULT(123456) COMMENT '密码',
`name` VARCHAR(10) NOT NULL DEFAULT('匿名') COMMENT '姓名',
`sex` VARCHAR(2) NOT NULL DEFAULT('女') COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '地址',
`emil`VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、修改和删除数据表字段
1)修改表名
ALTER TABLE 表名RENAME AS 新表名
例:ALTER TABLE student RENAME AS student1
2)增加表的字段
ALTER TABLE 表名 ADD 字段名 列属性
例:ALTER TABLE student1 ADD age INT(11)
3)修改表的字段
修改约束:ALTER TABLE 表名MODIFY 字段名 列属性
例:ALTER TABLE student1 MODIFY age VARCHAR(11)
重命名:ALTER TABLE 表名change 字段名 新字段名 列属性
例:ALTER TABLE student1 change age age1 INT(1)
4)删除表的字段
ALTER TABLE 表名 DROP字段名
例:ALTER TABLE student1 DROP age1
5)删除表
DROP TABLE IF EXISTS 表名
例:DROP TABLE IF EXISTS student1
4、增删改
1)insert(插入语句)
注:
- 主键自增时,不强制insert主键
- 字段是可以省略的,但是后面的值必须要一一对应,不能少
- 可以同时插入多条数据,values后面的值需要使用,隔开即可
INSERT INTO 表名([字段名1,字段2,字段3])value('值1','值2','值3', ....)
例:
INSERT INTO `student1`(`name`) VALUES('张三')
INSERT INTO `student1`(`name`) VALUES('张三'),('李四')
INSERT INTO `student1`(`pwd`,`name`,`sex`) VALUES('66666','张三','男')
INSERT INTO `student1`(`pwd`,`name`,`sex`)
VALUES('66666','张三','男'),('88888','李四','男')
INSERT INTO `student1`
VALUES(12,'66666','张三','男','2019-1-1','asddd','[email protected]',11)
2)update(修改语句)
注:
- 不指定条件的情况下,会改动所有的表
- value是一个具体的值,也可以是一个变量
UPDATE 表名 set colnum_name = value where 条件
例:
UPDATE `student1` set `name`='王五' WHERE id = 2
UPDATE `student1` set `name`='王五', `sex`='男' WHERE id = 2 //修改多个属性逗号隔开
UPDATE `student1` set `birthday`=CURRENT_TIME WHERE id = 2
3)delete (删除语句)
DELETE FROM 表名 WHERE 条件
例:DELETE FROM `student1` WHERE id = 1
DELETE FROM 表名 //删除表中所有数据
TRUNCATE 表名 //删除表中所有数据
注:
delete和truncate的区别
相同点:都能删除数据,都不会删除表结构
不同点:truncate重新设置自增列,计数器会归零,不会影响事务
5、DQL查询数据
1)DQL(Data Query Language:数据查询语言)
SELECT 字段 FROM 表
例:
//查询全部学生
SELECT * FROM student1
//查询指定字段
SELECT `name`,`sex` FROM student1
//给结果起一个别名,可以给字段和表起别名,
SELECT `name` AS 学号,`sex` AS 学生姓名 FROM student1 AS s
//函数 concat(a,b)
SELECT CONCAT('姓名:',name) AS newname FROM student1
//distinct 去除select查询出来的结果中重复的数据,重复的数据只显示一条
SELECT DISTINCT 字段名 FROM 表名
2)联表查询JoinOn
- 分析需求,分析查询的字段来自哪些表
- 确定使用哪种查询 要查询哪些数据 select .....
- 从哪几个表中差 FROM 表 XXX Join 连接的表 on 交叉条件
- 假设存在一种多张表查询,慢慢来,先查询两张表然后慢慢增加
3、分页和排序
排序:升序ASC,降序DESC
ORDER BY 通过哪个字段排序,怎么排
例:ORDER BY id ASC
分页:limit 起始值,页面的大小
例:limit 0,5 //第一个到第五个
limit 1,5 //第二个到第六个
limit 6,5 //第七个到第十一个
第一页 limit 0,5 (1-1)*5
第二页 limit 0,5 (2-1)*5
第三页 limit 0,5 (3-1)*5
第n页 limit 0,5 (n-1)*pagesize,pagesize
n:当前页
Pagesize:页面大小
(n-1)*pagesize:起始值
数据总数/页面大小=总页数