SQL学习心得

时间:2024.5.15

D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

1.

数据定义语言,数据操纵语言,数据控制语言

2.

非过程化(做什么)

集成化(可以是集合)

3.

插入:

INSERT

INTO 表名,属性列

VALUES (张三,18)

修改:

UPDATA 表名

SET 列名=表达式

WHERE 条件

删除:

DELETE

FROM 表名

WHERE 条件

查询:

SELECT 【ALL|DISTINCT】(可以是属性列,表达式,常量,函数)

FROM 表名

WHERE 条件表达式

GROUP BY (列名)【HAVING(条件表达式)】

ORDER BY (列名) ASC|DESC

4.

不含通配符时,like即=

不含通配符时,not like即!=或<>

1.使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:

WHERE ColumnA LIKE '%5/%%' ESCAPE '/' 即‘/’为转义字符,第二个‘%’为普通字符,第一、第三个为通配符。

2.ESCAPE 'escape_character'

允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符。

SELECT *

FROM finances

WHERE description LIKE 'gs_' ESCAPE 'S'

GO

意思就是:

比如,我们要搜索一个字符串 "g_" ,如果直接 like "g_",那么 "_"的作用就

是通配符,而不是字符,结果,我们会查到比如 "ga","gb","gc",而不是我们需要的 "g_".

用 LIKE 'gs_' ESCAPE 'S' 's'表示特殊用法标志。就会搜索‘s_’了。

Select

From Student left outer join SC on (Student.Sno=SC.Sno)

Select

From

Where Sno in (select Sno

From SC

Where Cno=’2’)


第二篇:达内学习心得:Oracle_11g常用SQL语句(高级工程师必备)


达内学习心得:Oracle_11g常用SQL语句(高级工程师必备) 参赛学员:吴贤志

获奖奖项:三等奖

-- 退出 SQLPLUS

exit;

-- 修改 system(sys) 账号密码

SQLPLUS /NOLOG

CONN /AS SYSDBA

ALTER USER SYSTEM IDENTIFIED BY tarring;

-- 清除 SQLPLUS 屏幕

CLEAR SCREEN;

CL SCR;

-- 查看数据文件位置

SELECT NAME FROM v$datafile;

-- 查看控制文件位置

SELECT NAME FROM v$controlfile;

-- 查看日志文件位置

SELECT MEMBER FROM v$logfile;

-- 建立表空间

CREATE TABLESPACE ts01

DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db01.dbf'SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 1024M

DEFAULT STORAGE(INITIAL 10m NEXT 1M)

PERMANENT

ONLINE

LOGGING;

-- 修改表空间

ALTER TABLESPACE ts01

NOLOGGING;

-- 表空间增加数据文件

ALTER TABLESPACE ts01

ADD DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db02.dbf'SIZE 100M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

-- 删除表空间

DROP TABLESPACE ts01;

-- 删除表空间同时删除数据文件

DROP TABLESPACE ts01 INCLUDING CONTENTS AND DATAFILES;

-- 表空间中建表

CREATE TABLE student(

student_id VARCHAR2(10),

student_name VARCHAR2(20)

)TABLESPACE ts01;

-- 查看表所属表空间

SELECT TABLE_NAME, TABLESPACE_NAME FROM tabs WHERE TABLE_NAME = 'STUDENT';

-- 查看表结构

DESCRIBE student;

DESC student;

-- 增加表注释

COMMENT ON TABLE student IS '学生信息表';

-- 查看表注释

SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME = 'STUDENT'; SELECT * FROM ALL_TAB_COMMENTS WHERE TABLE_NAME = 'STUDENT';

-- 表字段增加注释

COMMENT ON COLUMN STUDENT.STUDENT_ID IS '学生编号';

-- 查看表字段注释

SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'STUDENT'; SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = 'STUDENT';

-- 查看用户所有表

SELECT * FROM User_Tables;

-- 查看用户拥有的所有对象

SELECT * FROM User_Objects;

-- 查看用户拥有的 表 试图 序列

SELECT * FROM User_Catalog;

-- 表字段修改

ALTER TABLE student MODIFY(student_id CHAR(15));

-- 表字段增加

ALTER TABLE STUDENT ADD(AGE NUMBER(2));

-- 删除表字段

ALTER TABLE STUDENT DROP COLUMN student_name;

-- 修改表名称

RENAME STUDENT TO STU;

