DQL(数据库查询操作)
1. ORDER BY排序:通过ORDER BY对查询结果排序,默认为升序(ASC),标注DESC为降序
DQL(数据库查询操作)
1. ORDER BY排序:通过ORDER BY对查询结果排序,默认为升序(ASC),标注DESC为降序
HAVING子句,对分组记录结果进行二次筛选(只能使用在分组之后)
GROUP BY分组(单独使用时只会显示组中第一条记录)
(1)配合GROUP_CONTACE()得到分组详情
(2)配合聚合函数
【1】COUNT()
【2】MAX()
【3】MIN()
【4】AVG()
【5】SUM()
(3)配合WITH POLLUP记录上面所有记录的综合
DQL:
(1)查询记录:
SELECT select_expr [, select_expr ...]
[
FROM table_references
[WHERE 条件]
[GROUP BY {col_name | position} [ASC| DESC], ... 分组]
[HAVING 条件 对分组结果进行二次筛选]
[ORDER BY {col_name | position} [ASC| DESC], ...排序]
[LIMIT 限制显示条数]
]
(2)查询表方式
【1】每一个表达式表示想要的一列,必须至少有一列,多个列之间以逗号分隔
【2】*表示所有列,tbl_name.*可以表示命名的所有列
【3】查询表达式可以用 [AS]alias_name为其赋予别名
更新数据:
UPDATE tbl_name 字段名称=值,...[WHERE条件][ORDER BY字段名称][LIMIT限制条数]
删除数据(不清空自增长的值):
DELETE tbl_name 字段名称=值,...[WHERE条件][ORDER BY字段名称][LIMIT限制条数]
彻底清空数据表(清空自增长的值):
TRUNCATE [TABLE] tbl_name
DML操作
(1)插入数据
【1】不指定具体的字段名:INSERT [INTO] tbl_name VALUES|VALUE(值)
【2】列出指定字段:INSERT[INTO] tbl_name(字段名称1,...) VALUES|VALUE(值1,...)
值和字段顺序一一对应
【3】同时插入多条记录:INSERT [INTO] tbl_name[(字段名称...)] VALUES(值...),(值...)...
【4】通过SET形式插入记录:INSERT [INTO] tbl_name SET 字段名称=值,...
【5】将查询结果插入到表中:INSERT [INTO] tbl_name[(字段名称,...)] SELECT 字段名称 FROM tbl_name [WHERE 条件]
删除数据表:DROP TABLE [IF EXISTS] tbl_name[, tbl_name...]
添加唯一:ALTER TABLE tbl_name ADD [constraint [symbol]] PRIMARY KEY [index_type] [索引名称] (字段名称, ...)
删除唯一:ALTER TABLE tbl_name DROP {index_name}
修改表的存储引擎:ALTER TABLE tbl_name ENGINE=存储引擎名称
设置自增长的值:ALTER TABLE tbl_name AUTO_INCREMENT=值
添加主键:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type] (字段名称, ...)
删除主键:ALTER TABLE tbl_name DROP PRIMARY KEY
删除主键时如果主键时自增长的,则需要先去除自增长属性,再删除主键
添加默认值:
ALTER TABLE tbl_name ALTER字段名称 SET DEFAULT默认值
删除默认值:
ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT
修改字段:ALTER TABEL tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER字段名称]
修改字段名称:ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型 [完整性约束条件] [FIRST|ALTER字段名称]
移动字段位置
添加字段:ALTER TABLE tbl_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST|ALTER 字段名称]
默认添加在末尾
删除字段:ALTER TABLE tbl_name DROP字段名称
修改表结构的方式
(1)修改表名:
【1】ALTER TABLE tbl_name RENAME [TO|AS] new_name
【2】RENAME TABLE tbl_name TO n
唯一性约束 UNIQUE KEY (KEY可省略)
(主键PRIMARY KEY中PRIMARY可省略):一个表中只能有一个主键,但能有多个唯一,NULL之不算重复
完整性约束:
CREATE TABLE [IF NOT EXISTS] tbl_name(
字段名称 字段类型 [UNSIGNED|ZERIFUKK] [NOT NULL] [DEFAULT 默认值] [[PRIMARY] KEY] | UNIQUE [KEY]] [AUTO_INCREMENT]
)ENGINE=INNODB CHARSET=UTF8 AUTO_INCREMENT=100
DEFAULT 默认值,常和NOT_NULL配合使用
NOT NULL非空:不能输入空值,也不能不输入值
AUTO_INCREMENT
一个表中只能有一个自增长字段,且必须配合主键使用,且只对整数列、整数串有意义,对字符串没意义
ENUM:1或2个字节最多枚举65535个值;选取时只能从中选择一个
SET:1、2、3、4或者8个字节,取决于set的成员数目,最多可64个成员,可同时选取多个,且会按照顺序排放,也可按照数字进行选取,数字为各序号位置字符表示的数值的代数和,从左往右序号为1,2,3,4...,表示的值为1,2,4,
CHAR类型,VARCHAR类型和TEXT类型
(1)CHAR为定长字符串,占用空间大,速度快;CHAR字符串前的空格会被自动消除;CHAR字符串前的空格会保留
(2)VARCHAR为边长字符串,占用空间小,速度慢;VARCHAR前后的字符串都会被保留
(3)TEXT是一种特殊的字符串类型,只能保存字符数据,而且不能有默认值
(4)中文字符的在utf8编码中的length为3;但CHAR_LENGTH仍然为1
(4)3个存储和检索数据的方式不同,数据检索效率为:CHAR>VARCHAR>TEXT
查看指定的表结构
(1)DESC tbl_name
(2)DESCRIBE tbl_name
(3)SHOW COLUMNS FROM tbl_name
完整性约束条件:
(1)零填充:ZEROFILL
(2)无符号:UNSIGNED