随笔-145  评论-173  文章-70  trackbacks-0

1.关于创建数据库和使用数据库。
    在进行插入表项目,删除表,修改表项目的话,都需要对于指定多的一个表来操作。而每一个表(table)都要属于一个数据库中,一个数据库中也有可能有很多的表,于是,就需要在使用之前,先创建并使用一个数据库。命令是:
创建:create database 数据库表名;
使用数据库:use database 数据库表名;
删除数据库:drop database 数据库表名;
注意的一点就是,使用数据库这一步,一定不能够缺少。否则就会出现很多错误,最基本的就是很基础的命令在这个格式下是无法识别的。
关于数据库名的一个小问题就是:在Linux下面,是有大小写区分的,所以就是说,在创建一个数据库的时候,s1和S1是有区别的,而且在后面命令中,如果要使用这个数据库,那么就必须注意是大写还是小写了。但是,对应的,MySQL是不区分大小写的,也就是说,在一个数据库创建成功后,如果我要创建一个table,或者插入一项内容,那么项目名是没有大小写之分的,SNAME和sname是一样的。
于是:select sname from S1;和select SNAME from S1表示的是相同的意义。(对比的是,select sname from s1却是不同的,也就是说,对于创建的一个table是区分大小写的,表S1和s1是不同的!)
    在使用完数据库后,如果没有必要再次保存的话,就可以删除,采用的是前面的drop命令,注意如果没有删除,那么该数据库是会保存到系统中的,下次启动的时候还是会有该数据库及记录!


2.MySQL自带的一些函数。
进入MySQL:  终端下输入:mysql -p -u 用户名 ,然后输入密码进入之后就可以进行相关操作。
1.now,user,version函数的使用
  Select now() ; //将会显示当前的时间
  Select version(); //将回想显示版本信息
  Select user();        //显示用户名
2.显示数据库的某个项目的详细信息。
 Show fields from S1; //显示表S1的组成信息
 Show columns from xx like '%name'; //显示包含name名的列。
3.AUTO_INCREMENT:保证数据项独一无二,也就是对于某个ITEM,如果没有填写它的值,那么就会默认的在该地方让该项目为增加1.
4.可以使用外部的sql文件来作为sql的输入,也就是在终端中输入:
Mysql -p -u root < test.sql
进入sql中之后:Sourece test.sql
比如对于下面的这个test1.sql文件就这样编辑:
create database Test;
use Test;
show databases;
create table S(
  SNO CHAR(10),
  PNO CHAR(10),
  TIM CHAR(10));
insert into S values('TEST','hjack','hel');
show table S;

5. enum:枚举类型,初始化值可以是:ENUM(‘F’,‘T’)
6. if函数的使用:
 Select last_name, first_name death from president
 Order by IF(death is NULL,0,1),death;
这句语句的意义就是,让先为NULL的放在前面,而没有NULL的放在后面。
7.限制查询的次数
Select last_name,first_name,birth from president
Order by birth limit 5;(显示前面的5个)
Order by birth DESC limit 5;(显示后面的5个)
Order by birth limit 10,5;(跳过前10个后的5个数据)
Order by RAND() limit 1;(随机选择一个数据)
8.输出列求值并命名
Select 17 ,format(SQRT(3*3+4*4,0));
Select concat(first_name,' ',last_name),concat(city,' ',state);
上面的列名就是使用的select后面的列名,比如17列,然后对该列处理,使用了相应的函数
 
此即为第一次的结果。
如果想使用有意义的别名,就用AS来定义新的名称
Select concat(first_name,' ',last_name) AS name from S1;





 
 
insert into S1 values('001','Jam','Smith',now());
select concat(first_name,' ',last_name) AS Name from S1;

8.时间处理
MySQL中有很多时间处理的函数,排序,比较,取日,取月……
简单说几个常用的。
前面用到了now()函数,现在还有CURDATE(),TODAYS()
CURDATE():获取当前的日期
TODAYS(): 将当前的日期转换成天数
MONTH():取当前的月
DAYOFMONTH():取当前时间的天数
 
posted on 2010-06-08 13:55 deercoder 阅读(578) 评论(0)  编辑 收藏 引用 所属分类: SQL

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理