Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1425381
  • 博文数量: 842
  • 博客积分: 12411
  • 博客等级: 上将
  • 技术积分: 5772
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-14 14:43
文章分类

全部博文(842)

文章存档

2013年(157)

2012年(685)

分类: Mysql/postgreSQL

2012-05-23 11:19:54




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;
阅读(393) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~