数据模型
通过MySQL客户端连接数据库管理系统DBMS,然后使用SQL语言通过DBMS操作数据库。
其中数据库管理系统包含Oracle、Mysql、SQLserver等
DDL、DML、DQL、DCL
DDL
值得注意的一些点:
数据库操作
创建数据库
- create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;
删除数据库
- drop database [ if exists ] 数据库名 ;
表操作
创建表结构
CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ], ......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;
- 注意: […] 内为可选参数,最后一个字段后面没有逗号
查询指定表的建表语句
- show create table 表名 ;
表操作
-- 添加字段
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
-- 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
-- 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
-- 删除字段
ALTER TABLE 表名 DROP 字段名;
-- 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
-- 删除表
DROP TABLE [ IF EXISTS ] 表名;
DML
DQL
-- 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
-- 查询所有员工的工作地址,起别名,as可以省略
select distinct workaddress as '工作地址' from emp;
条件where
- 比较运算符
常见的聚合函数
案例
-- 查询年龄为20,21,22,23岁的员工信息。
select * from emp where gender = '女' and age in(20,21,22,23);
-- 查询性别为 男 ,并且年龄在 20-40 岁(含)以内的姓名为三个字的员工。
select * from emp where gender = '男' and ( age between 20 and 40 ) and name like '___';
-- 统计员工表中, 年龄小于60岁的 , 男性员工和女性员工的人数。
select gender, count(*) from emp where age < 60 group by gender;
-- 查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按
-- 入职时间降序排序。
select name , age from emp where age <= 35 order by age asc , entrydate desc;
-- 查询性别为男,且年龄在20-40 岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,
-- 年龄相同按入职时间升序排序
select * from emp where gender = '男' and age between 20 and 40 order by age asc , entrydate asc limit 5 ;
执行顺序