sql常用语句

发布时间:2017-2-27 14:42:55 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"sql常用语句",主要涉及到sql常用语句方面的内容,对于sql常用语句感兴趣的同学可以参考一下。

1 表的建立 语法:CREATE TABLE 表名 [表约束]     (列名1 数据类型 [缺省值1,列约束1] (列名2 数据类型 [缺省值2,列约束2] … 列名n 数据类型 [缺省值n,列约束n] [TABLESPACE 表空间名称] [STORAGE (存贮的子句)] [ENABLE 约束名] [DISABLE 约束名]  2 插入数据 INSERT INTO 表名[(列名1,…)]    VALUES(值1,值2,…,值n) INSERT INTO STUDENT VALUSE(1003, 'E',12); 修改数据 对表中已有数据进行修改,语句句法: UPDATE 表名SET 列名1=表达式1,列名2=表达式2,… WHERE 条件; 将B的年纪改为18;应该执行以下语句: UPDATE STUDENT SET AGE=18 WHERE NAME='B'; 删除数据 删除表中已有数据,不能删除不存在的数据。 语句句法: DELETE FROM 表名 WHERE 条件; 表结构的修改   ALTER TABLE 表名 ADD(新列名 数据类型(长度));     例如:     ALTER  TABLE  STUDENT  ADD (DEPARTMENT CHAR(8)); b.增加已有列的数据类型。     例如:     ALTER  TABLE  STUDENT  MODIFY(NAME VARCHAR2(25)); 表的删除 将已经存在的表删除,语句句法:     DROP TABLE表名;     例如:     DROP TABLE EMP; 查询语句 SELECT命令的语法为: SELECT [DISTINCT|ALL] {*|模式名.] {表名|视图名| 快照名] .*…| {表达式[列别名]…} } [, [模式名. ] {表名| 视图名|} .*…| 表达式[列别名] ]… FROM [模式名.] {表名|视图名|快照名} [@数据库链名] [表别名] [, [模式名.] {表名|视图名|快照名} [@数据库链名] [表别名] ]… [WHERE条件] [START WITH条件 CONNECT BY 条件] [GROUP BY表达式[,表达式] …[HAVING条件] [UNION|UNION ALL |INTERSECT|MINUS]SELECT命令 [ORDER BY{表达式|位置} [ASC|DESC] [, {表达式|位置[ASC|DESC]}]…]   NO NAME AGE 1001 AE 12 1002 BT 14 (1) 查询年纪为12的学生姓名; SELECT STUDENT.NAME FROM STUDENT WHERE AGE=12; (2) 查询年纪在12至16岁之间的学生姓名; SELECT STUDENT.NAME FROM STUDENT WHERE AGE BETWEEN 12 AND 16; (3) 查询年纪不在12至16岁之间的学生姓名; SELECT STUDENT.NAME FROM STUDENT WHERE AGE NOT BETWEEN 12 AND 16; (4) 查询所有姓名以A开头的学生的姓名; SELECT STUDENT.NAME FROM STUDENT WHERE NAME LIKE 'A%'; (5) 列出所有学生年纪的和,年纪的平均值,最大值,最小值,最大值与最小值之间的差值; SELECT AVG(AGE), SUM(AGE), MAX(AGE), MIN(AGE), MAX(AGE)-MIN(AGE); (6) 将所有学生按学号顺序升序排列; SELECT * FROM STUDENT ORDER BY NO DESC; (7) 将所有学生按学号顺序升序排列; SELECT * FROM STUDENT ORDER BY NO ASC;例如:对于STUDENT表:在已存在的表中增加新列,语句句法:     向表中增加一个 VARCHAR 列: ALTER TABLE distributors ADD COLUMN address VARCHAR(30); 对现存列改名: ALTER TABLE distributors RENAME COLUMN address TO city; 对现存表改名: ALTER TABLE distributors RENAME TO suppliers; 表结构:--用户表CREATE TABLE users (  u_id VARCHAR(64) NOT NULL ,-- '用户ID',  d_id  varchar(64) references department(d_id), -- '所属部门id',  u_serial  INTEGER default 0, -- '排序编号',  u_name VARCHAR(50) NOT NULL,-- '用户名',  password VARCHAR(45) NOT NULL, --'密码',  gender VARCHAR(8),       --'性别',   real_name VARCHAR(45),  --'用户真实姓名',  email VARCHAR(60),  --'电子邮件地址',  address VARCHAR(100), -- '用户地址',  tel VARCHAR(45), -- '用户电话号码',  fax VARCHAR(45),-- '用户传真号码',  mobile VARCHAR(45), -- '用户手机号码',  status VARCHAR(45) default 'Active', --'用户状态',  PRIMARY KEY(u_id))--角色表CREATE TABLE roles (  r_id VARCHAR(64) NOT NULL,-- '角色ID',  r_name VARCHAR(45) NOT NULL,-- '角色名称',  r_serial INTEGER  default 0,--'角色排序编号',  d_id  varchar(64) references department(d_id), -- '所属部门id',  comments VARCHAR(100),--'角色备注',  PRIMARY KEY (r_id),)--用户角色对应关系表(多对多)CREATE TABLE users_roles_relation (  u_id VARCHAR(64) references users(u_id),--'用户ID',  r_id VARCHAR(64) references roles(r_id),--'角色ID',  primary key(u_id,r_id) )要求: 传入一个部门id和角色名找出相对应的用户信息。select * from users where u_id in ( select u_id from users_roles_relation where r_id in (select distinct r_id from roles where d_id = '42114800-6f22-1000-83e5-c505cae624fd' and r_name = '经理')) 优化后:select a.*   from users a ,roles b,  users_roles_relation c where a.u_id = c.u_id and b.r_id = c.r_id and b.d_id = '42114800-6f22-1000-83e5-c505cae624fd' and b.r_name = '经理'   access 数据导入mssql2005use javaoa;exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigureinsert into test select * from openrowset('Microsoft.Jet.OLEDB.4.0','c:/Data.mdb';'admin';'',tblmold)

上一篇:Tears in rainy September
下一篇:MySQL集群配置

相关文章

关键词: sql常用语句

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。