-- 删除表

DROP TABLE STUDENT;

CREATE TABLE student(

s_id Varchar2(10),

s_name varchar2(20),

s_age Number(3),

s_birthday DATE

)TABLESPACE ts01;

-- 增加一条记录

INSERT INTO

student (s_id, s_name, s_age, s_birthday)

VALUES ('S000000001', 'Tarring01', 10, to_date('1982-10-06','yyyy-mm-dd'));

INSERT INTO

student (s_id, s_name, s_age, s_birthday)

VALUES ('S000000002', 'Tarring02', 10, Sysdate);

-- 使用替代变量时,输入字符串字段时一样要写上引号

INSERT INTO

student (s_id, s_name, s_age, s_birthday)

VALUES (&s_id, &s_name, 10, Sysdate);

-- 修改记录

UPDATE student SET s_name = '陶川', s_age = 20 WHERE s_id = 'S000000002';

-- 删除记录

DELETE FROM student WHERE s_id = 'S000000002';

-- 截断表

TRUNCATE TABLE student;

-- 事务处理

COMMIT; -- 提交事务

INSERT INTO student (s_id, s_name) VALUES ('S001', 'tarring1');

ROLLBACK; -- 回滚,回滚到上一次提交过后的点

-- 带恢复点的事务

COMMIT;

INSERT INTO student (s_id, s_name) VALUES ('S001', 'tarring1');

SAVEPOINT firstdate;

INSERT INTO student (s_id, s_name) VALUES ('S002', 'tarring2');

SAVEPOINT seconddate;

DELETE FROM student;

ROLLBACK TO firstdate;

SELECT * FROM student;

-- 约束条件 说明

--------------------------------------------------------------------

-- UNIQUE 指定字段的值,必须是唯一的

-- PRIMARY KEY 主键,会为指定的字段作索引,并且也是唯一的值 -- NOT NULL 不可以是空值【'' NULL】或0(零)

-- CHECK 检查,必须符合指定的条件

-- FOREIGN KEY 外键,用来创建一个参考表之间的关系

-- 建表同时建立唯一约束

CREATE TABLE student(

s_id Varchar2(10),

s_name varchar2(20),

s_age Number(3),

s_birthday DATE,

CONSTRAINT s_name_uk UNIQUE(s_name)

)TABLESPACE ts01;

-- 查看唯一约束

SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';

-- 作业:数据字典【分类 常用】

-- 建表同时建立主键

CREATE TABLE student(

s_id Varchar2(10),

s_name varchar2(20),

s_age Number(3),

s_birthday DATE,

CONSTRAINT s_id_pk PRIMARY KEY (s_id)

)TABLESPACE ts01;

-- 查看主键约束

SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';

-- 建表同时建立非空字段

CREATE TABLE student(

s_id Varchar2(10),

s_name varchar2(20) NOT NULL,

s_age Number(3),

s_birthday DATE,

CONSTRAINT s_id_pk PRIMARY KEY (s_id)

)TABLESPACE ts01;

INSERT INTO student (s_id, s_name) VALUES ('S001', NULL); -- 插入一个null

-- 查看非空约束

SELECT table_name, constraint_name, constraint_type, search_condition User_Constraints WHERE table_name = 'STUDENT';

-- 建表同时建立检查

CREATE TABLE student(

s_id Varchar2(10),

s_name varchar2(20),

s_age Number(3),

s_birthday DATE,

CONSTRAINT s_age_ck CHECK (s_age BETWEEN 1 AND 100) -- 端点值可以使用 )TABLESPACE ts01;

-- 查看检查约束

SELECT table_name, constraint_name, constraint_type, search_condition User_Constraints WHERE table_name = 'STUDENT';

-- 外键的使用

CREATE TABLE team(

t_id Varchar2(10),

t_name Varchar2(20),

CONSTRAINT t_id_pk PRIMARY KEY (t_id)

)TABLESPACE ts01;

CREATE TABLE student(

s_id Varchar2(10), FROM FROM

team_id VARCHAR2(10),

s_name varchar2(20),

CONSTRAINT s_id_pk PRIMARY KEY (s_id),

CONSTRAINT s_team_id_fk FOREIGN KEY (team_id) REFERENCES team(t_id)

)TABLESPACE ts01;

-- 查看表的外键约束

SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE

table_name = 'STUDENT';

drop table team; -- 被引用表是不能删除的

