完整性约束条件:
PRIMARY KEY 主键
AUTO_INCREMENT 自增长
FOREIGN KEY 外键
NOT NULL 非空
UNIQUE KEY 唯一 能有多个唯一索引 NULL不算重复
DEFAULT 默认值
CREATE TABLE [IF NOT EXISTS] 表名(
字段名称 字段类型 [UNSINGNED|ZEROFILL] [NOT NULL] [DEFAULT 默认值] [[PRIMARY] KEY]
)ENGINE=INNODB CHARSET=UTF8 AUTO_INCREMENT=100;
自增长字段(必须是主键):AUTO_INCREMENT
例:CREATE TABLE IF NOT EXISTS user5(
id SMALLINT KEY AUTO_INCREAMENT,
username VARCHAR(20)
)INCREMENT=100(自增长的数) ;
INSERT user5 VALUE(DEFAULT(NULL),‘XXX’) 都可以直接自增长
修改自增长的值:ALTER TABLE user6 Auto_INCREMENT=500
INSERT 表名(属性名,(…))VALUES(值(…))
修改表名:ALTER TABLE 表名 RENAME TO 新表名;
ALTER TABLE 表名 RENAME AS 新表名;
ALTER TABLE 表名 RENAME 新表名;
RENAME TABLE 表名 TO 新表名(TO是不能省略的)
添加和删除字段:ALTER TABLE 表名 ADD 字段名称 字段类型 (约束条件);
ALTER TABLE 表名 ADD 字段名称 字段类型 (约束条件)
,ADD…,ADD…;
删除:ALTER TABLE 表名 DROP 字段名称,DROP…,DROP…;
修改字段:ALTER TABLE 表名 MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]
修改字段名称:ALTER TABLE 表名 CHANGE 旧字段名称 新字段名称 字段类型[完整性约束条件] [FIRST|AFTER 字段名称]
添加(修改)默认值:ALTER TABLE 表名 ALTER 字段名称 SET DEFAULT 默认值
删除默认值:ALTER TABLE 表名 ALTER 字段名称 DROP DEFAULT
添加主键:ALTER TABLE 表名 ADD [CONSTRAINT[symbol]] PRIMARY KEY index_type
删除主键:ALTER TABLE 表名 DROP PRIMARY KEY
添加唯一:ALTER TABLE 表名 ADD UNIQUE [INDEX|KEY] (字段名称)
删除唯一:ALTER TABLE 表名 DROP {INDEX|KEY} 字段名称
修改表的存储引擎:ALTER TABLE 表名 ENGINE=存储引擎名;
设置自增长的值:ALTER TABLE 表名 AUTO_INCREMNET=值
删除数据表:DROP TABLE 表名 IF EXISTS 表名(,表名,表名。。。);
插入数据:INSERT [INTO] 表名 VALUES|VALUE(值…)
INSERT[INTO]表名 (字段名称1,…) VALUES|VALUE(值1,…)
INSERT INTO 表名 SET 字段名=XXX,字段名=XXX…
将查询结果插入到表中 INSERT [INTO] 表名[(字段名称,…)] SELECT 字段名称 FROM 表名 [WHERE 条件]
更新记录:UPDATE 表名 SET 字段名=XXX(可以是逻辑表达式),… [WHERE条件];
删除记录:DELETE FROM 表名 WHERE 条件
TRUNCATE [TABLE] 表名
查询表达式:select * from 表名
select * from 数据库名.表名;
给表起别名 select *form 表名 (as) 别名
给字段起别名 select 字段名 AS 别名,… from 表名
条件查询: select * from 表名 where 条件 <=>带有检测值为NULL的功能 或 is null
范围查询 BETWEEN AND 或 NOT BETWEEN AND:
select * from 表名 where 字段名 BRTWEEN 范围1 AND 范围2; 查询范围1 到 2之间的值
select * from 表名 where 字段名 IN (集合:如 1,3,5,7,9);查询id为1,3,5,7,9的用户 查询时忽略大小写 NOT IN 反向查询
模糊查询:LIKE %表示零,一个或者多个任意字符 _表示一个任意字符
如 查找姓张的用户 SELECT * FROM 表明 WHERE XM LIKE '张%';
分株查询: GROUP BY :按照用户所属身份证省份 :
SELECT * FROM 表名 GROUP BY SFZ;
只会显示 组中的一条记录
分组查询配合聚合函数:例:查询 ID,SEX,用户名详情按照性别分组:
GROUP_CONCAT() 得到分组详情
GROUP BY XXX WITH ROLLUP:count()是总人数的和 MAX()得到统计后的 最大值,MIN() 得到统计后的 最小值
MAX()最大值 , MIN()最小值,AVG()平均值,SUM()总和
COUNT(*) 统计分组里面的记录数 没有分组就统计全记录数
SELECT ID,SEX,GROUP_CONCAT(USERNAME) FROM 表名 GROUP BY SEX;
对分组进行二次筛选:having
SELECT ID,SEX,GROUP_CONCAT(USERNAME) AS users,COUNT(*) AS zonghe FROM 表名 GROUP BY SEX HAVING COUNT(*)>2 ;