1.SQL的常用类型
int,bigint,decimal,date/datetime,varchar
2.java的常用类型
int,long,BigDecimal,java.until.Date,String
3.连接数据库语句
mysql -u root -p root
-u为用户名,-p为密码
4.查看数据库
show databases;
5.创建数据库
create database 数据库的名称;
6.删除数据库
drop database 数据库的名称;
7.修改数据库(alter database)
alter database 数据库名称 chartset=编码格式;
8.查看当前数据库下的所有数据表
show tables;
9.表的操作
1.非空约束:not null ,不允许某列的内容为空
2.设置列的默认值:default
3.唯一约束: UNIQUE,该表中,该列的内容必须唯一
4.主键约束:primary key ,非空且唯一
5.主键自增长:auto_increment,从1开始,步长为1
6.外键约束:foreign key, A表的外键列。A表中的外键列的值必须参照于B表中的某一列(B表的主键)
10.建表语法:(建表的时候不能有关键字)
drop table if exists 表名;
create table 表名(
列名1 列的类型 [约束],
列名2 列的类型 [约束],
列名3 列的类型 [约束],
...
列名N 列的类型 [约束]
);
11.删除表:
drop table 表名;
12.修改数据操作
update 表名
set 列1=值1,列2=值2,...
where[条件]
13.插入数据操作
insert into 表名(列1,列2,...)value (值1,值2,...);
14.删除操作
delete from 表名 where [条件];
15.查询元素(消除重复元素)
select distinct 列名1,...from 表名;
16.算术运算副(+-*/)运用(对于number型数据可以使用)
例:select price*count from 表;
17.设置别名用AS
select 列名 as 新列名 from 表名;
18.按格式输出(concat)
concat(字符串1,字符串2,...)
select concat(name,"是桂林航天工业学院的学生,学号为:",id) from student;
19.过滤查询使用where
20.比较运算符
=,>,>=,<,<=,!=
不等于:<>等价于!=
21.逻辑运算符
1.and:如果组合之间全是true返回true
2.or:如果组合之间其中一个是true就返回true
3.not:给出的条件为true返回false,条件为false返回true
22.范围(between and)包含边界值
where 列名 between min and max
23.集合(使用in),判断列的值是否在指定的集合中
where 列名 in(值1,值2,...);
24.判断空值(is null)空字符串使用==判断;
where 列名 is null;
25.模糊匹配查询(like,%,_)
1.like:模糊查询数据使用like运算执行通配符
2.通配符:%表示可有零个或多个任意字符
3._:需要一个任意字符
where 列名 like"%M_";
26.结果排序(order by)
1.order by:使用order by子句将查询结果进行排序,order by子句出现在select语句最后
2.asc:升序,desc:降序
27.分组查询(group by)
一般与having一起用,查询的参数只能是统计函数和分组的条件参数,或者是聚合函数,having后面的条件只能是分组查询的字段或者统计函数。
select sex,name from people group by sex having sex='男';
28.常用函数
1.count(*):统计表中有多少条数据
2.sum(列):汇总列的总和
3.max(列):获取某一列的最大值
4.min(列):获取某一列的最小值
5.avg(列):获取某一列的平均值
29.外键使用语句(外键的主要作用是保证数据的一致性和完整性,并且减少数据冗余)
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段名) REFERENCES 外表表名(主键字段名)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
On Update表示主键表中被参考字段的值被更新时,On Delete表示主键表中被参考字段的值被删除时。
RESTRICT限制外表中的外键改动(默认值,最安全的设置)
CASCADE跟随外键改动
SET NULL设置为null值
NO ACTION无动作
SET DEFAULT设置为默认值
30.内连接
隐式内连接
select 字段列表 from 表1,表2,...where 条件;
显示内连接
select 字段列表 from 表1 [inner] join 表2 on 条件;
查询A,B表交集的数据,字段列表推荐写A.列名,B.列名形式
31.外连接
1.左外连接(相当于查询A表所有数据和交集部分的数据)
select 字段列表 from 表1 left [outer] join 表2 on 条件;
2.右外连接(相当于查询B表所有数据和交集部分的数据)
select 字段列表 from 表1 right [outer] join 表2 on 条件;
32.语句执行顺序
1.from:从哪张表中查数据
2.join table:先确定表,在确定关联条件
3.on:表绑定条件
4.where:筛选需要的行数据;
5.group by:分组操作
6.having:对分组后的记录进行聚合
7.select:筛选需要显示的列数据(起别名as在这个时候,where不能使用别名而order by
可以使用别名)
8.distinct:去重
9.order by:排序操作
10.limit:限制条件
33.触发器
1.创建一个执行语句的触发器
create trigger 触发器名 before | after 触发事件
on 表名 for each row 执行语句
2.创建多个执行语句的触发器
create trigger 触发器名 before | after 触发事件
on 表名 for each row
begin
执行语句列表
end
&&
34.子查询
1.单行单列:作为条件值,使用=,!=,<,>等符号进行判断
select 字段列表 from 表 where 字段名=(子查询);
2.多行单列:作为条件值,使用in等关键字判断
select 字段列表 from 表 where 字段名 in (子查询);
3.多行多列:作为虚拟表
select 字段列表 from(子查询) where 条件;
35.事务
原子性(Atomicity):原子意为最小的粒子,或者说不能再分的事物。数据库事务的不可再分的原则即为原子性。
组成事务的所有查询必须:要么全部执行,要么全部取消
一致性(Consistency):指数据的规则,在事务前/后应保持一致
隔离性(Isolation):简单点说,某个事务的操作对其他事务不可见的.
持久性(Durability):当事务提交完成后,其影响应该保留下来,不能撤消
1.开启事务
begin或者start transaction
2.提交事务
commit;
3.回滚事务
rollback;