SQL对数据库中表中的记录进行操作(DML)----------------------------------------
向表中插入部分字段:
* insert into 表名 (字段名1,字段名2,字段名3...) values (值1,值2,值3...);
向表中插入所有字段:
* insert into 表名 values (值1,值2,值3...);
修改记录值直接覆盖:
* update 表名 set 字段名 = 值,字段名=值 [where 条件];
修改记录在原有基础上进行修改:
* update 表名 set 字段名 = 字段名 [赋值操作符] 值,字段名=值 [where 条件];
删除记录:
* delete from 表名 [where 条件];
基本查询语句:
* select [distinct] *|[列名,列名...] from 表名;
* distinct:去掉查询记录的中重复的值.
* SELECT *FROM t_student LIMIT 0,5 :查询 t_student表中1到5条数据
执行运算及起别名:
* select 表达式 from 表;
* select 列名 as 别名,列名 as 别名 from 表名;
select语句的条件过滤:
* select *|列名,列名 from 表名 where 条件;
where子句后的运算符:
* > ,< ,>= ,<= ,= ,<>
* in :一组值: where math in(62,81,93)
* like :模糊查询.
* 使用占位符: _和%。
* _代表的是一个字符: where name like '张_';
* %代表的是任意个字符: where name like '张%';
查询记录的排序:
* select * from 表 where 条件 order by 列名 asc/desc,列名 asc/desc; ---asc:代表排序的时候按照升序排序.desc:代表排序的时候按照降序排序.默认值:asc:升序.
聚集函数:(分组函数):
* count() :统计表中记录的个数.
* select count(*|列名) from 表名;
* sum() :求和.
* select sum(列名) from exam;
* avg() :求平均值.
* select avg(列名) from 表名;
* max() :求最大值.
* min() :求最小值.
分组统计:
* select * from 表 where 条件 group by 列名;
* having:----分组后的条件过滤.
查询语句顺序的总结:
* select *|列名 from 表名 where 条件 group by 列名 having 分组条件过滤 order by 列名;
多表操作:-------------------------------------------------------------------------
添加外键约束:
* alter table 表名add [constrain 约束名] foreign key(外键名) references 表名(主键名);
删除外键约束:
* alter table 表名 drop foreign key 约束名;
多对多建表原则:
* alter table 中间表名 add foreign key(外键名) references 表名
隐式内连接:
* select * from A,B where 条件;
显式内连接:
* select * from A inner join B on 条件;
左外连接:
* select * from A left outer join B on 条件;
右外连接:
* select * from A right outer join B on 条件;
在子查询中使用的关键字:any、all:
* any:任意一个.
* all:所有.
外加多表关联(实例):
#tb_users 用户是从表
CREATE TABLE tb_users(
id INT PRIMARY KEY AUTO_INCREMENT,
user_name VARCHAR(20),
PASSWORD VARCHAR(36),
create_time DATE,
update_time DATE,
role_id INT
);
CREATE TABLE tb_roles(
id INT PRIMARY KEY AUTO_INCREMENT,
role_name VARCHAR(100),
create_time DATE,
update_time DATE
);
CREATE TABLE tb_functions(
id INT PRIMARY KEY AUTO_INCREMENT,
func_name VARCHAR(100),
func_url VARCHAR(255),
func_code VARCHAR(20),
parent_id INT,
create_time DATE,
update_time DATE
);
#tb_role_function 中间表来维护角色和权限的关联关系
CREATE TABLE tb_role_function(
role_id INT,
func_id INT,
PRIMARY KEY(role_id,func_id)
);
ALTER TABLE tb_users ADD FOREIGN KEY(role_id) REFERENCES tb_roles(id);
ALTER TABLE tb_role_function ADD FOREIGN KEY(role_id) REFERENCES tb_roles(id);
ALTER TABLE tb_role_function ADD FOREIGN KEY(func_id) REFERENCES tb_functions(id);