1、创建表的sql语句,说明一下uid为自动递增的整型数据,insert_time是创建的时间数据,比如以字符串的形式插入的话就是"2013-12-12"或"2013-11-26 15:02:33" create table proclamation_record( uid integer primary key autoincrement, [user_id] varchar(32) default null, [user_name] varchar(32) default null, [area_code] varchar(18) default null, [user_level] varchar(2) default null, [info_type] varchar(2) default null, [insert_time] datetime default null, [subject] varchar(128) default null, [content] varchar(255) default null, [expire_time] datetime default null, [version] integer default null, [status] integer default null )
例子: 2、给数据库出入新的值,如果写表明后面跟值得的话就必须字段和类型同表一样 INSERT INTO proclamation_record VALUES ('1','sda','afd','asdf','1','2013-11-26 15:02:33','fasd','fdsa','2013-11-26 15:02:37','0');
2.1、如果写表名而且后面还跟了列名,则后面跟值得的话就必须字段和类型同列要一样 INSERT INTO proclamation_record(user_id,user_name,area_code,user_level,info_type,insert_time,subject,content,expire_time,version) VALUES ( 'ssa','0');
3、查询表的值根据时间的的最近的时间查 SELECT * FROM proclamation_record ORDER BY 0+insert_time ASC;
4、查询表的值根据时间的的最远的时间查 SELECT * FROM proclamation_record ORDER BY insert_time ASC;
4.1 、查询表中同一时间的记录个数,具体是先将数据按insert_time进行分组,然后统计每组的个数,并且最后返回的值按insert_time降序进行排列,一般group by是用于统计记录个数用的 select count(*) from proclamation_record group by insert_time order by insert_time desc;
5、根据某个字段中包含某个关键字查表 SELECT * FROM proclamation_record where area_code like "%asd2%"
6、通过uid的升序排列表,并且显示数据在第0到第10之间,一般用于分页显示数据 select * from proclamation_record order by uid asc limit 0,10
7、查询表中某个字段的最大值 SELECT max(version) from proclamation_record
8、通过insert_time的降序排列查询结果,并且从查得结果的第0条偏移值开始,限制到后面的2条 select * from proclamation_record order by insert_time desc limit 2 offset 0
9、给数据库增加一列 Alter TABLE proclamation_record ADD COLUMN column_name DATATYPE;
10、给表的uid列建立索引 create INDEX index_name ON proclamation_record (uid)
11、更新某一列的数据 update proclamation_record set version = 1 where uid = 2
12、内连接,表s和表c的classid字段相同,查询表s内连接c,也就是要表s和表c都有值才显示 select * from student s inner join class c on s.classid = c.classid; select * from student s inner join class c where s.classid = c.classid;
13、对于左连接、右连接、全连接下面用个例子说明 ------------------------------------------------- a表 id name b表 id job parent_id 1 张3 1 23 1 2 李四 2 34 2 3 王武 3 34 4 a.id同parent_id 存在关系
-------------------------------------------------- 1) 内连接 select a.*,b.* from a inner join b on a.id=b.parent_id 结果是 1 张3 1 23 1 2 李四 2 34 2 2)左连接 select a.*,b.* from a left join b on a.id=b.parent_id 结果是 1 张3 1 23 1 2 李四 2 34 2 3 王武 null
3) 右连接 select a.*,b.* from a right join b on a.id=b.parent_id 结果是 1 张3 1 23 1 2 李四 2 34 2 null 3 34 4 4) 完全连接 select a.*,b.* from a full join b on a.id=b.parent_id
结果是 1 张3 1 23 1 2 李四 2 34 2 null 3 34 4 3 王武 null ------------------------------------------------------------------------------
多表链接查询
SELECT T_Order.id,T_Order.remark,T_Order.resource_count,T_Order.order_status,T_Resource.no,T_Resource_Category.name,T_Resource_Group.name FROM T_Order INNER JOIN T_Order_Resource_Detail on T_Order.id = T_Order_Resource_Detail.order_id INNER JOIN T_Resource on T_Order_Resource_Detail.resource_id = T_Resource.id inner join T_Resource_Category on T_Resource.category_id = T_Resource_Category.id inner join T_Resource_Group on T_Resource.group_id = T_Resource_Group.id ;
---------------------------------------------------------------------------------------------------------------------------------------------
在某个时间范围内查询数据
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 String startTime = df.format(new Date()); df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = df.parse(startTime); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.add(calendar.DATE,-90);//把日期往后增加一天.整数往后推,负数往前移动 date=calendar.getTime(); //这个时间就是日期往后推一天的结果 String endTime = df.format(date); //增加一天后的日期 sql = "select _id from t_boundlog bl where bl.StartTime < '"+endTime+"'";
修改表,增加一列:
ALTER TABLE t_boundlog ADD COLUMN other STRING (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|