库:
Show databases; //查看所有数据库
create database name //创建数据库
default character set utf8; //创建本数据库指定的字符集
show create database name; //查看单个数据库
drop database name; //删除数据库
alter database name //修改数据库
default character set utf8; //修改数据库的字符集为utf8
表:
use 数据库名 //创建表之前先选择一个数据库
show tables ; //查看所有表
create table name( //创建表
);
desc name ; //查看表结构
drop table name; //删除表
修改表:
alter table 表名add column 属性 类型 ; //添加字段
alter table 表名drop column 属性; //删除字段
alter table 表名 modify column属性 类型 ; //修改字段类型
alter table 表名 change column 原字段名 改后字段名 类型;//修改字段名称
alter table 原表名 rename to 改后表名
修改数据:
Insert into 表名 values() //添加数据
Update 表名 set xx=xx where id=1 //修改数据 ID为1的
Delete from 表名 where id=1 //条件删除数据
Delete from 表名 //删除全部数据
truncate 表名 //全表删除 可以清空约束
select*from 表名 //查询所有列
select xx from //指定列查询
select id,NAME,(servlet+jsp) AS '总成绩' from student; //合并列
select DISTINCT(XX) from表名; //去除重复
条件查询:
逻辑条件: and(与) or(或)
SELECT * FROM 表名 WHERE id=2 AND NAME='李四'; -- 交集
SELECT * FROM 表名 WHERE id=2 OR NAME='张三'; -- 并集
判定空值
INSERT INTO表名(uid,xname,aa) VALUES(4,'','');
SELECT*FROM表名WHERE cc IS NULL; 判断为空
SELECT*FROM表名WHERE cc IS NOT NULL; 判断不为空
SELECT*FROM表名WHERE cc =''; 判断为空值
模糊查询
SELECT*FROM表名WHERE xname LIKE'___'; 一个_代表一位数
SELECT*FROM表名WHERE xname LIKE'小%';
WHERE xx BETWEEN 1000 AND 5000 取范围内
聚合函数
SELECT SUM(cc) FROM 表名; 总和
SELECT AVG(cc) FROM表名; 平均值
SELECT MAX(cc) FROM表名; 最大值
SELECT MIN(cc) FROM表名; 最小值
SELECT COUNT(cc) FROM表名; 有效数字
YEAR() 取年份
SYSDATE() / NOW() 获取当前时间
SELECT deptno,COUNT(*) FROM 表名 GROUP BY deptno;//分组
Having 聚合后筛选条件
分页查询
SELECT*FROM表名LIMIT 0,2 从0开始显示两条, 前面起始行 后面显示条数
排序
SELECT*FROM表名ORDER BY uid ASC; 正序 默认正序
SELECT*FROM表名ORDER BY uid DESC; 到序
默认值约束
DEFAULT'xx '
非空约束
NOT NULL, 非空
唯一约束
UNIQUE
主键 非空+唯一
PRIMARY KEY
自增长
AUTO_INCREMENT
零填充
ZEROFILL
外键
did INT,-- 定义外键类型
CONSTRAINT 名FOREIGN KEY(did)--
REFERENCES 主表名(did)
SELECT*FROM 主表名 JOIN 副表名;-- 交叉连接 无脑硬连
SELECT*FROM 主表名 JOIN 副表面 ON 主表.did=副表.did;-- 内连接
子查询 :
In 等于任何一个
Any 比较 大于或小于任何一个
All 比较 全部
联合查询
联合查询的关键字是: union
基本含义
联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。
两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。
查询中if 判断
select IF(asd='0',true,false) as asd from biao;
case when 用法:
select u.id,u.name,u.sex, (case u.sex when 1 then '男' when 2 then '女' else '其他' end )性别 from users u;