Chinaunix首页 | 论坛 | 博客
  • 博客访问: 392423
  • 博文数量: 117
  • 博客积分: 4416
  • 博客等级: 上校
  • 技术积分: 1135
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-08 14:16
个人简介

一生醉生忘死,就让他继续下去吧!

文章分类

全部博文(117)

分类: Mysql/postgreSQL

2009-11-16 09:02:18

mysql -h host -u $user -p $database; ====>使用$user用户名登陆数据库$database
 
 
mysql> CREATE DATABASE menagerie;====>创建数据库
mysql> GRANT ALL ON menagerie.* TO ;这里your_mysql_name是分配给你的MySQL用户名,your_client_host是所连接的服务器所在的主机。
show databases;   ===>显示所有数据库
use database;     ===>使用指定数据库
SHOW TABLES;      ===>显示所有表
 
mysql>CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),   
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
======>创建数据库指定字段名称与长度
mysql> DESCRIBE pet;   ====>描述表
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
=====>把文件中的数据插入表中
mysql> INSERT INTO pet    -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);    ====>直接数据插入表
mysql> SELECT * FROM pet; ====>选择表所有数据
mysql> SELECT name, birth FROM pet;====>选择表所的指定列中的数据
mysql> DELETE FROM pet;   ====>删除表数据
mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser'; ====>更新表数据
mysql> SELECT DISTINCT owner FROM pet;   ====>检索唯一数据
mysql> SELECT name, birth FROM pet ORDER BY birth DESC;=====>排序
 
______________________________________________________________________
mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)
-> AS age
-> FROM pet;
  =========>YEAR()提取日期的年部分,RIGHT()提取日期的MM-DD (日历年)部分的最右面5个字符。比较MM-DD值的表达式部分的值一般为1或0,如果CURDATE()的年比birth的年早,则年份应减去1。整个表达式有些难懂,使用alias (age)来使输出的列标记更有意义。
______________________________________________________________________
 
mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
 
 
===============================================================>>>>>>
sql的模式匹配
  
   SQL模式匹配允许你使用“_”匹配任何单个字符, 
  “%”匹配任意数目字符(包括零字符)。在 MySQL中,SQL的模式默认是忽略大小写的。
  使用SQL模式时,不能使用=或!=;而应使用LIKE或NOT LIKE比较操作符。
 
例:
    mysql> SELECT * FROM pet WHERE name LIKE 'b%';====>name列开头字母为b/B的行
    mysql> SELECT * FROM pet WHERE name LIKE '%w%';   ====>name列包含字母w的行
    mysql> SELECT * FROM pet WHERE name LIKE '_____'; ====>包含5个_的行
 
扩展正则表达式:
    字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
    “ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。
   为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。
   例:mysql> SELECT * FROM pet WHERE name REGEXP 'fy$';
注意:如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)。
    mysql> SELECT * FROM pet WHERE name REGEXP '^.....$';====>正好五个字符
    mysql> SELECT * FROM pet WHERE name REGEXP '^.{5}$';
<<<<<<<<<<<<<=================================================================
 
mysql> SELECT COUNT(*) FROM pet;=====>统计行
mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner;====>对owner列进行分组,统计每个owner 的行数
mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
阅读(1587) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~