赞
踩
目录
达梦数据库的表空间管理需要掌握以下几个方面:
创建表空间:可以使用CREATE TABLESPACE语句来创建表空间。
修改表空间:可以使用ALTER TABLESPACE语句来修改表空间的属性。
删除表空间:可以使用DROP TABLESPACE语句来删除表空间。
管理表空间的数据文件:可以使用ALTER TABLESPACE ADD DATAFILE和ALTER TABLESPACE DROP DATAFILE语句来管理表空间的数据文件。
查询表空间信息:可以使用系统表来查询所有表空间的信息,例如dba_data_files和dba_tablespaces等。
创建表空间(在/dm8/data/DAMENG/TBS01.DBF路径创建TBS)
- create tablespace "TBS" datafile
- '/dm8/data/DAMENG/TBS01.DBF' size 32;
查看表空间
- select tablespace_name from user_tablespaces
- where tablespace_name='TBS';
删除表空间
drop tablespace TBS;
达梦数据库的用户管理需要掌握以下几个方面:
创建用户:使用CREATE USER语句创建用户。
删除用户:使用DROP USER语句删除用户。
修改用户:可以使用ALTER USER语句修改用户的属性,例如修改密码、设置角色等。
角色管理:可以使用CREATE ROLE和DROP ROLE语句创建和删除角色,使用GRANT和REVOKE语句授权给用户或者其他角色。
授权管理:可以使用GRANT和REVOKE语句授权用户的权限,例如SELECT、INSERT、UPDATE、DELETE等。
查询用户信息:可以通过查询系统表来查看已经存在的用户以及相关信息。
创建用户(SQL语句)刷新就能看到
create user TEST identifiled by "dameng123";
或者直接用DM管理工具操作刷新就能看到
修改用户(SQL语句)刷新就能看到
alter user TEST identified by "Dameng123";
或者直接用DM管理工具操作刷新就能看到
删除用户(SQL语句)刷新就能看到
drop user TEST;
或者直接用DM管理工具操作刷新就能看到
达梦数据库的模式管理需要掌握以下几个方面:
创建模式:使用CREATE SCHEMA语句创建模式。
删除模式:使用DROP SCHEMA语句删除模式。
修改模式:可以通过ALTER SCHEMA语句修改模式名称。
授权管理:可以使用GRANT和REVOKE语句管理模式的授权,授权给特定的用户或角色。
模式查询:可以通过查询系统表来查看已经存在的模式以及相关信息。
创建模式(SYSDBA)
create schema dameng authorization SYSDBA;
删除模式
drop schema DAMENG;
创建表
create table DMHR.TEST;
增加列
alter table DMHR.TEST add column (age int);
删除列
alter table DMHR.TEST drop column age;
删除表
drop table DMHR.TEST;
常见约束类型
not null; unique; primary key; foreing key; check;
增加约束
alter table DMHR.TEST add constraint TEST_UNI unique(ID);
删除约束
alter table DMHR.TEST drop constraint TEST_UNI;
禁用和启用约束
- alter table DMHR.TEST disable constraint;//禁用
- alter table DMHR.TEST enable constraint;//启用
达梦数据库的数据插入需要掌握以下几个方面:
INSERT语句:使用INSERT语句插入数据到表中。
VALUES子句:在INSERT语句中使用VALUES子句,指定要插入的值。
列名:在INSERT语句中指定要插入数据的列名,如果不指定列名,则必须插入所有可插入的列值。
SQL插入语句
- //格式1(简化):
- insert into 表名 values (值1,值2......值n);
- //格式1-1(基本):
- insert into 表名 values (值1,值2......值n),(值1,值2......值n);
- //格式2(简化):
- insert into 表名(字段1,字段2......) values(值1,值2.......);
- //格式2-1(基本):
- insert into 表名(字段1,字段2......) values(值1,值2.......),(值1,值2.......);
看一些练习
- --在TBL_Bookinfo中插入图书信息表中A31、A32两条记录。
- INSERT INTO library00.TBL_Bookinfo (BookID, ISBN,BookName) VALUES
- ('TP391.4/33', '7-81012-690-3','PowerPoint for Windows 95 使用指南'),
- ('TP391/62', '7-5053-3268-6','傻瓜多媒体与CD -- ROM');
- --在TBL_User中插入三条记录。
- INSERT INTO library00.TBL_User (UserID, UserName, Sex, Password, Email, Class) VALUES
- ('20201010110', '王小小', 0, '123456', '270005680@qq.com', '2020计算机应用1班'),
- ('20201010111', '张三', 1, '12345', 'zhoubaiban@07720163.com', '2020计算机应用1班'),
- ('20201010112', '李四', 1, '01234', '1307720163@qq.com', '2020计算机应用1班');
- --删除TBL_User表中的王小小的信息。
- DELETE FROM library00.TBL_User WHERE UserName = '王小小';
达梦数据库的数据更新需要掌握以下几个方面:
UPDATE语句:使用UPDATE语句更新表中的数据。
SET子句:在UPDATE语句中使用SET子句,指定要更新的字段和新的值。
WHERE子句:在UPDATE语句中使用WHERE子句,指定要更新的记录,可以根据某些条件来筛选要更新的数据。
SQL语句更新修改数据
- //格式1(简化):
- update 表名 set 字段名1=值1 where 条件表达式;
- //格式1-1(基本):
- update 表名 set 字段名1=值1,字段名2=值2,....字段值n=值n where 条件表达式;
- //格式2(简化):
- update 表名 set 字段名1=值1;
- //格式2-1(基本):
- update 表名 set 字段名1=值1,字段名2=值2,....字段值n=值n;
达梦数据库的数据删除需要掌握以下几个方面:
DELETE语句:使用DELETE语句删除表中的数据。
WHERE子句:在DELETE语句中使用WHERE子句添加删除数据的条件,限制要删除的数据。
表关系:在有关联关系的表中删除数据时需要注意处理好关联关系,可以采用设置外键约束、级联删除或者手动处理等方式。
SQL语句删除数据
- --格式1:
- delete from 表名 where 条件表达式;
- --格式2:
- delete from 表名;
- --格式3(清空):
- truncate table 表名;
举例子:
- --1.在图书信息表中,插入电子表格中第A33至A40行中的数据;
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName) values ('C931.6/14','7-5624-0265-5','信息系统开发方法及原理');
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName) values ('TP391/59','7-5608-0833-6','IBM-PC汉字信息处理');
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName) values ('TP391/60','7-5028-1029-3','电脑打字版正误100例');
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName) values ('TP312BA/52','7-5357-1050-6','计算机基础');
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName) values ('TP316/68','7-5427-0475-3','PC-DOS 4.00磁盘操作系统技术参考手册');
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName) values ('TP316.7/14','7-302-00856-6','Windows 3.0用户指南');
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName) values ('TP312dB/3a','7-302-01057-9','中文dBASE全自动编程系统Auto-dBASE');
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName) values ('TP391/58','7-310-00976-2','PC多媒体技术');
- --2.在读者表中插入自己的信息;
- insert into library00.tbl_user (UserID,UserName,Sex,Password,Email,class) values ('20220306308','徐赛',0,'7','2727947028@qq.com','计算机应用技术1班');
- --3.将书名为“计算机基础”的作者改为“甘利发”;
- update library00.TBL_Bookinfo set Author='甘利发' where BookName='计算机基础';
- --4.删除出版社是“清华大学出版社”的记录。
- delete from library00.TBL_Bookinfo where Publisher='清华大学出版社';
- --5.在图书信息表中,插入你正在使用的教材信息,图书编号为“TP0001”;
- insert into library00.TBL_Bookinfo (BookID,ISBN,BookName,Author,PublishDate,BookVersion,WordCount,PageCount,Publisher,ClassId) values ('TP0001','7-301-050678-4','JAVA基础语言','丽丽','1994-05-01','',5700,665,'漓江出版社','B'),
- --6.将图书编号“TP0001”的图书,将作者改为自己,出版社改为“火星出版社”,同时更新其它字段的数据(内容不限),除图书编号外。
- update library00.TBL_Bookinfo set Author='徐赛',Publisher='火星出版社',PublishDate='2021-01-01',BookVersion='',WordCount=212100,PageCount='150',ClassId='F' where BookID='TP0001';
达梦数据库的基础查询需要掌握以下几个方面:
SELECT语句:使用SELECT语句查询数据表中的数据。
FROM子句:在SELECT语句中使用FROM子句,指定要查询的数据表。
WHERE子句:在SELECT语句中使用WHERE子句,添加筛选条件来限制查询结果。
SELECT列表:在SELECT语句中使用SELECT列表来指定要查询的列,使用*可以查询全部列。
排序:使用ORDER BY子句来按照指定的列排序,使用ASC或DESC关键字来指定升序或降序。
- --1.查询TBL Bookinfo 表中所有图书信息
- SELECT * FROM library00.TBL_Bookinfo;
- --2.查询TBL User 表中所有读者信息。
- SELECT * FROM library00.TBL_User;
- --3.查询TBL Bookinfo 表中所有图书的索引号、标准编号、书名
- SELECT ISBN,BookID, BookName FROM library00.TBL_Bookinfo;
- --4.查询TBL User 表中读者编号、姓名及班级。
- SELECT UserID, UserName, Class FROM library00.TBL_User;
- --5.查询TBL Bookinfo 表中所有图书的索引号、标准编号、书名,并用中文显示列名
- SELECT ISBN as 索引号,BookID as 标准编号,BookName as 书名 FROM library00.TBL_Bookinfo;
达梦数据库的条件查询需要掌握以下几个方面:
WHERE子句:使用WHERE子句过滤数据,只返回符合条件的记录。
运算符:使用比较运算符(如=、<、>、<=、>=、<>等)和逻辑运算符(如AND、OR、NOT等)来组合多个条件。
通配符:使用通配符(如%、_等)来模糊匹配数据,扩展查询范围。
顺序和优先级:使用括号来控制条件表达式的顺序和优先级。
例子:
- --1.在TBL_BookInfo中找出页数大于100页并且小于200页的书(分别用比较运算符和BETWEEN两种方法实现)
- select * from library00.TBL_Bookinfo where PageCount > 100 and PageCount < 200;
- select * from library00.TBL_Bookinfo where PageCount between 101 and 199;
- --2.在TBL_Bookinfo表中查询所有“清华大学出版社”出版的书的书名, 作者及出版日期。
- select BookName,Author,PublishDate from library00.TBL_Bookinfo where Publisher='清华大学出版社';
- --3.从TBL_Bookinfo表中检索出不是电子工业出版社和清华大学出版社出版的图书。
- select * from library00.TBL_Bookinfo where Publisher not in ('电子工业出版社','清华大学出版社');
- --4.在TBL_Bookinfo显示“中国古代教育文选”和“德国近代文学史”两本书的信息。
- select * from library00.TBL_Bookinfo where BookName in ('中国古代教育文选','德国近代文学史');
- --5.在TBL_Bookinfo显示“清华大学出版社”在1980后出版图书的书名,作者,页数。
- select BookName,Author,PageCount from library00.TBL_Bookinfo where Publisher in('清华大学出版社','1980-01-01');
- --6.在TBL_BookInfo中检索书名中有”工程”两个字的图书的书名,出版社,作者及出版日期。
- select BookName,Publisher,Author,PublishDate from library00.TBL_Bookinfo where BookName like '%工程%';
- --7.在TBL_BookInfo中找出书名中带有“学”字,但又不带有“中学”二字的书。
- select * from library00.TBL_Bookinfo where BookName like '%学%' and BookName not like '%中学%';
- --8.在TBL_User表中找出不姓“蒋”并且名字是3个字的男生。
- select * from library00.tbl_user where UserName not like '%蒋%' and Username like '___' and sex=1;
- --9.在TBL_BookInfo表中将空字符串的版本号修改为空。
- update library00.TBL_Bookinfo set BookVersion=null where BookVersion='';
- --10.在TBL_BookInfo查询版本号不为空的记录。
- select * from library00.TBL_Bookinfo where BookVersion is not null;
- --11.在TBL_BookInfo查询版本号为空的记录同时页数大于200的图书信息。
- select * from library00.TBL_Bookinfo where (BookVersion is null or BookVersion='') and PageCount > 200;
例子:
- --1.在TBL_User表中检索所有的班级,去除重复值。
-
- select distinct class from library00.tbl_user;
-
- --2.TBL_Bookinfo显示所有书的书名,出版社、出版日期,并按出版日期升序排列;
-
- select bookname,publisher,publishdate from library00.tbl_bookinfo order by publishdate asc;
-
- --3.从TBL_Bookinfo表中检索1990至2000年出版的图书信息,并按出版日期降序排列。
-
- select * from library00.tbl_bookinfo where publishdate>='1990-01-01' and publishdate<='2000-12-31' order by publishdate desc;
-
- --4.按出版社的降序和出版日期的升序检索TBL_Bookinfo表的记录。
-
- select * from library00.tbl_bookinfo order by publisher desc ,publishdate asc;
-
- --5.查询最薄的5本图书。
-
- select * from library00.tbl_bookinfo order by pagecount asc limit 5;
-
- --6.查询最新的10本书。
-
- select * from library00.tbl_bookinfo order by publishdate asc limit 10;
-
- --7.查询借阅表中第11-20行记录。
-
- select * from library00.tbl_user limit 10,10;
-
- --8.在TBL_User表中检索用户名,去掉重复值,取最前面的5个用户名。
-
- select distinct username from library00.tbl_user limit 5;
-
- --9.从TBL_ User 表中检索出最前面的3个姓’黄’的用户记录的借书证号,姓名,性别。
-
- select userid,username,sex from library00.tbl_user where username like'%黄%' order by userid asc;
-
- --10.显示每本书书名、作者、出版社、出版日期及至今的年限。
-
- select bookname ,author,publisher,publishdate, year(now())-year(publishdate) as 年限 from library00.tbl_bookinfo;
-
- --11.从TBL_Bookinfo 表查询图书的总册数。
-
- select count(*)from library00.tbl_bookinfo;
-
达梦数据库的分组查询需要掌握以下几个方面:
GROUP BY子句:在SELECT语句中使用GROUP BY子句,指明需要分组的列。
聚合函数:在SELECT语句中使用聚合函数对分组后的数据进行计算,如SUM、AVG、MAX、MIN、COUNT等。
HAVING子句:在GROUP BY子句之后,使用HAVING子句进行条件过滤,只显示满足条件的分组结果。
多个分组:可以在GROUP BY子句中同时指定多个列,实现多个维度的分组查询。
例子:
连接查询:通过连接两个或多个表,实现数据的联合查询。达梦数据库支持INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN等多种连接方式。
达梦数据库支持多种连接查询,包括内连接、外连接、自连接等。下面分别进行介绍:
- SELECT a.emp_id, a.emp_name, b.dept_name
- FROM employees a
- JOIN departments b
- ON a.dept_id = b.dept_id;
这条语句的作用是:查询employees表和departments表中,找到dept_id相同的行,将其join在一起,输出emp_id、emp_name、dept_name三个列。
- SELECT a.emp_id, a.emp_name, b.dept_name
- FROM employees a
- LEFT JOIN departments b
- ON a.dept_id = b.dept_id;
这条语句的作用是:查询employees表和departments表中,找到dept_id相同的行,将其join在一起,输出emp_id、emp_name、dept_name三个列。与内连接不同的是,左外连接会将employees表中没有匹配的行也输出。
- SELECT a.emp_id, a.emp_name, b.emp_name as manager_name
- FROM employees a
- LEFT JOIN employees b
- ON a.manager_id = b.emp_id;
这条语句的作用是:查询employees表中,每个员工和其对应的经理,其中manager_id是emp_id的外键。自身外连接和普通的外连接用法类似。
连接查询是一种强大的数据库查询手段,可以在不同的表之间建立关联关系,满足复杂的业务查询需求。在使用连接查询时,需要考虑性能问题,尽量优化SQL语句,减少不必要的数据扫描和数据传输。
子查询:在查询语句中嵌套一个查询语句,用于处理复杂的查询逻辑。
达梦数据库支持子查询,也称为内部查询或嵌套查询,是一种在一个主查询内嵌套了一个子查询的查询方式。主查询和子查询是相互独立的查询,但是可以通过关联条件进行关联。子查询可以嵌套多层,但是不建议使用过多的子查询,以免影响查询的性能。
子查询常用于以下场景:
- SELECT emp_id, emp_name, emp_age, dept_id
- FROM employees
- WHERE dept_id IN ( SELECT dept_id FROM departments WHERE dept_name = 'Sales');
这条语句的作用是:查询表employees中,部门为Sales的员工信息。
- SELECT emp_id, emp_name, emp_age,
- (SELECT AVG(emp_age) FROM employees) AS avg_age
- FROM employees;
这条语句的作用是:查询表employees中,每个员工的emp_id,emp_name,emp_age以及所有员工的平均年龄avg_age。
- SELECT a.emp_id, a.emp_name, b.dept_name
- FROM
- (SELECT emp_id, emp_name, dept_id FROM employees WHERE dept_id = 1) a
- JOIN departments b
- ON a.dept_id = b.dept_id;
这条语句的作用是:查询表employees中,部门编号为1的员工和其所在部门的名称。
注意,子查询不一定总是比连接查询更快,需要灵活选择具体查询方式。另外,如果子查询嵌套太深,会导致查询性能下降,因此需要适度使用。
学习达梦数据库需要掌握以下几个方面:
数据库基础知识:了解数据库的基本概念、对象、范式、数据模型、事务、锁等知识点,这是学习任何一种数据库的前提。
达梦数据库的特点和用途:了解达梦数据库的特点,比如高性能、高可靠、高安全性,以及其在不同领域的应用,如金融、电信、政务等。
达梦数据库的实现:深入学习达梦数据库的体系结构、存储结构、索引技术、查询优化等关键技术,理解其实现原理以便更好地使用和管理。
数据库管理和运维:掌握数据库的安装、配置、备份、恢复、优化、调试等管理和运维知识,以确保数据库的高效、稳定运行。
总的来说,学习达梦数据库需要不断地实践、思考、总结,多做项目、多尝试,才能够真正掌握其精髓。
课程总结:
在本次关于达梦数据库的学习中,我们学习了数据库的基本概念、关系型数据库的特点、SQL语言的基本内容,以及达梦数据库的基本管理操作,包括用户管理、表空间管理、连接查询和子查询等。
在数据库方面,我们了解了数据的组织形式、数据库管理系统(DBMS)的作用和使用,以及数据库语言SQL的基本语法和类型。我们还学习了关系数据库的基本概念,包括实体、关系、属性、键等,以及关系型数据库的特点和操作手段。
在达梦数据库的管理方面,我们掌握了用户管理、表空间管理、连接查询和子查询等操作,通过实际操作和示例代码,了解了这些操作的具体步骤和技巧。我们还学习了如何优化SQL查询语句,以提高查询性能和效率。
综上所述,本次学习内容丰富、深入浅出,为我们打下了坚实的数据库基础,帮助我们更好地理解和应用数据库技术。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。