SQL 分类
DDL操作
1、查询
show databases;
select database()
2、创建
create database 【if not exists】 数据库名 default charset utf8mb4(四个字节 ,utf8不是少)
3、删除
Drop database 【if exits】 数据库名
4、使用
use 数据库名
查询所有表:
- show tables
查询表结构:
- desc 表明
创建
create table tb_user( id int comment '编号', name varchar(50) '年龄', age int comment '年龄', gender varchar(1) comment '性别' ); show create table tb_user;
字符分类
char 性能高,varchar性能低,varchar随着输入的内容自动变长。
gender char(1)男女
案例:
create table emp( id int, workno varchar(10), name varchar(10) , gender char(1) , age tinyint unsigned , idcard char(18) , entrydate date )comment '员工表';
修改
alter table 表明 add 字段名 类型
alter table emp change nickname username varchar(30) alter table emp drop username
修改表明:
alter table 表明 rename to 新
删除表
drop table 【if exists】 表明 truncate table :删除后在重新创建,就是格式化
总结
DML:增删改
insert、update、delete
添加数据
insert into emp(id,workid,name,gender) valuse (1,12,'nifnd','male')
修改
update 表明 set 字段名=值, 字段名=值 where 【条件】
删除
delete from 表明 【where 条件】
delete from emp where gender='female' # 删除所有数据 delete from emp
总结
DQL 查询
查询多个字段
1、查询自定字段 select name,workno,age from emp; 2、查询所有字段 select * from emp; 3、查询所有员工的工作地址 select workaddress as '工作地址' from emp; 4、查询员工的上班地址(去重复) select distinct workaddresss '工作地址' from emp;
1 查询年龄大于88 select * from emp where age=88 2 小于20的员工 select * from emp where age<=20 3 查询没有身份证号的员工 select * from emp where idcard is null 4 查询身份证号的员工 select * from emp where idcard is not null 5 不能88的员工 select * from emp where age!=88 select * from emp where age<>88 6 在15 到20之间的员工 select * from emp where between 15 and 20 select * from emp where age=> 15 and age=< 20 7 等于18 20 22 的员工 select * from emp where age=18 or age=20 or age=12 select * from emp where age in(18,20,22) 8 员工两个字的 - 一个字段 % 任意字段 select * from emp where name like '_ _' 9 身份证最后一位是x的员工信息 select * from emp where idcard like '%X'
聚合函数
统计总数量 null 不算计数 select count(*) from emp 平均年龄 select avg(age) from emp 最大年龄 select max(age) from emp 西安地区的年龄之和 select sum(age) from emp where area='西安'
分组查询
- having 对已经查询的数据再进行过滤
根据性别分组,统计男、nv的数量 select gender,count(*) from emp group bu gen