1.一些琐碎
1)show databases; //查看已经存在的数据库 2)添加主键: 创建表时 eg:id int primary key 所有列都定义完成 eg:PRIMARY KEY(name,deptId) 3)drop table 表名可以删除表。 4)添加外键:CONSTRAINT 外键名 FOREIGN KEY 字段名 REFERENCES 主表名(主键名) 5)唯一约束:要求该列唯一,允许为空,但是只能有一个空值。唯一约束可以确保一列或者几列不出现重复值。 eg: 定义时name VARCHAR(22) UNIQUE, 6)默认约束:即给字段一个默认值。 关键词:DEFAULT; eg:CREATE TABLE t_emp( sex VARCHAR(2) DEFAULT ‘男’ ) DEFAULT CHARSET=utf8; 中文需要添加utf-8 7)AUTO_INCREMENT:默认情况下初始值和增量都为1。 eg: id int PRIMARY KEY AUTO_INCREMENT,
2.数据库和表的操作
1)DESCRIBE 表名; //查看数据表的基本结构 2)使用 SHOW CREATE TABLE 语句,不仅仅可以返回给我们建表时所写的详细语句,而且还可以查看存储引擎和字符编码。 3)修改表名:ALTER TABLE 旧表名 RENAME 新表名; 4)修改字段名:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 5)修改字段数据类型:ALTER TABLE 表名 MODIFY 字段名 数据类型; 6)添加字段:ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER] 已存在字段名; 。 eg:现在我们要把字段prod_country添加到表Mall_products的最后一列。 ALTER TABLE Mall_products ADD prod_country varchar(30); 现在我们要把字段prod_country添加到表Mall_products的第一列。 ALTER TABLE Mall_products ADD prod_country varchar(30) FIRST; 现在我们要把字段prod_country添加到表Mall_products的 prod_name字段的后面。ALTER TABLE Mall_products ADD prod_country varchar(30) AFTER prod_name; 7)删除字段: ALTER TABLE 表名 DROP 字段名; 8)修改字段位置: 语法规则为: ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRST|AFTER 字段2; 。 eg:ALTER TABLE Mall_products MODIFY prod_price FLOAT AFTER prod_country; 9)删除表的外键约束: 语法规则为: ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名; 。 10)插入数据: INSERT INTO 表名 (字段名) VALUES (内容); eg:insert into tb_emp(id,Name,DeptId,Salary) values(1,‘Nancy’,301,2300), (2,‘Tod’,303,5600), (3,‘Carly’,301,3200); 11)更新数据 语法规则为: UPDATE 表名 SET 字段名1 = 内容1, 字段名2 = 内容2, 字段名3 = 内容3 WHERE 过滤条件; 。 eg:UPDATE Mall_products2 SET country_name = “Pakistan”, country_id = 92 WHERE id = 2; 12)删除数据: 语法规则为: DELETE FROM 表名 WHERE 条件语句; 。 删除表中的所有行: 语法规则为: DELETE FROM 表名; 。
3.单表查询
1)带IN关键字的查询: IN关键字被用在WHERE语句的后边,用来过滤你所需要查询的内容。 eg:SELECT * FROM Mall_products WHERE prod_country IN (1,87,39); 带NOT IN关键字的查询: 语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 NOT IN (n1,n2,n3,…); 。 2)带BETWEEN AND关键字的查询 语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 BETWEEN n1 AND n2; 。 eg:SELECT * FROM Mall_products WHERE prod_country (not)BETWEEN 1 AND 50; 3)使用通配符%模糊匹配数据内容 语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 LIKE ‘字符%’; 。 其中 % 的位置可以根据需要在字符间变化。 eg: SELECT * FROM Mall_products WHERE prod_name LIKE ‘%ir%’; 4)使用通配符_模糊匹配数据内容 语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 LIKE ‘字符_’; 。 其中_ 的位置可以根据需要在字符间变化。 eg: SELECT * FROM Mall_products WHERE prod_name LIKE ‘_________r’; 5)查询空值 语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 IS NULL; 。 6)去除重复结果 语法规则为: SELECT DISTINCT 字段名 FROM 表名; 。 7)带AND关键字的多条件查询 语法规则为: SELECT 字段名 FROM 表名 WHERE 表达式1 AND 表达式2; 。 8)带OR关键字的多条件查询 语法规则为: SELECT 字段名 FROM 表名 WHERE 表达式1 OR 表达式2; 。 9)对查询结果排序 SELECT 字段名 FROM 表名 ORDER BY 字段名 [ASC[DESC]]; desc降序 10)分组查询的单独使用 分组查询的关键字是Group By,查询的是每个分组中 首次出现的一条记录 SELECT 字段名 FROM 表名 GROUP BY 字段名; 11)LIMIT的使用 SELECT 字段名 FROM 表名 LIMIT [OFFSET,] 记录数; eg:select *from tb_score order by score desc limit 1,4; 从第二个开始到第五个
4.连接查询
1)内连接查询 仅将两个表中满足连接条件的行组合起来作为结果集,称为内连接; 表1 [inner] join 表2 on 表1.字段=表2.字段 2)外连接查询 表1 left/right [outer] join 表2 on 表1.字段=表2.字段 左外连接:在内连接的基础上,还包含表1中所有不符合条件的数据行,并在其中的表2列填写 NULL; 右外连接:在内连接的基础上,还包含表2中所有不符合条件的数据行,并在其中的表1列填写 NULL。
5.子查询
1)ALL关键字 ALL必须接在一个比较运算符的后面,表示与子查询返回的所有值比较都为 TRUE则返回TRUE SELECT col1 FROM table1 WHERE col1 > ALL (SELECT col2 FROM table2) 2)ANY和SOME关键字 ANY与比较操作符联合使用,表示与子查询返回的任何值比较为TRUE ,则返回TRUE。 SOME是ANY的别名,一般用的比较少。 3)IN关键字 IN 是 = ANY 的别名,二者相同,但 NOT IN 的别名却不是 <> ANY 而是 <> SOME。
6.聚合函数查询
1)COUNT()函数是用来统计记录的总条数。 select count(/字段名) from 数据表; 查询该表中一共有多少条数据 select count() from tb_class; 2)SUM()函数基本使用 SUM()函数是对数据表的某列进行求和操作。 select sum(字段名) from 数据表; select sum(score) from tb_class; 3)AVG()函数基本使用 AVG()函数是对数据表的某列进行求平均值操作。 select avg(字段名) from 数据表; 4)MAX()函数基本使用 MAX()函数是求某列的最大数值。 select max(字段名) from 数据表; 5)MIN()函数同上
7.其他函数的使用
8.分组选择的依据
|