创建表

  mysql5.5之前默认的存储引擎是MyISAM,而mysql5.5之后默认的存储引擎是InnoDB

插入数据的方式:

1.一次性指定全部列值

eg:insert  into student values('Keyle','M',NULL);

说明:此种方法插入,values列表必须包含表中每一列的值,并且值得顺序要与各列在表的存储顺序保持一致(该顺序就是各列在该表的create table中指定的顺序)

也可以多行插入

eg:insert into student values('Avery','F',null),('Nathan','M',null);

2.指定赋值列,并赋值

eg:insert into member(last_name,first_name) values('Stein','Waldo');

3.使用一系列的“列/值”形式进行赋值

eg:insert into member set last_name='ni' ,first_name='xu';

不能用于一次插入多个行

4.利用文件添加新行

情况一:不在库里

mysql -uroot -p sampdb < insert_president.sql

情况二:在库里

source /home/xcn/data/sample/sampdb/insert_president.sql

如果文件里存储的行不是insert语句而是原始数据,可以利用load data语句或客户端程序mysqlimport程序来加载它们

load data语句是一个从文件里读取数据的批量加载程序。它需要在mysql里运行:

eg:load data local infile '/home/xcn/data/sample/sampdb/member.txt' into table member;

默认情况下,load data 语句会假设各列的值是以制表符分隔的,各行末尾都是换行符(文件里\n表示NULL),同时假设这些值得顺序与表里存储列的顺序相同

也可使用

mysqlimport -uroot -p --local sampdb member.txt

该程序将生成一条能将member.txt文件里的内容加载到member表里的load data 语句。

由于mysqlimport 程序是根据数据文件的名字来确定表名的,同时它会把文件名中第一个句号之前的所有内容都当做表名

mysql中的数据

NULL值,只能使用 is null or is not null 或者mysql 特有的<=> null

如果想用特有符号表示不是null  where not death <=> null

对查询结果的排序

关于行检索的顺序,请记住一点:服务器不会保证返回行的先后顺序,除非你自己指定顺序。

order by limit 

eg:select last_name,first_name,birth from president order by birth desc limit 5 | limit 10,5

如果希望随机取一条或n条

eg:select last_name,first_name,birth from president order by rand() limit 1| limit 3;

两个日期相差多少年:

timestampdiff(year,birth,death):year是参数,计算活了多久

两个日期相差多少天:

to_days(curdate()) 将日期转换为天数

to_days(expiration)-to_days(curdate()) < 60

也可以使用 

timestampdiff(day,curdate(),expiration)<60

增加日期

date_add('1970-01-01',interval 10 year)

减少日期

date_sub('1970-01-01',interval 10 year)

 

posted @ 2017-04-09 09:30  jenny落  阅读(157)  评论(0编辑  收藏  举报