insert into team (t_id, t_name) values ('t001', 'lansene');

insert into student(s_id, s_name, team_id) values ('s001','tarring', 't001');

delete from team; -- 被引用的记录是不能删除的

-- 关闭一个约束

ALTER TABLE student DISABLE CONSTRAINT s_team_id_fk;

-- 启用一个约束

ALTER TABLE student ENABLE CONSTRAINT s_team_id_fk;

-- 删除一个约束

ALTER TABLE student DROP CONSTRAINT s_team_id_fk;

-- 已创建的表增加一个约束

ALTER TABLE student ADD CONSTRAINT s_team_id_fk FOREIGN KEY (team_id)

REFERENCES team(t_id);

/******************************************************************************

**************|

| SQL语句5大类型 | 命令 | 说明 |

|******************************************************************************

**************|

| Data Retrieval数据检索 | select | 查询记录 |

|******************************************************************************

**************|

| Date Manipulation Language【DML】数据操纵语言 | insert | 添加记录 |

| | update | 修改记录 |

| | delete | 删除记录

|

|******************************************************************************

**************|

| Data Definition Language【DDL】数据定义语言 | create | 创建 |

| | alter | 修改 |

| | drop | 丢弃【删除】 |

| | rename | 重命名 |

| | truncate | 截断 |

|******************************************************************************

**************|

| Transaction Control事务控制 | commit | 确认命令 |

| | rollback | 回退至前一次确认的命

令或保存点 |

| | savepoint | 设置保存点 |

|******************************************************************************

**************|

| Data Control Language【DCL】数据控制语言 | grant | 授予权限 |

| | revoke | 撤消权限 |

|******************************************************************************

**************/

/*************************************|

| 系统权限 | 说明 |

|*************************************|

| create session | 连接数据库 |

|*************************************|

| create table | 创建表 |

|*************************************|

| create sequence | 创建序列 |

|*************************************|

| create view | 创建视图 |

|*************************************|

| create proceduer | 创建程序 |

|*************************************/

/*******************************************************************|

| \ 对象 | 表【table】 | 视图【view】 | 程序【procedure】 |

| 权限 \ | | | |

|*******************************************************************|

| insert | Y | Y | |

|*******************************************************************|

| alter | Y | | |

|*******************************************************************|

| update | Y | Y | |

|*******************************************************************|

| delete | Y | Y | |

|*******************************************************************|

| select | Y | Y | |

|*******************************************************************|

| index | Y | | |

|*******************************************************************|

| execute | | | Y |

|*******************************************************************/

-- 创建用户

CREATE USER u01 IDENTIFIED BY p01;

-- 创建用户并制定默认表空间

CREATE USER u01 IDENTIFIED BY p01 DEFAULT TABLESPACE QUOTA 2M ON ts01; --quota 表空间中可使用的配额

-- 修改用户密码

ALTER USER u01 IDENTIFIED BY p001;

-- 修改用户表空间配额

ALTER USER u01 QUOTA 20M ON ts01;

ALTER USER u01 QUOTA UNLIMITED ON ts01; -- 用户对表空间没有配额限制

-- 回收unlimited tablespace权限

REVOKE UNLIMITED TABLESPACE FROM ts01;

-- 删除用户

DROP USER u01;

-- 切换连接数据库的用户

CONNECT u01/p01;

conn u01/p01;

-- 授权用户连接数据库的权限

GRANT CREATE SESSION TO u01;

-- 授权用户创建序列(sequence)的权限

GRANT CREATE sequence TO u01;

-- 授权用户创建表的权限

GRANT CREATE TABLE TO u01;

--授权用户查表的权限

grant select on ts01.user1 to wangkai;

--授权用户修改表的权限

grant alter on user1 to wangkai;

--授权用户删除表的权限(没有此权限)

grant drop on user1 to wangkai;(错误)

--授权用户对一个表的所有权限

grant all on user1 to wangkai;

--授权所有用户对一个表的所有权限

grant all on user1 to public;

-- 收回用户创建表的权限

REVOKE CREATE TABLE FROM u01;

-- 收回用户查表的权限

REVOKE select on user1 FROM u01;

-- 收回用户修改的权限

REVOKE select on user1 FROM u01;

-- 收回用户对一个表的所有权限

revoke all on user1 from wangkai;

--收回所有用户对一个表的所有权限

revoke all on user1 to public;

