首页 > Java教程

部分实用的SQL语句

2017-01-10 00:05:52

一、在数据库创建表格的SQL语句

1,创建一个link表格,包含属性:lid  主键,title 标题,  imgpath 图片地址 , url  网址  , info 说明,  isshow 显示1, 不显示0 , sort 顺序

CREATE TABLE link (         //创建 link 表格

lid INT AUTO_INCREMENT PRIMARY KEY,          //设置为主键

title  VARCHAR(100),          //varchar类型,最大可存100字符

imgpath  VARCHAR(50),

url  VARCHAR(50),

info VARCHAR(200),

isshow INT,             //int类型,无限制

sort  INT                  //注意,最后一个不用加逗号

)

CREATE  TABLE role(

uid  INT AUTO_INCREMENT  PRIMARY KEY,

uname  VARCHAR(30),

upwd  VARCHAR(30),

state INT

);

CREATE  TABLE role(

rid  INT AUTO_INCREMENT  PRIMARY KEY,

rname  VARCHAR(30),

sort  INT

);

2,使用外键创建用户角色表 users_role

CREATE TABLE users_role(

uid INT REFERENCES users(uid),    //uid 用户外键(使用了users表中的uid属性)

rid INT REFERENCES  role(rid)    //rid 角色外键(使用了role表中的rid属性)

)

3,创建一个视图vUsersAndRole(根据users表和role表)[视图是一个虚拟的表格,实际不存在这个表格,只是将相关表格的数据通过视图显示出来了]

CREATE VIEW vUsersAndRole

AS

SELECT users.*,role.rid,role.rname,role.sort      //选择了users的所有属性,以及role中的rid,rname,sort

FROM users,role, users_role       //从三个表中获取数据

WHERE users.uid = users_role.uid        //将中间表的 uid赋给users.uid达到关联并避免重复

AND role.rid = users_role.rid

二、在方法中执行的SQL语句

1,向表格 link 添加数据,null表示主键,并且这个主键是自动增长的,“?”表示可传入的参数,数量根据表格自定义,一般用于手动输入参数

String sql = "INSERT INTO link VALUES(NULL,?,?,?,?,?,?)";

2,删除表格中的某一行数据,“ "+lid+" ”  表示 从某出获取的参数,用来定位要删除的数据,一般用于选择动作获取到的参数

String sql = "DELETE FROM link WHERE lid IN ("+lid+")";

3,修改表中的数据,选择后使用 set 重新设置对应的参数

String sql = "UPDATE link SET titel=?,imgpath=?,url=?,info=?,isshow=?,sort=? WHERE lid=?";

4,选择表格,并依据 参数 sort 来排序

String sql = "SELECT * FROM link  order by sort ";

5,查找表格,根据参数 lid,一般用于查看表中的数据

String sql = "SELECT * FROM link where lid=?";

6,选择表格中限定的参数

String sql = "SELECT * FROM link order by sort  limit "+(pageNo-1)*pageSize+","+pageSize+"    ";

7,返回表格中的数量

String sql = "SELECT count(*) FROM link  ";

8,这里是查询视图 vroleAndGrante 的格式,依据选中的rid,注意格式!!!

String sql = "select * from vroleAndGrante where rid="+rid;

9,通过主键查询视图Vusers_role_grante中的一条信息,这里的主键是 gname

String sql = "SELECT gname FROM Vusers_role_grante  WHERE uid=?  GROUP BY gname";