-
sql sever实训二 对表的插入、修改和删除数据
2020-04-25 22:05:09目录表结构说明表中现有部分数据展示第一关 插入数据相关知识为Student表插入两行为Course表插入两行为SC表插入三行第二关 修改数据1相关知识将不及格的学生成绩加5分将CS系的男同学的年龄加1将学生的学号前加上‘S...目录
表结构说明
表中现有部分数据展示
第一关 插入数据
相关知识
使用SQL语 句中的Insert into语句完成本关操作。
SQL语句中关键字大小写不区分。
插入的数据需要区分大小写。
性别用’m’表示男,’f’表示女。
为Student表插入两行
INSERT INTO Student VALUES ('001','Smith','m','18','CS'), ('002','Ketty','f','19','MA')
输出结果
为Course表插入两行
INSERT INTO Course(cno,cname,ccredit) VALUES ('C01','DB','2'); INSERT INTO Course VALUES ('C02','Oracle','C01','3');
或者
INSERT INTO Course VALUES ('C01','DB',NULL,'2'), ('C02','Oracle','C01','3');
输出结果
为SC表插入三行
INSERT INTO SC VALUES ('001','C01','70'), ('001','C02','82'), ('002','C01','86');
输出结果
注意:在写完每一个元组的括号后面一定要加逗号,末尾的分号可以不用加,而且符号一定是英文的。
第二关 修改数据1
相关知识
使用SQL语句中的Update语句完成本关任务。
SQL语句中关键字大小写不区分。
性别用’m’表示男,’f’表示女。
表格中已经有若干记录,不需要添加添加记录。
将不及格的学生成绩加5分
UPDATE SC SET Grade=Grade+5 WHERE Grade<60
输出结果
将CS系的男同学的年龄加1
UPDATE Student SET Sage=Sage+1 WHERE Sdept='CS' and Ssex='m'
输出结果
将学生的学号前加上‘S’
(S要大写)
UPDATE Student SET Sno='S'+Sno
输出结果
第三关 插入数据2
相关知识
使用SQL语句中的Update语句。
SQL语句中关键字大小写不区分。
性别用’m’表示男,’f’表示女
注意:注:‘S’要大写,学号的类型是char(10)
将学生学号前的‘S’删掉
UPDATE Student SET Sno=Substring(Sno,2,10)
或者
Update Student Set Sno=replace(Sno,'S','')
输出结果
在学生学号后加上‘S’
UPDATE Student SET Sno=Rtrim(Sno)+'S'
输出结果
第四关 删除数据
相关知识
使用SQL语句中的 Delete 语句。
SQL语句中关键字大小写不区分。
性别用’m’表示男,’f’表示女
在SC表中删除成绩为空的选课信息
DELETE FROM SC WHERE Grade IS NULL
输出结果
删除年龄等于18岁的女同学
DELETE FROM Student WHERE Sage='18'and Ssex='f'
输出结果
删除学分为3分的课程
DELETE FROM Course WHERE Ccredit='3'
输出结果
-
Oracle常用对表操作的sql
2019-04-08 10:00:36Oracle的sql语言常常分为四大类别: DQL:是数据查询语言(Data Query Language)的缩写,DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。 DML:是数据操纵语言( Data Manipulation Language )的...Oracle的sql语言常常分为四大类别:
DQL:是数据查询语言(Data Query Language)的缩写,DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。
DML:是数据操纵语言( Data Manipulation Language )的简写。插入( INSERT )、删除(DELETE )、修改( UPDATE )。
DDL:是数据定义语言(Data Definition Language )的简写。用于操作对象和对象的属性。Create语句:可以创建数据库和数据库的一些对象。Drop语句:可以删除数据表、索引、触发程序、条件约束以及数据表的权限等。Alter语句:修改数据表定义及属性。
DCL:是数据控制语句(Data Control Language )的缩写,dcl操作是数据库对象的权限,这些操作的确定使数据更加的安全,用户对某类数据具有何种操作权限是有DBA决定,DCL的操作对象(用户)此时的用户指的是数据库用户。
Grant语句:允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限。
Revoke语句:可以废除某用户或某组或所有用户访问权限本次仅记录ddl操作,原因是ddl不常用,较少有改动表的需求,但是遇到的时候,我们还是需要熟练掌握,故记录一下:
增加字段语法:alter table tablename add (column datatype [default value][null/not null],….);
说明:alter table 表名 add (字段名 字段类型 默认值 是否为空);
例:alter table sf_users add (HeadPIC blob);
例:alter table sf_users add (userName varchar2(30) default '空' not null);
修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);
说明:alter table 表名 modify (字段名 字段类型 默认值 是否为空);
例:alter table sf_InvoiceApply modify (BILLCODE number(4));
删除字段的语法:alter table tablename drop (column);
说明:alter table 表名 drop column 字段名;
例:alter table sf_users drop column HeadPIC;
字段的重命名:
说明:alter table 表名 rename column 列名 to 新列名 (其中:column是关键字)
例:alter table sf_InvoiceApply rename column PIC to NEWPIC;
表的重命名:
说明:alter table 表名 rename to 新表名
例:alter table sf_InvoiceApply rename to sf_New_InvoiceApply;
-
Oracle创建、修改视图
2020-05-21 09:11:21视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典...视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。
视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。
视图的优点:
1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
2.用户通过简单的查询可以从复杂查询中得到结果。
3.维护数据的独立性,试图可从多个表检索数据。
4.对于相同的数据可产生不同的视图。注意:
1、简单视图只从单表里获取数据,复杂视图从多表;
2、简单视图不包含函数和数据组,复杂视图包含;
3、简单视图可以实现DML操作,复杂视图不可以。实例:基于EMP表和DEPT表创建视图
CREATE OR REPLACE VIEW EMPDETAIL AS SELECT EMPNO,ENAME,JOB,HIREDATE,EMP.DEPTNO,DNAME FROM EMP JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO
如果需要删除视图,删除视图不会影响基表的数据(只有视图所有者和具备DROP VIEW权限的用户可以删除视图)。
DROP VIEW EMPDETAIL
视图创建成功后,可以从视图中检索数据,这点和从表中检索数据一样。
SELECT * FROM EMPDETAIL
修改视图
查询日期知识点:
UPDATE EMPDETAIL SET DEPTNO=20 WHERE EMPNO=7902;
查询之前需要格式化日期,用to_char(日期,格式)函数进行转换
SELECT D.ORDER_NUM , D.EMP_NAME FROM DAT_DOCUMENT d WHERE D.FORM_NAME ='Form_SD01' AND TO_CHAR(D.CREATE_TIME,'yyyy-MM-dd') BETWEEN '2019-01-01' AND '2020-03-17';
查询两个日期直接间隔天数:
SELECT TO_char(d.CREATE_TIME,'yyyy-MM-dd'), TO_char(d.UPDATE_TIME,'yyyy-MM-dd'), trunc(d.UPDATE_TIME) - trunc(d.CREATE_TIME) as days FROM dat_document d
结果如下:
-
MySQL如何修改库名
2020-06-03 14:26:00在MySQL数据库中,可以使用rename table对表进行重命名,但是无法使用rename database命令(老版本支持(5.1.7到5.1.23),但是在新版本中去除,因为存在安全风险);但是我们依旧可以用一些其他的方法实现这个...在MySQL数据库中,可以使用rename table对表进行重命名,但是无法使用rename database命令(老版本支持(5.1.7到5.1.23),但是在新版本中去除,因为存在安全风险);但是我们依旧可以用一些其他的方法实现这个逻辑。
具体分为以下三种方法:
mysqldump
#创建目标库 root@mysql8 13:00: [test]> create database test_bak; Query OK, 1 row affected (0.01 sec) #确认源端数据 root@mysql8 13:00: [test]> select count(*) from t1; +----------+ | count(*) | +----------+ | 100000 | +----------+ 1 row in set (0.10 sec) #mysqldump导出数据 [root@zijie data]# /usr/local/mysql/mysql8/bin/mysqldump --defaults-file=/etc/my.cnf -uroot -p970125 --socket=/data/mysql8/data/mysql8.sock --default-character-set=utf8mb4 --single-transaction --master-data=2 --skip-add-drop-table -e --skip-tz-utc --flush-logs --set-gtid-purged=OFF --databases test --tables t1 t2>test.sql mysqldump: [Warning] Using a password on the command line interface can be insecure. #导入数据到新库 [root@zijie data]# mysql -uroot -p970125 test_bak<test.sql mysql: [Warning] Using a password on the command line interface can be insecure. #确认目标端数据 root@mysql8 13:16: [test_bak]> select count(*) from t1; +----------+ | count(*) | +----------+ | 100000 | +----------+ 1 row in set (0.09 sec) #确认无误后删除源库
因为使用mysqldump逻辑备份,所以在数据量很大的时候会比较慢。
传输表空间
详情参考https://blog.csdn.net/qq_42979842/article/details/106523394,该方法动作较大,不推荐。
rename脚本方式
使用脚本方式,rename table更改表名的命令,但是如果新表名后面加数据库,将会将原来的数据库的表移动到新的数据库
#!/bin/bash time=20200602 list_database=$(mysql -uroot -p970125 -Nse "select distinct(table_schema) from information_schema.TABLES where TABLE_SCHEMA not in ('sys','information_schema','mysql','performance_schema')" 2>/dev/null) for database in ${list_database} do mysql -uroot -p970125 -e "create database if not exists ${list_database}${time}" done list_table=$(mysql -uroot -p970125 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA not in ('sys','information_schema','mysql','performance_schema')" 2>/dev/null) for database in ${list_database} do for table in ${list_table} do mysql -uroot -p970125 -e "rename table ${database}.${table} to ${database}${time}.${table}" done done
-
数据访问 之 修改数据 (重要)---2017-04-27
2017-04-27 14:29:001、修改数据: 需要两张数据库表:zhuce 和 naitonality 需要写三个代码文件:main.php; update.php; xiugai.php (其中前两个是用户可见的) 2、主要分为以下四个步骤: ...对表的信息进行操作</h1> <... -
【MySQL】MySQL 的基本操作语句
2017-05-02 15:51:15MySQL数据库的基本操作 本文主要介绍 MySQL 的最基本的操作,如:创建、删除、修改等,操作的分类也比较明确,分为对数据库的操作、对表的操作、对表中列的操作以及对表中行的操作。 可以作为 MySQL 入门时的参考... -
SQL触发器(有同步update的例子)
2020-04-13 21:45:18对表的操作 inserted表 deleted表 增加记录(insert) 存放增加的记录 无 删除记录(delete) 无 存放被删除的记录 修改记录(update) 存放更新后的记录 存放更新前的记录 insert: 当对表进行INSERT操作... -
二叉排序树(二叉查找树)的基本操作
2015-01-04 21:01:52二叉排序树的查找属于动态查找的范畴,根据查找过程中是否对表进行修改,可以把查找分为静态查找和动态查找。动态查找表的特点是:表结构本身是在查找过程中动态生成的,即对于给定的key值,若表中存在其关键字等于... -
oracle视图的创建
2020-08-24 15:36:48视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典... -
打造扛得住的数据库架构读书笔记(五)
2019-01-23 17:27:53MySQL的复制解决了什么问题? 实现了不同服务器上的数据分布,利用二进制日志增量进行。...记录了所有对MySQL数据库修改事件,包括增删改查事件和对表结构的修改事件(成功执行的)。 二进制的日志格式: ... -
Oracle数据表的管理
2020-04-04 23:37:14表的管理分为两个部分,字段管理和表管理。 字段管理包括增加或者删除表中的字段,改变表的存储参数以及对表进行增加、删减和重命名等操作。 普通用户只能对自己模式中的表进行修改,如果想要对任何模式中的表进行... -
mysql的操作
2020-12-09 07:15:532,字符串类型:3,期类型:4,枚举类型:5,布尔类型字段约束基础操作表的操作基本操作修改表--字段的修改对表名重命名排序表数据的增,删,改,查条件优先级聚合函数消除重复行 diatinct 字段(迪斯in克特)分组... -
Oracle的表的创建
2013-11-04 14:50:25视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。 视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的... -
mysql学习笔记(三)SQL介绍和表级的操作
2019-09-24 22:04:04一:SQL的分类 SQL(Structure Query language)分为: DCL(Data Control Language) 数据控制语言:用于创建用户,授予用户权限,删除用户...对表字段的修改,删除等等。 DML(Data Manipulate Language) 数据操... -
mysql表的完整性约束
2019-09-21 10:14:16约束是一种限制,通过对表的行或列的数据做出限制,来确保表的数据完整性和唯一性 为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使... -
mysql删除表的完整性约束条件_mysql表的完整性约束
2021-02-10 01:43:26概览约束是一种限制,通过对表的行或列的数据做出限制,来确保表的数据完整性和唯一性为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,... -
Oracle中视图的创建和处理方法
2016-12-02 10:40:05视图的概念视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。视图是存储在... -
oracle中视图的创建和使用
2017-10-20 10:40:19图是基于一个表或多个表或视图的逻辑表,本身是不包含数据的,通过它可以对表里面的数据进行查询和修改。 视图基于的表为基表,oracle的数据库对象分为五种:表、视图、序列、索引和同义词。 视图的优点: 1.访问... -
查找的基本概念
2020-09-14 08:38:01查找的结果一般分为查找成功和查找失败。 查找表(查找结构):用于查找的数据集合称为查找表,它由同一类型的数据元素(或记录)组成,可以是一个数组或链表等数据类型。 对表查找的4种方式: 查询某个特定的... -
在Oracle中使用触发器
2010-08-12 00:58:00一. 触发器触发器是一个命名的程序单元,用来回应数据库中所发生的事件。根据发生事件的不同,触发器分为DML Triggers, DDL Triggers, Database Event Triggers,... 允许/限制对表的修改2. 自动生成派生列,比如自增字 -
oracle 中的视图
2014-04-30 09:12:28视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。 视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的... -
Oracle中 简单视图和复杂视图的区别
2010-07-19 16:09:00视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库 对象分为五种:表,视图,序列,索引和同义词。视图是存储在数据字典里...