-- 创建角色

CREATE ROLE r01;

-- 角色授权

GRANT CREATE SESSION, CREATE TABLE TO r01;

-- 收回角色权限

REVOKE CREATE TABLE FROM r01;

-- 查看角色权限

SELECT ROLE,PRIVILEGE FROM role_sys_privs WHERE ROLE='R01'

-- 角色赋给用户

GRANT r01 TO u01;

-- 查看当前用户角色

SELECT * FROM user_role_privs;

-- 删除角色

DROP ROLE r01;

更多相关推荐:
民法学习心得体会

民法学习心得体会民法原理在我们现实生活中真的是无处不在,衣食住行各方面都有可能会和民法打上“交道”,毫不夸张的说,我们每个人从出生到死亡基本上都是生活在民法的框架范围内,因此学习好民法,掌握好民法,运用好民法就…

民族团结学习心得体会1

民族团结学习心得体会王帅自公元前xx年西汉设西域都护府以来,新疆就作为祖国不可分割的一部分纳入了祖国版图。几千年来,在这块土地上各族人民交融相处繁衍生息,共同缔造了灿烂辉煌的中华文化,谱写了一曲曲维护祖国统一、…

外训学习心得

参《采购价格与成本分析效益实务》之学习心得为时一天的培训课程结束了,时间虽短,但受益匪浅。我深刻领会到,作为一名合格的采购员,应具备一个管理者所拥有的思维度及对事物分析的敏锐度,更要学会倾听,掌握沟通技巧等多项…

广告学习心得作业

广告学习心得每天每个电视台都会播放广告,特别是在每次播放精彩节目的瞬间都会插播广告这对我来说已经是司空见惯了。所以一直以来我对广告没有什么好感。在上这门课之前我对广告艺术也是一无所知.在我眼中它们只不过是投资商…

法律的学习心得体会

法律的学习心得体会自XX年x月份以来,我们在学校领导的组织下,通过多种形式,进行了“法律进学校”的学习。我们集中学习了《中华人民共和国宪法》、《中华人民共和国教育法》、《中华人民共和国义务教育法》、《中华人民共…

学习心得

国培学习心得体会——湖北省黄梅县柳林乡中学梅利今年,我非常幸运地参加了“国培”教师培训,在培训学习期间,聆听了很多专家和名师的报告,他们以鲜活的案例和丰富的知识内涵及精湛的理论阐述,给了我强烈的感染和深深的理论…

学习心得

学习“吴大奎董事长讲话”的心得吴大奎董事长在柳州银海铝调研期间作了题为《新班子新柳铝新景象》的即兴讲话。在目前经济大环境不景气的现状下,这次讲话的内容非常的重要,对集团下属企业有着宏观上的指导意义。安徽广银领导…

学习孝道心得体会1000字3篇

学习孝道心得体会1000字3篇学习孝道心得体会1000字1篇当前孝道文化传遍祖国大江南北孝道之花开遍中国每个角落是的百孝篇中讲quot孝在街坊人敬仰孝在家中合家欢孝字本是百行源孝贵行动不在言quot人若不孝敬父...

讲学习心得体会

讲学习心得体会通过学习理工学院教授的讲座和局长的讲话深受教育体会很深充分的认识到作为身在机关的国家公务员只有努力不断的加强学习不断的提高自身素质树立为党为人民服务的思想才能做好本职工作不犯错误或者是少犯错误为达...

党课学习心得体会_3000字

党课学习心得体会首先感谢党组织给我此次的学习机会能够参加学院举办的入党积极分子培训班的学习我深感荣幸也十分珍惜这次宝贵的学习机会各位老师对党的精辟解析独到的见解和大量的旁征博引让我在无比叹服的同时深受鼓舞和教育...

新课程理念学习心得体会

新课程理念学习心得体会寨郝中心学校韩素芹通过学习我对新形势下的教学又有了更深刻的理解在此之前我原以为我对新课改已经有了一定的认识但通过专家对新课程的分析讲解以及和同示们的研讨交流使我感觉到了自身存在的差距与不足...

安全学习心得体会

安全学习心得体会我通过这次安全学习得到了深刻的体会一作业人员严重违章是导致事故的主要原因管理人员和员工的安全意识不强管理人员声音指挥或操作现场工作人员不按规定违反操作规定等等二岗位操作人员粗心大意不熟悉岗位未能...

学习心得(464篇)