sql语句不区分大小写
1、要求服务器告诉版本号、当前日期、用户名、当前时间、服务器和表格显示
select version(),current_date,user(),now();
\c :取消输入,切换到mysql>
2、创建数据库表
create table shop(
article int(4) unsigned zerofile default '0000' not null,
dealer char(20) default '' not null,
price double(1,2) default '0.00' not null,
primary key(article,dealer)
);
3、插入数值
(1)使用insert语句:insert into shop values(1,'a',3.45),(2,'b',1.23);
(2)使用load语句:load data local infile "pet.txt" into table pet;
创建一个文本文件“pet.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在CREATE TABLE语句中列出的列次序给出。对于丢失的值(例如未知的性别),你可以使用NULL值。为了在你的文本文件表示这些,使用\N。
4、查询语句
(1)列的最大值(最大的物品号)
select MAX(article) AS article from shop;
(2)拥有某个列的最大值的行(找出最贵文章的编号、商人、价格)
select article,dealer,price from shop where price=(select max(price) from shop);
(3)列的最大值(每篇文章的最高价格)
select article,max(price) as price from shop group by article;
(4) 查询数据库和表格
show databases:显示全部的数据库
show tables:显示所有表格
(5)查询表格结构
describe pet;
(6)排序
select name,birth from pet order by birth (DESC) ;
select name,species,birth from pet order by species,birth DESC(desc只对距它最近的有效果)
(7)日期计算
1、按照日期排序:select name,(TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age from pet order by age;
2、找出下个月生日:select name,birth from pet where month(birth)=5;
可以使用year() month() dayofmonth()进行提取。
只针对12月,select name,birth from pet where month(birth)=month(date_add(now(),interval 1 month));DATE_ADD()允许你把时间间隔加到一个给定的日期
(8)模式匹配
sql的模式匹配允许使用“_”匹配任何单个字符,"%"匹配任何数目字符
扩展正则表达式的一些字符是:
- “.”匹配任何单个的字符。
- 一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。
- “ * ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。
- 正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。
- 如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)。
- 为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。
- 可使用{n} “重复n次”操作符重写先前的查询
找出以b 开头的名字 like "^[bB]"
找出以fb结尾的名字 like "fy$"
找出包含字母w的名字 like "[wW]"
找出正好包含5个字符的名字 like "^.{5}$"
(9)行计数
count()函数计数非null结果的数目:select count(*) from pet;
使用group by对每个分组计数:每个主人有多少宠物:select owner,count(*) from pet group by owner;
阅读(424) | 评论(0) | 转发(0) |