一,Mysql结构
1.SQL语句分为:
DQL:数据查询语句(select)
DML:数据操作语言,凡是对表中的数据进行增删改的都是DML
DDL:数据定义语句,凡是操作的是表中的结果,不是表中的数据的都为DDL语句
TCL:事务控制语言,事务提交:commit,事务回滚:rollback
DCL:数据控制语言,如grant授权用户,revoke撤销劝降
2.Mysql在文件引擎上区别:
.frm:表结构定义文件
.MYD:数据文件
.MYI:索引文件
二, 常用Mysql命令语法
1.常用mysql数据库命令:
show databases; --查看当前所有的数据库 use 数据库名; --进入指定的数据库 show tables; --查看库中所有的表 describe/desc 表名; --显示表的信息 show create database 库名 --查看数据库结构 show create table 表名 --查看表名结构 create database 数据库名; --创建一个数据库 exit --退出连接
2.注释:
-- --单行注释
# --单行注释
/*...*/ --多行注释
3.导入数据文件(.sql)
source SQL文件所在目录
注:目录不要出现中文目录
三,select查询语句
1.查询select常用语句
查询字段: select 字段名称 from 表名; 查询多个字段: select 字段1,字段2,字段3 form 表名; 查询所有字段内容: select * from 表名;
缺点:
1.效率低
2.可读性差
2.查询的列起别名
语法:select 字段名 as 字段别名 from 表名;
注:as别名关键字:可以使用空格来省略
如果别名有中间有空格或者是中文怎么办?
注:mysql可以使用单引号或者双引号来设置别名,oracle只识别单引号
select 字段名 as ‘字段新 别名’ from 表明;
如果需要对字段进行数值计算怎么办?
select sal*12 as ‘年薪’ from 表名;
四,数据库的列类型
1.数值类型:
数据类型 描述 大小
tinyint 十分小的数据 1个字节
smalint 较小的数据 2个字节
mediumint 中等大小的数据 3个字节
int 标准整数 4个字节
bigint 较大的数据 8个字节
float 浮点数 4个字节
double 浮点数 8个字节
decimal 字符串形式的浮点数,一般用于金融计算
2.字符串:
数据类型 描述 大小
char 字符串固定大小 0~255
varchar 可变字符串 0~65535
tinytext 微型文本 2^8-1
text 文本串 2^16-1
3.时间日期:
数据类型 描述 格式
date 日期格式 YYYY-MM-DD
time 时间格式 HH:mm:ss
datetime 最常用的时间格式 YYYY-MM-DD HH:mm:ss
timestamp 时间戳,1970.1.1到现在的毫秒数
year 年份表示
特殊类型:
null:没有值,未知,不要使用NULL值进行计算
五,条件查询
语法格式:
1. select 2. 字段1,字段2 3. from 4. 表名 5. where 6. 条件;
1.条件类型:
1. = 等于 2. <>或!= 不等于 3. < 小于 4. <= 小于等于 5. > 大于 6. >= 大于等于
格式:select * from 表名 where 字段 判断值 数值;
2.特殊条件(判断两个条件都满足):
between和and
语法:select * from 表名 where 字段 <= 1000 and 字段 >= 900 ;
第一种方式:>= and <=
select 字段 from 表名 where 字段 >= 数值1 and 字段 <= 数值2;
第二种方式:between...and...
select 字段 from 表名where 字段 between 数值1 and 数值2 ;
注:使用between and 时候,必须遵循左小右大。between and是闭区间,包括两端的值。
3.判断空null
判断那些字段为空null
is null:那些为空
in not null:那些不为空
select 字段 from 表名 where 字段 is null; #判断字段那些为空
select 字段 from 表名 where 字段 is not null; #判断字段那些不为空
4.或者判断
or或者
语法:select * from 表名 where 字段 <= 100 or 字段 >=100;
in包括,相当于多个or(not in不在这个范围中)
select empno,ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
等于
select empno,ename,job from emp where job in('MANAGER', 'SALESMAN');
not可以区非,主要用在is或in中
is null #查空
in not null #取反查看不为空
in #查找满足一个条件的内容
not in #查找内容之外的内容
5.模糊查询
like:称为模糊查询,支持%或者下划线匹配
%匹配任意多个字符
下划线:任意一个字符
语法格式:select 字段 from 表名 where 字段 like ‘%查找内容_%’;