SQL 语句基本语法及函数方法,java 编程入门视频教程下载
delete from 表名 where 条件; ? ? ?删除表里边的数据?
delete FROM t_user WHERE id>10;
select * from 表名; ? ? ? ? ? ? ?查看表中数据 ? ?
SELECT * FROM t_user;
SELECT * FROM t_user WHERE id>10;
select 字段名 1,字段名 2 from 表名; ? ? ? ?查看指定字段的内容
select 字段名 1 ?别名,字段名 2 ?别名 ?from 表名; ? ? ? 给列起别名,表也可以起别名(别名可以用双引号引起了,也可以不用,字段名和别名之间可以加 as)
select username, password from t_user;
select username "用户名", password AS "密码" from t_user;
外链接
通过下面这两种方法就可以把不同的表连接到一起,变成一张大表
左连接 ?left join 或 left outer join,数据连接到左边那张表中
右连接 ?right join 或 right outer join,数据链接到右边那张表中
#通过下面这两种方法就可以把不同的表连接到一起,变成一张大表
#左连接 left join 或 left outer join,数据连接到左边那张表中
select * from user left join job on user.id=job.user_id;
select * from user left outer join job on user.id=job.user_id;
#右连接 right join 或 right outer join,数据链接到右边那张表中
SELECT * from user RIGHT JOIN job on user
.id = job.user_id;
join 或 inner join 内连接
#join 或 inner join 内连接
select * from user join job on user
.id = job.user_id;
#相当于下面这条语句
SELECT * from user, job where user
.id = job.user_id;
交叉链接,cross join,没有 where 指定查询条件的子句的交叉联接将产生两表的笛卡尔积。
#交叉链接,cross join,没有 where 指定查询条件的子句的交叉联接将产生两表的笛卡尔积。
SELECT * from user CROSS join job;
常用函数:
distinct ?排出重复的(后面只能有一个字段名) ? ? ?语法:select distinct 字段名 from 表名;?
#distinct 去重
select DISTINCT age, name from user;
limit? ? ?分页查询
#查询第几条数据,表示从索引为 0 开始,查询 4 条记录
select * from user LIMIT 4;
#查询 id 为 3~7 数据,从索引为 2 开始,查询 5 条数据
SELECT * from user LIMIT 2,5;
count 获取表数据行数 ,? ? ? select count(*) from 表名; ? ? ? ?
SELECT COUNT(*) from user;
group by?分组? ? ? 按字段分组(在表名和 where 后面)
SELECT * from user GROUP BY age;
order by 排序查询 ? ?语法:select * from 表名 where 条件 order by 字段名 asc/desc, 字段名 1 asc/desc;
asc 表示升序(默认) ? ?desc 表示降序 ? ? where 可以不要
#默认 asc 排序
SELECT * from user ORDER BY age;
UPPER(string) ? ? ?可以将字符转成大写 ? ? 语法:select upper(字段名) from 表名;
lower(string) ? ? ? ?将字符转成小写
#将字符转为大写
SELECT UPPER(job) from user;
#将字符转为小写
SELECT LOWER(job) from user;
like ? 模糊查询 ? ? ?语法:select * from 表名 where 字段名 like '%M%';
_:只能通配当前位置的一个字符
%:可以通配任意多个字符
%%:匹配所有的内容
SELECT * from user
where name like '%张 %';
not like ? ?用法和 like 一样(作用相反),不包含的
SELECT * from user
where name not LIKE '%张 %';
in ? ? 范围查询 ? ? ?语法:select * from 表名 where 字段名 in(数据值 1, 数据值 2....);
SELECT * from user
where age in(18, 20);
and 或 && ? ? ? ?并且
or 或 || ? ? ? 或
not 或 ! ? ? ?非(取反)
is null; ? ? ? 为空 ? ? ? ?
is not null; ? ? ? 不为空
between and ? ? ? ? 范围查找 ? ? 语法:select * from 表名 where 字段名 between 值 1 and 值 2;
regexp ? ? ? ?正则表达式 ? ? ? ? 语法:select * from 表名 where 字段名 regexp 'S表示最后一个字母为 S 的
= ?> ?>= ? < ?<= ?<> ?!= ?<=> 操作符
<>, != 不等于操作符, ?
<=> ? ? ? ?和=作用一样,可以用于和 null 比较
create table 新表 select * from 旧表; ? ? ?复制表结构及数据
creata table 新表 select * from 旧表 where 1 = 2; ? 只复制表结构到新表
create table 新表 like 旧表;?? ??? ??? ?只复制表结构到新表
concat(string1,String2) ? ? 拼接字符串 ? ? ? ? ?语法:select concar(字段 1,字段 2)/(字段 1,'字符串') from 表名;
substr(string,start,length) ? ? ? 截取字符串。
start 开始截取位置,length 截取长度
insert(str, x, y, insert); ? ?将字符串 str 的 x 位置开始,y 个字符替换为字符串 insert
LENGTH(string) ? ? ? ?计算字符的长度。
replace(string,'要替换的字符','替换的字符') ? ? ? ?对指定内容进行替换?
round(number,[index])按指定位置对数字进行四舍五入运算
Index 为正:表示小数点右边的位置
Index 为负:表示小数点左边的位置
left(str, x) ? ?right(str, x) ?分别返回最左/右边的 x 个字符, 如果第二个参数为 null 则返回为 null
lpad(str, n, pad), ?rpad(str, n, pad); ? ? ?用字符串 pad 对 str 最左边和最右边进行填充,直到长度为 n 个字符长度.
trim(str) ltrim(str) rtrim(str) ? ? ? 去掉字符串两边/左边/右边字符的空格
strcmp(s1, s2) ? ? ?如果 s1 比 s2 小,返回-1,大,返回 1,等于返回 0 ? ?字符串,ASCII 比较
运算符:
+ - * / ?运算,一般用在计算年薪。
#salary 月工资*12,其他运算同理
select name, salary*12 from user;
max() ? ? ? ? ? 计算最大值
min() ? ? ? ? ? 计算最小值
sum()?? ??? ?计算总和
avg() ? ? ? ? ? 计算平均值
#查询年龄最大的
SELECT MAX(age) from user;
#查询年龄最小的
SELECT MIN(age) FROM user;
#查询年龄总和
SELECT sum(age) from user;
#查询平均年龄
SELECT avg(age) FROM user;
md5('密码') ? ? ? ? ? ? ? 加密(一般用于程序加密码) ?
SELECT md5
(age) from user;
mod(number1,number2) ? 求模(取余)运算?
abs() ? ? ? ? ? 绝对值
ceil(x) ? ? ? ? 返回大于 x 的最小整数
floor(x) ? ? ? ?返回小于 x 的最大整数?
rand() ? ? ? ? ?生成 0-1 之间的小数
truncate(x,y) ? 返回数字 x 截断 y 为小数的结果
curdate(); ? ? ?返回当前日期
curtime(); ? ? ?返回当前时间
now(); ? ? ? ? ?返回当前日期和时间
unix_timestamp(date) ? 把当前时间转为秒
from_unixtime(秒) ? ? ?把秒转为日期和时间
week() ? ? ? ? ? ? ? ? 周
year() ? ??? ? ? ? ? 年
hour()?? ??? ? ? ? ? 小时
minute()?? ? ? ? ? 分钟?
if(条件, true, false); ? ?条件为真,返回 true,为假返回 false ? 语法:
select if(条件,true,false) from 表名;
评论