精华内容
下载资源
问答
  • DML、TCL与视图

    2020-06-19 21:39:31
    演示事务的使用步骤:演示事务对于delete和truncate的处理的区别:演示savepoint 的使用:视图视图的创建视图的修改视图的删除查看视图视图的更新视图练习总结 DML 简介 • DML(Data Manipulation Language – 数据...

    DML

    简介

    • DML(Data Manipulation Language –
    数据操纵语言) 可以在下列条件下执行:
    – 向表中插入数据
    – 修改现存数据
    – 删除现存数据
    • 事务是由完成若干项工作的DML语句组成的

    插入数据

    INSERT 语句
    • 使用 INSERT 语句向表中插入数据。
    • 使用这种语法一次只能向表中插入一条数据。

    INSERT INTO table [(column [, column...])]
    VALUES (value [, value...]);
    
    • 为每一列添加一个新值。
    • 按列的默认顺序列出各个列的值。
    • 在 INSERT 子句中随意列出列名和他们的值。
    • 字符和日期型数据应包含在单引号中。
    INSERT INTO t_mysql_departments(department_id, department_name, manager_id, location_id)
    VALUES (70, 'Public Relations', 100, 1700);
    
    INSERT INTO t_mysql_employees(employee_id,last_name,email,hire_date,job_id)
    VALUES (300,’Tom’,’tom@126.com,to_date(2012-3-
    21,’yyyy-mm-dd’),’SA_RAP’);
    

    向表中插入空值

    • 隐式方式: 在列名表中省略该列的值。
    INSERT INTO t_mysql_departments (department_id, department_name )
    VALUES (30, 'Purchasing');
    
    显示方式: 在VALUES 子句中指定空值。
    INSERT INTO t_mysql_departments
    VALUES (100, 'Finance', NULL, NULL);
    

    插入指定的值

    INSERT INTO t_mysql_employees (employee_id, first_name, last_name, email, phone_number,hire_date, job_id, salary, commission_pct, manager_id,department_id)
    VALUES (113, 'Louis', 'Popp', 'LPOPP', '515.124.4567', 
    NOW(), 'AC_ACCOUNT', 6900, NULL, 205, 100);
    

    从其它表中拷贝数据

    • 在 INSERT 语句中加入子查询。
    INSERT INTO emp2 
    SELECT * 
    FROM t_mysql_employees
    WHERE department_id = 90;
    
    INSERT INTO sales_reps(id, name, salary, commission_pct)
    SELECT employee_id, last_name, salary, commission_pct
    FROM t_mysql_employees
    WHERE job_id LIKE '%REP%';
    

    • 不必书写 VALUES 子句。

    • 子查询中的值列表应与 INSERT 子句中的列名对应

    更新数据

    • 使用 UPDATE 语句更新数据。
    UPDATE table
    SET column = value [, column = value, ...]
    [WHERE condition];
    
    • 可以一次更新多条数据。
    • 如果需要回滚数据,需要保证在DML前,进行
    设置:SET AUTOCOMMIT = FALSE;
    
    • 使用 WHERE 子句指定需要更新的数据。
    
    

    一次修改多表的数据
    案例:

    #案例 1:修改张无忌的女朋友的手机号为114
    UPDATE t_mysql_boys bo
    INNER JOIN t_mysql_beauty b ON bo.`id`=b.`boyfriend_id`
    SET b.`phone`='119',bo.`userCP`=1000
    WHERE bo.`boyName`='张无忌';
    
    #案例2:修改没有男朋友的女神的男朋友编号都为2号
    UPDATE t_mysql_boys bo
    RIGHT JOIN t_mysql_beauty b ON bo.`id`=b.`boyfriend_id`
    SET b.`boyfriend_id`=2
    WHERE bo.`id` IS NULL;
    
    SELECT * FROM t_mysql_boys;
    

    删除数据

    使用 DELETE 语句从表中删除数据。
    DELETE FROM table
    [WHERE condition];
    
    • 使用 WHERE 子句删除指定的记录。
    DELETE FROM t_mysql_departments
    WHERE department_name = 'Finance';
    
    • 如果省略 WHERE 子句,则表中的全部数据将被删除
    DELETE FROM copy_emp;
    

    一次删除多表的数据

    #案例:删除张无忌的女朋友的信息
    
    DELETE b
    FROM t_mysql_beauty b
    INNER JOIN t_mysql_boys bo ON b.`boyfriend_id` = bo.`id`
    WHERE bo.`boyName`='张无忌';
    
    
    #案例:删除黄晓明的信息以及他女朋友的信息
    DELETE b,bo
    FROM t_mysql_beauty b
    INNER JOIN t_mysql_boys bo ON b.`boyfriend_id`=bo.`id`
    WHERE bo.`boyName`='黄晓明';
    

    delete pk truncate
    1.delete 可以加where 条件,truncate不能加
    2.truncate删除,效率高一丢丢
    3.假如要删除的表中有自增长列,
    如果用delete删除后,再插入数据,自增长列的值从断点开始,
    而truncate删除后,再插入数据,自增长列的值从1开始。
    4.truncate删除没有返回值,delete删除有返回值
    5.truncate删除不能回滚,delete删除可以回滚.

    SELECT * FROM t_mysql_boys;
    
    DELETE FROM t_mysql_boys;
    TRUNCATE TABLE t_mysql_boys;
    INSERT INTO t_mysql_boys (boyname,usercp)
    VALUES('张飞',100),('刘备',100),('关云长',100);
    

    综合练习

    #1.	运行以下脚本创建表my_employees
    
    USE myemployees;
    CREATE TABLE my_employees(
    	Id INT(10),
    	First_name VARCHAR(10),
    	Last_name VARCHAR(10),
    	Userid VARCHAR(10),
    	Salary DOUBLE(10,2)
    );
    CREATE TABLE users(
    	id INT,
    	userid VARCHAR(10),
    	department_id INT
    
    );
    #2.	显示表my_employees的结构
    DESC my_employees;
    
    #3.	向my_employees表中插入下列数据
    ID	FIRST_NAME	LAST_NAME	USERID	SALARY
    1	patel		Ralph		Rpatel	895
    2	Dancs		Betty		Bdancs	860
    3	Biri		Ben		Bbiri	1100
    4	Newman		Chad		Cnewman	750
    5	Ropeburn	Audrey		Aropebur	1550
    
    #方式一:
    INSERT INTO my_employees
    VALUES(1,'patel','Ralph','Rpatel',895),
    (2,'Dancs','Betty','Bdancs',860),
    (3,'Biri','Ben','Bbiri',1100),
    (4,'Newman','Chad','Cnewman',750),
    (5,'Ropeburn','Audrey','Aropebur',1550);
    DELETE FROM my_employees;
    #方式二:
    
    INSERT INTO my_employees
    SELECT 1,'patel','Ralph','Rpatel',895 UNION
    SELECT 2,'Dancs','Betty','Bdancs',860 UNION
    SELECT 3,'Biri','Ben','Bbiri',1100 UNION
    SELECT 4,'Newman','Chad','Cnewman',750 UNION
    SELECT 5,'Ropeburn','Audrey','Aropebur',1550;
    
    				
    #4.	 向users表中插入数据
    1	Rpatel	10
    2	Bdancs	10
    3	Bbiri	20
    4	Cnewman	30
    5	Aropebur	40
    
    INSERT INTO users
    VALUES(1,'Rpatel',10),
    (2,'Bdancs',10),
    (3,'Bbiri',20);
    
    
    #5.将3号员工的last_name修改为“drelxer”
    UPDATE my_employees SET last_name='drelxer' WHERE id = 3;
    
    
    #6.将所有工资少于900的员工的工资修改为1000
    UPDATE my_employees SET salary=1000 WHERE salary<900;
    
    #7.将userid 为Bbiri的user表和my_employees表的记录全部删除
    
    DELETE u,e
    FROM users u
    JOIN my_employees e ON u.`userid`=e.`Userid`
    WHERE u.`userid`='Bbiri';
    
    #8.删除所有数据
    
    DELETE FROM my_employees;
    DELETE FROM users;
    #9.检查所作的修正
    
    SELECT * FROM my_employees;
    SELECT * FROM users;
    
    #10.清空表my_employees
    TRUNCATE TABLE my_employees;
    

    TCL(事务控制语言)

    事务的特性:
    ACID
    原子性:一个事务不可再分割,要么都执行要么都不执行
    一致性:一个事务执行会使数据从一个一致状态切换到另外一个一致状态
    隔离性:一个事务的执行不受其他事务的干扰
    持久性:一个事务一旦提交,则会永久的改变数据库的数据.

    事务:
    一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。

    案例:转账

    张三丰  1000
    郭襄	1000
    
    updateset 张三丰的余额=500 where name='张三丰'
    意外
    updateset 郭襄的余额=1500 where name='郭襄'
    

    事务的创建

    隐式事务:事务没有明显的开启和结束的标记
    比如insertupdatedelete语句
    
    delete fromwhere id =1;
    
    显式事务:事务具有明显的开启和结束的标记
    前提:必须先设置自动提交功能为禁用
    
    set autocommit=0;
    
    步骤1:开启事务
    set autocommit=0;
    start transaction;可选的
    步骤2:编写事务中的sql语句(select insert update delete)
    语句1;
    语句2;
    ...
    
    步骤3:结束事务
    commit;提交事务
    rollback;回滚事务
    
    savepoint 节点名;设置保存点
    

    开启事务的语句;

    updateset 张三丰的余额=500 where name='张三丰'
    
    updateset 郭襄的余额=1500 where name='郭襄' 
    

    结束事务的语句;

    SHOW VARIABLES LIKE 'autocommit';
    SHOW ENGINES;
    

    事务的隔离级别:

    事务的隔离级别:
    		  脏读		不可重复读	幻读
    read uncommitted:√		√		√
    read committed:  ×		√		√
    repeatable read: ×		×		√
    serializable	  ×     ×       ×
    
    
    mysql中默认 第三个隔离级别 repeatable read
    oracle中默认第二个隔离级别 read committed
    查看隔离级别
    select @@tx_isolation;
    设置隔离级别
    set session|global transaction isolation level 隔离级别;
    

    演示事务的使用步骤:

    #开启事务
    SET autocommit=0;
    START TRANSACTION;
    #编写一组事务的语句
    UPDATE account SET balance = 1000 WHERE username='张无忌';
    UPDATE account SET balance = 1000 WHERE username='赵敏';
    
    #结束事务
    ROLLBACK;
    #commit;
    
    SELECT * FROM account;
    

    演示事务对于delete和truncate的处理的区别:

    SET autocommit=0;
    START TRANSACTION;
    
    DELETE FROM account;
    ROLLBACK;
    

    演示savepoint 的使用:

    SET autocommit=0;
    START TRANSACTION;
    DELETE FROM account WHERE id=25;
    SAVEPOINT a;#设置保存点
    DELETE FROM account WHERE id=28;
    ROLLBACK TO a;#回滚到保存点
    
    SELECT * FROM account;
    

    视图

    含义:虚拟表,和普通表一样使用
    mysql5.1版本出现的新特性,是通过表动态生成的数据

    比如:舞蹈班和普通班级的对比
    	    创建语法的关键字	是否实际占用物理空间	    使用
    
    视图	create view		只是保存了sql逻辑	增删改查,只是一般不能增删改
    
    表	    create table		保存了数据		增删改查
    
    

    案例

    #案例:查询姓张的学生名和专业名
    SELECT stuname,majorname
    FROM stuinfo s
    INNER JOIN major m ON s.`majorid`= m.`id`
    WHERE s.`stuname` LIKE '张%';
    
    CREATE VIEW v1
    AS
    SELECT stuname,majorname
    FROM stuinfo s
    INNER JOIN major m ON s.`majorid`= m.`id`;
    
    SELECT * FROM v1 WHERE stuname LIKE '张%';
    
    

    视图的创建

    语法:create view 视图名 as 查询语句;

    USE myemployees;
    
    #1.查询姓名中包含a字符的员工名、部门名和工种信息
    #①创建
    CREATE VIEW myv1
    AS
    
    SELECT last_name,department_name,job_title
    FROM employees e
    JOIN departments d ON e.department_id  = d.department_id
    JOIN jobs j ON j.job_id  = e.job_id;
    
    
    #②使用
    SELECT * FROM myv1 WHERE last_name LIKE '%a%';
    
    
    
    
    
    
    #2.查询各部门的平均工资级别
    
    #①创建视图查看每个部门的平均工资
    CREATE VIEW myv2
    AS
    SELECT AVG(salary) ag,department_id
    FROM employees
    GROUP BY department_id;
    
    #②使用
    SELECT myv2.`ag`,g.grade_level
    FROM myv2
    JOIN job_grades g
    ON myv2.`ag` BETWEEN g.`lowest_sal` AND g.`highest_sal`;
    
    
    
    #3.查询平均工资最低的部门信息
    
    SELECT * FROM myv2 ORDER BY ag LIMIT 1;
    
    #4.查询平均工资最低的部门名和工资
    
    CREATE VIEW myv3
    AS
    SELECT * FROM myv2 ORDER BY ag LIMIT 1;
    
    
    SELECT d.*,m.ag
    FROM myv3 m
    JOIN departments d
    ON m.`department_id`=d.`department_id`;
    
    

    视图的修改

    语法1:create or replace view 视图名 as 查询语句;

    SELECT * FROM myv3 
    
    CREATE OR REPLACE VIEW myv3
    AS
    SELECT AVG(salary),job_id
    FROM employees
    GROUP BY job_id;
    

    语法2:alter view 视图名 as 查询语句;

    ALTER VIEW myv3
    AS
    SELECT * FROM employees;
    

    视图的删除

    语法:drop view 视图名,视图名,…;

    语法:drop view 视图名,视图名,...;
    

    查看视图

    DESC myv3;
    
    SHOW CREATE VIEW myv3;
    

    视图的更新

    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email,salary*12*(1+IFNULL(commission_pct,0)) "annual salary"
    FROM employees;
    
    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email
    FROM employees;
    
    
    SELECT * FROM myv1;
    SELECT * FROM employees;
    #1.插入
    
    INSERT INTO myv1 VALUES('张飞','zf@qq.com');
    
    #2.修改
    UPDATE myv1 SET last_name = '张无忌' WHERE last_name='张飞';
    
    #3.删除
    DELETE FROM myv1 WHERE last_name = '张无忌';
    
    #具备以下特点的视图不允许更新
    
    
    #①包含以下关键字的sql语句:分组函数、distinct、group  by、having、union或者union all
    
    CREATE OR REPLACE VIEW myv1
    AS
    SELECT MAX(salary) m,department_id
    FROM employees
    GROUP BY department_id;
    
    SELECT * FROM myv1;
    
    #更新
    UPDATE myv1 SET m=9000 WHERE department_id=10;
    
    #②常量视图
    CREATE OR REPLACE VIEW myv2
    AS
    
    SELECT 'john' NAME;
    
    SELECT * FROM myv2;
    
    #更新
    UPDATE myv2 SET NAME='lucy';
    
    
    
    
    
    #③Select中包含子查询
    
    CREATE OR REPLACE VIEW myv3
    AS
    
    SELECT department_id,(SELECT MAX(salary) FROM employees) 最高工资
    FROM departments;
    
    #更新
    SELECT * FROM myv3;
    UPDATE myv3 SET 最高工资=100000;
    
    
    #④join
    CREATE OR REPLACE VIEW myv4
    AS
    
    SELECT last_name,department_name
    FROM employees e
    JOIN departments d
    ON e.department_id  = d.department_id;
    
    #更新
    
    SELECT * FROM myv4;
    UPDATE myv4 SET last_name  = '张飞' WHERE last_name='Whalen';
    INSERT INTO myv4 VALUES('陈真','xxxx');
    
    
    
    #⑤from一个不能更新的视图
    CREATE OR REPLACE VIEW myv5
    AS
    
    SELECT * FROM myv3;
    
    #更新
    
    SELECT * FROM myv5;
    
    UPDATE myv5 SET 最高工资=10000 WHERE department_id=60;
    
    
    
    #⑥where子句的子查询引用了from子句中的表
    
    CREATE OR REPLACE VIEW myv6
    AS
    
    SELECT last_name,email,salary
    FROM employees
    WHERE employee_id IN(
    	SELECT  manager_id
    	FROM employees
    	WHERE manager_id IS NOT NULL
    );
    
    #更新
    SELECT * FROM myv6;
    UPDATE myv6 SET salary=10000 WHERE last_name = 'k_ing';
    

    视图练习

    #一、创建视图emp_v1,要求查询电话号码以‘011’开头的员工姓名和工资、邮箱
    CREATE OR REPLACE VIEW emp_v1
    AS
    SELECT last_name,salary,email
    FROM employees
    WHERE phone_number LIKE '011%';
    
    #二、创建视图emp_v2,要求查询部门的最高工资高于12000的部门信息
    CREATE OR REPLACE VIEW emp_v2
    AS
    SELECT MAX(salary) mx_dep,department_id
    FROM employees
    GROUP BY department_id
    HAVING MAX(salary)>12000;
    
    
    SELECT d.*,m.mx_dep
    FROM departments d
    JOIN emp_v2 m
    ON m.department_id = d.`department_id`;
    

    总结

    内容有点多,希望能帮到大家!!

    展开全文
  • DML和视图

    2020-06-21 21:45:36
    这里写目录标题一、DML(数据库管理语言)1、dml有什么用2、插入数据3、更新数据4、删除数据二、视图1、创建视图2、视图的修改3、删除视图4、查看视图5、视图的更新 一、DML(数据库管理语言) 1、dml有什么用 ①可以在...

    一、DML(数据库管理语言)

    1、dml有什么用

    ①可以在下列条件下执行: – 向表中插入数据
    – 修改现存数据
    – 删除现存数据
    ② 事务是由完成若干项工作的DML语句组成的

    2、插入数据

    ① 使用 INSERT 语句向表中插入数据。
    ②使用这种语法一次只能向表中插入一条数据。
    INSERT INTO table [(column [, column...])]
    VALUES (value [, value...]);
    ③为每一列添加一个新值。
    ④按列的默认顺序列出各个列的值。
    ⑤在 INSERT 子句中随意列出列名和他们的值。
    ⑥字符和日期型数据应包含在单引号中。
    
    

    向表中插入空值:

    • 隐式方式: 在列名表中省略该列的值。
    INSERT INTO t_mysql_departments (department_id, department_name )
    VALUES (30, 'Purchasing');
    
    显示方式: 在VALUES 子句中指定空值。
    INSERT INTO t_mysql_departments
    VALUES (100, 'Finance', NULL, NULL);
    

    插入指定的值

    INSERT INTO t_mysql_employees (employee_id, first_name, last_name, email, phone_number,hire_date, job_id, salary, commission_pct, manager_id,department_id)
    VALUES (113, 'Louis', 'Popp', 'LPOPP', '515.124.4567', 
    NOW(), 'AC_ACCOUNT', 6900, NULL, 205, 100);
    

    从其它表中拷贝数据

    • 在 INSERT 语句中加入子查询。
    INSERT INTO emp2 
    SELECT * 
    FROM t_mysql_employees
    WHERE department_id = 90;
    
    INSERT INTO sales_reps(id, name, salary, commission_pct)
    SELECT employee_id, last_name, salary, commission_pct
    FROM t_mysql_employees
    WHERE job_id LIKE '%REP%';
    

    不必书写 VALUES 子句。
    子查询中的值列表应与 INSERT 子句中的列名对应

    3、更新数据

    ① 使用 UPDATE 语句更新数据。

    UPDATE table
    SET column = value [, column = value, ...]
    [WHERE condition];
    

    ② 可以一次更新多条数据。
    ③如果需要回滚数据,需要保证在DML前,进行
    设置:SET AUTOCOMMIT = FALSE;

    ④ 使用 WHERE 子句指定需要更新的数据。

    UPDATE t_mysql_employees
    SET department_id = 70
    WHERE employee_id = 113;
    

    ⑥ 如果省略 WHERE 子句,则表中的所有数据都将被更新

    UPDATE copy_emp
    SET department_id = 110;
    

    一次修改多表的数据

    #案例 1:修改张无忌的女朋友的手机号为114
    UPDATE t_mysql_boys bo
    INNER JOIN t_mysql_beauty b ON bo.`id`=b.`boyfriend_id`
    SET b.`phone`='119',bo.`userCP`=1000
    WHERE bo.`boyName`='张无忌';
    
    #案例2:修改没有男朋友的女神的男朋友编号都为2号
    UPDATE t_mysql_boys bo
    RIGHT JOIN t_mysql_beauty b ON bo.`id`=b.`boyfriend_id`
    SET b.`boyfriend_id`=2
    WHERE bo.`id` IS NULL;
    
    SELECT * FROM t_mysql_boys;
    

    4、删除数据

    使用 DELETE 语句从表中删除数据。

    DELETE FROM table
    [WHERE condition];
    

    使用 WHERE 子句删除指定的记录。

    DELETE FROM t_mysql_departments
    WHERE department_name = 'Finance';
    

    如果省略 WHERE 子句,则表中的全部数据将被删除

    DELETE FROM copy_emp;
    

    一次删除多表的数据

    #案例:删除张无忌的女朋友的信息
    
    DELETE b
    FROM t_mysql_beauty b
    INNER JOIN t_mysql_boys bo ON b.`boyfriend_id` = bo.`id`
    WHERE bo.`boyName`='张无忌';
    
    
    #案例:删除黄晓明的信息以及他女朋友的信息
    DELETE b,bo
    FROM t_mysql_beauty b
    INNER JOIN t_mysql_boys bo ON b.`boyfriend_id`=bo.`id`
    WHERE bo.`boyName`='黄晓明';
    delete pk truncate
    
    1.delete 可以加where 条件,truncate不能加
    
    2.truncate删除,效率高一丢丢
    
    3.假如要删除的表中有自增长列,
    	如果用delete删除后,再插入数据,自增长列的值从断点开始,
    	而truncate删除后,再插入数据,自增长列的值从1开始。
    
    4.truncate删除没有返回值,delete删除有返回值
    
    5.truncate删除不能回滚,delete删除可以回滚.
    
    SELECT * FROM t_mysql_boys;
    
    DELETE FROM t_mysql_boys;
    TRUNCATE TABLE t_mysql_boys;
    INSERT INTO t_mysql_boys (boyname,usercp)
    VALUES('张飞',100),('刘备',100),('关云长',100);
    
    

    二、视图

    含义:虚拟表,和普通表一样使用
    mysql5.1版本出现的新特性,是通过表动态生成的数

    比如:舞蹈班和普通班级的对比创建语法的关键字 是否实际占用物理空间

    使用视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改
    表 create table 保存了数据 增删改查

    案例:查询姓张的学生名和专业名

    SELECT stuname,majorname
    FROM stuinfo s
    INNER JOIN major m ON s.`majorid`= m.`id`
    WHERE s.`stuname` LIKE '张%';
    
    
    CREATE VIEW v1
    AS
    SELECT stuname,majorname
    FROM stuinfo s
    INNER JOIN major m ON s.`majorid`= m.`id`;
    
    SELECT * FROM v1 WHERE stuname LIKE '张%';
    

    1、创建视图

    语法:
    create view 视图名
    as
    查询语句;
    USE myemployees;

    (1).查询姓名中包含a字符的员工名、部门名和工种信息
    ①创建

    CREATE VIEW myv1
    AS
    
    SELECT last_name,department_name,job_title
    FROM employees e
    JOIN departments d ON e.department_id  = d.department_id
    JOIN jobs j ON j.job_id  = e.job_id;
    
    
    #②使用
    SELECT * FROM myv1 WHERE last_name LIKE '%a%';
    

    (2).查询各部门的平均工资级别

    #①创建视图查看每个部门的平均工资
    CREATE VIEW myv2
    AS
    SELECT AVG(salary) ag,department_id
    FROM employees
    GROUP BY department_id;
    
    #②使用
    SELECT myv2.`ag`,g.grade_level
    FROM myv2
    JOIN job_grades g
    ON myv2.`ag` BETWEEN g.`lowest_sal` AND g.`highest_sal`;
    

    (3).查询平均工资最低的部门信息

    SELECT * FROM myv2 ORDER BY ag LIMIT 1;
    

    (4).查询平均工资最低的部门名和工资

    CREATE VIEW myv3
    AS
    SELECT * FROM myv2 ORDER BY ag LIMIT 1;
    
    
    SELECT d.*,m.ag
    FROM myv3 m
    JOIN departments d
    ON m.`department_id`=d.`department_id`;
    

    2、视图的修改

    #方式一:
    create or replace view  视图名
    as
    查询语句;
    SELECT * FROM myv3 
    
    CREATE OR REPLACE VIEW myv3
    AS
    SELECT AVG(salary),job_id
    FROM employees
    GROUP BY job_id;
    
    #方式二:
    /*
    语法:
    alter view 视图名
    as 
    查询语句;
    
    */
    ALTER VIEW myv3
    AS
    SELECT * FROM employees;
    

    3、删除视图

    语法:drop view 视图名,视图名,...;
    DROP VIEW emp_v1,emp_v2,myv3;
    

    4、查看视图

    DESC myv3;
    
    SHOW CREATE VIEW myv3;
    

    5、视图的更新

    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email,salary*12*(1+IFNULL(commission_pct,0)) "annual salary"
    FROM employees;
    
    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email
    FROM employees;
    
    
    SELECT * FROM myv1;
    SELECT * FROM employees;
    #1.插入
    
    INSERT INTO myv1 VALUES('张飞','zf@qq.com');
    
    #2.修改
    UPDATE myv1 SET last_name = '张无忌' WHERE last_name='张飞';
    
    #3.删除
    DELETE FROM myv1 WHERE last_name = '张无忌';
    
    #具备以下特点的视图不允许更新
    
    
    #①包含以下关键字的sql语句:分组函数、distinct、group  by、having、union或者union all
    
    CREATE OR REPLACE VIEW myv1
    AS
    SELECT MAX(salary) m,department_id
    FROM employees
    GROUP BY department_id;
    
    SELECT * FROM myv1;
    
    #更新
    UPDATE myv1 SET m=9000 WHERE department_id=10;
    
    #②常量视图
    CREATE OR REPLACE VIEW myv2
    AS
    
    SELECT 'john' NAME;
    
    SELECT * FROM myv2;
    
    #更新
    UPDATE myv2 SET NAME='lucy';
    
    
    
    
    
    #③Select中包含子查询
    
    CREATE OR REPLACE VIEW myv3
    AS
    
    SELECT department_id,(SELECT MAX(salary) FROM employees) 最高工资
    FROM departments;
    
    #更新
    SELECT * FROM myv3;
    UPDATE myv3 SET 最高工资=100000;
    
    
    #④join
    CREATE OR REPLACE VIEW myv4
    AS
    
    SELECT last_name,department_name
    FROM employees e
    JOIN departments d
    ON e.department_id  = d.department_id;
    
    #更新
    
    SELECT * FROM myv4;
    UPDATE myv4 SET last_name  = '张飞' WHERE last_name='Whalen';
    INSERT INTO myv4 VALUES('陈真','xxxx');
    
    
    
    #⑤from一个不能更新的视图
    CREATE OR REPLACE VIEW myv5
    AS
    
    SELECT * FROM myv3;
    
    #更新
    
    SELECT * FROM myv5;
    
    UPDATE myv5 SET 最高工资=10000 WHERE department_id=60;
    
    
    
    #⑥where子句的子查询引用了from子句中的表
    
    CREATE OR REPLACE VIEW myv6
    AS
    
    SELECT last_name,email,salary
    FROM employees
    WHERE employee_id IN(
    	SELECT  manager_id
    	FROM employees
    	WHERE manager_id IS NOT NULL
    );
    
    #更新
    SELECT * FROM myv6;
    UPDATE myv6 SET salary=10000 WHERE last_name = 'k_ing';
    
    展开全文
  • MySQL之DML、视图

    2020-06-19 21:16:13
    MySQL之DML、视图DML(数据管理语言)1、简介2、插入数据向表中插入空值插入指定的值从其它表中拷贝数据3、更新数据一次修改多表的数据4、删除数据一次删除多表的数据视图一、创建视图二、视图的修改方式一:方式二...

    DML(数据管理语言)

    1、简介

    • DML(Data Manipulation Language –
    数据操纵语言) 可以在下列条件下执行: – 向表中插入数据
    – 修改现存数据
    – 删除现存数据
    • 事务是由完成若干项工作的DML语句组成的

    2、插入数据

    • 使用 INSERT 语句向表中插入数据。
    • 使用这种语法一次只能向表中插入一条数据。
    INSERT INTO table [(column [, column…])]
    VALUES (value [, value…]);
    • 为每一列添加一个新值。
    • 按列的默认顺序列出各个列的值。
    • 在 INSERT 子句中随意列出列名和他们的值。
    • 字符和日期型数据应包含在单引号中。
    INSERT INTO t_mysql_departments(department_id, department_name, manager_id, location_id)
    VALUES (70, ‘Public Relations’, 100, 1700);

    INSERT INTO t_mysql_employees(employee_id,last_name,email,hire_date,job_id)
    VALUES (300,’Tom’,’tom@126.com’,to_date(‘2012-3-
    21’,’yyyy-mm-dd’),’SA_RAP’);

    向表中插入空值

    • 隐式方式: 在列名表中省略该列的值

    INSERT INTO t_mysql_departments (department_id, department_name )
    VALUES (30, 'Purchasing');
    

    显示方式: 在VALUES 子句中指定空值

    INSERT INTO t_mysql_departments
    VALUES (100, 'Finance', NULL, NULL);
    

    插入指定的值

    INSERT INTO t_mysql_employees (employee_id, first_name, last_name, email, phone_number,hire_date, job_id, salary, commission_pct, manager_id,department_id)
    VALUES (113, 'Louis', 'Popp', 'LPOPP', '515.124.4567', 
    NOW(), 'AC_ACCOUNT', 6900, NULL, 205, 100);
    

    从其它表中拷贝数据

    • 在 INSERT 语句中加入子查询。
    INSERT INTO emp2 
    SELECT * 
    FROM t_mysql_employees
    WHERE department_id = 90;
    
    INSERT INTO sales_reps(id, name, salary, commission_pct)
    SELECT employee_id, last_name, salary, commission_pct
    FROM t_mysql_employees
    WHERE job_id LIKE '%REP%';
    

    3、更新数据

    • 使用 UPDATE 语句更新数据。
    UPDATE table
    SET column = value [, column = value, …]
    [WHERE condition];
    • 可以一次更新多条数据。
    • 如果需要回滚数据,需要保证在DML前,进行
    设置:SET AUTOCOMMIT = FALSE;

    • 使用 WHERE 子句指定需要更新的数据。
    UPDATE t_mysql_employees
    SET department_id = 70
    WHERE employee_id = 113;
    • 如果省略 WHERE 子句,则表中的所有数据都将被更新
    UPDATE copy_emp
    SET department_id = 110;

    一次修改多表的数据

    #案例 1:修改张无忌的女朋友的手机号为114
    UPDATE t_mysql_boys bo
    INNER JOIN t_mysql_beauty b ON bo.`id`=b.`boyfriend_id`
    SET b.`phone`='119',bo.`userCP`=1000
    WHERE bo.`boyName`='张无忌';
    

    4、删除数据

    使用 DELETE 语句从表中删除数据。
    DELETE FROM table
    [WHERE condition];

    • 使用 WHERE 子句删除指定的记录。
    DELETE FROM t_mysql_departments
    WHERE department_name = ‘Finance’;

    • 如果省略 WHERE 子句,则表中的全部数据将被删除
    DELETE FROM copy_emp;

    一次删除多表的数据

    delete pk truncate
    1.delete 可以加where 条件,truncate不能加
    2.truncate删除,效率高一丢丢
    3.假如要删除的表中有自增长列,
    如果用delete删除后,再插入数据,自增长列的值从断点开始,
    而truncate删除后,再插入数据,自增长列的值从1开始。
    4.truncate删除没有返回值,delete删除有返回值
    5.truncate删除不能回滚,delete删除可以回滚.

    SELECT * FROM t_mysql_boys;
    
    DELETE FROM t_mysql_boys;
    TRUNCATE TABLE t_mysql_boys;
    INSERT INTO t_mysql_boys (boyname,usercp)
    VALUES('张飞',100),('刘备',100),('关云长',100);
    

    视图

    含义:虚拟表,和普通表一样使用
    mysql5.1版本出现的新特性,是通过表动态生成的数据
    比如:舞蹈班和普通班级的对比
    创建语法的关键字 是否实际占用物理空间 使用
    视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改
    表 create table 保存了数据 增删改查

    一、创建视图

    语法:
    create view 视图名
    as
    查询语句;

    #1.查询姓名中包含a字符的员工名、部门名和工种信息
    #①创建
    CREATE VIEW myv1
    AS
    
    SELECT last_name,department_name,job_title
    FROM employees e
    JOIN departments d ON e.department_id  = d.department_id
    JOIN jobs j ON j.job_id  = e.job_id;
    
    
    #②使用
    SELECT * FROM myv1 WHERE last_name LIKE '%a%';
    

    二、视图的修改

    方式一:

    /*
    create or replace view  视图名
    as
    查询语句;
    
    */
    SELECT * FROM myv3 
    
    CREATE OR REPLACE VIEW myv3
    AS
    SELECT AVG(salary),job_id
    FROM employees
    GROUP BY job_id;
    

    方式二:

    /*
    语法:
    alter view 视图名
    as 
    查询语句;
    
    */
    ALTER VIEW myv3
    AS
    SELECT * FROM employees;
    

    三、删除视图

    /*
    
    语法:drop view 视图名,视图名,...;
    */
    
    DROP VIEW emp_v1,emp_v2,myv3;
    

    四、查看视图

    DESC myv3;
    
    SHOW CREATE VIEW myv3;
    

    五、视图的更新

    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email,salary12(1+IFNULL(commission_pct,0)) “annual salary”
    FROM employees;

    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email
    FROM employees;

    在这里插入图片描述

    展开全文
  • MySQL之DML与视图

    2020-06-19 22:32:52
    目录DML(数据管理语言)1、简介2、插入数据向表中插入空值插入指定的值从其它表中拷贝数据3、更新数据一次修改多表的数据4、删除数据一次删除多表的数据视图一、创建视图二、视图的修改三、删除视图四、查看视图五...

    DML(数据管理语言)

    1、简介

    • DML(Data Manipulation Language –
    数据操纵语言) 可以在下列条件下执行: – 向表中插入数据
    – 修改现存数据
    – 删除现存数据
    • 事务是由完成若干项工作的DML语句组成的

    2、插入数据

    • 使用 INSERT 语句向表中插入数据。
    • 使用这种语法一次只能向表中插入一条数据。
    INSERT INTO table [(column [, column…])]
    VALUES (value [, value…]);

    • 为每一列添加一个新值。
    • 按列的默认顺序列出各个列的值。
    • 在 INSERT 子句中随意列出列名和他们的值。
    • 字符和日期型数据应包含在单引号中。
    INSERT INTO t_mysql_departments(department_id, department_name, manager_id, location_id)
    VALUES (70, 'Public Relations', 100, 1700);
    
    INSERT INTO t_mysql_employees(employee_id,last_name,email,hire_date,job_id)
    VALUES (300,’Tom’,’tom@126.com’,to_date(‘2012-3-
    21’,’yyyy-mm-dd’),’SA_RAP’);
    
    向表中插入空值
    • 隐式方式: 在列名表中省略该列的值。
    INSERT INTO t_mysql_departments (department_id, department_name )
    VALUES (30, 'Purchasing');
    
    显示方式: 在VALUES 子句中指定空值。
    INSERT INTO t_mysql_departments
    VALUES (100, 'Finance', NULL, NULL);
    
    插入指定的值
    INSERT INTO t_mysql_employees (employee_id, first_name, last_name, email, phone_number,hire_date, job_id, salary, commission_pct, manager_id,department_id)
    VALUES (113, 'Louis', 'Popp', 'LPOPP', '515.124.4567', 
    NOW(), 'AC_ACCOUNT', 6900, NULL, 205, 100);
    
    从其它表中拷贝数据
    • 在 INSERT 语句中加入子查询。
    INSERT INTO emp2 
    SELECT * 
    FROM t_mysql_employees
    WHERE department_id = 90;
    
    INSERT INTO sales_reps(id, name, salary, commission_pct)
    SELECT employee_id, last_name, salary, commission_pct
    FROM t_mysql_employees
    WHERE job_id LIKE '%REP%';
    

    • 不必书写 VALUES 子句。

    • 子查询中的值列表应与 INSERT 子句中的列名对应

    3、更新数据

    • 使用 UPDATE 语句更新数据。
    UPDATE table
    SET column = value [, column = value, …]
    [WHERE condition];
     
    • 可以一次更新多条数据。
    • 如果需要回滚数据,需要保证在DML前,进行
    设置:SET AUTOCOMMIT = FALSE;

    • 使用 WHERE 子句指定需要更新的数据。
    UPDATE t_mysql_employees
    SET department_id = 70
    WHERE employee_id = 113;
     
    • 如果省略 WHERE 子句,则表中的所有数据都将被更新
    UPDATE copy_emp
    SET department_id = 110;

    一次修改多表的数据
    案例 1:修改张无忌的女朋友的手机号为114
    UPDATE t_mysql_boys bo
    INNER JOIN t_mysql_beauty b ON bo.`id`=b.`boyfriend_id`
    SET b.`phone`='119',bo.`userCP`=1000
    WHERE bo.`boyName`='张无忌';
    
    案例2:修改没有男朋友的女神的男朋友编号都为2号
    UPDATE t_mysql_boys bo
    RIGHT JOIN t_mysql_beauty b ON bo.`id`=b.`boyfriend_id`
    SET b.`boyfriend_id`=2
    WHERE bo.`id` IS NULL;
    
    SELECT * FROM t_mysql_boys;
    

    4、删除数据

    使用 DELETE 语句从表中删除数据。
    DELETE FROM table
    [WHERE condition];
     
    • 使用 WHERE 子句删除指定的记录。
    DELETE FROM t_mysql_departments
    WHERE department_name = ‘Finance’;
     
    • 如果省略 WHERE 子句,则表中的全部数据将被删除
    DELETE FROM copy_emp;

    一次删除多表的数据
    案例:删除张无忌的女朋友的信息
    
    DELETE b
    FROM t_mysql_beauty b
    INNER JOIN t_mysql_boys bo ON b.`boyfriend_id` = bo.`id`
    WHERE bo.`boyName`='张无忌';
    
    
    案例:删除黄晓明的信息以及他女朋友的信息
    DELETE b,bo
    FROM t_mysql_beauty b
    INNER JOIN t_mysql_boys bo ON b.`boyfriend_id`=bo.`id`
    WHERE bo.`boyName`='黄晓明';
    

    delete pk truncate

    1.delete 可以加where 条件,truncate不能加

    2.truncate删除,效率高一丢丢

    3.假如要删除的表中有自增长列,
    如果用delete删除后,再插入数据,自增长列的值从断点开始,
    而truncate删除后,再插入数据,自增长列的值从1开始。

    4.truncate删除没有返回值,delete删除有返回值

    5.truncate删除不能回滚,delete删除可以回滚.

    SELECT * FROM t_mysql_boys;
     
    DELETE FROM t_mysql_boys;
    TRUNCATE TABLE t_mysql_boys;
    INSERT INTO t_mysql_boys (boyname,usercp)
    VALUES(‘张飞’,100),(‘刘备’,100),(‘关云长’,100);

    视图

    含义: 虚拟表,和普通表一样使用
    mysql5.1版本出现的新特性,是通过表动态生成的数据
     
    比如:舞蹈班和普通班级的对比

    创建语法的关键字 是否实际占用物理空间 使用
    视图查 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改
    表查 create table 保存了数据 增删改查
    案例:查询姓张的学生名和专业名
    SELECT stuname,majorname
    FROM stuinfo s
    INNER JOIN major m ON s.`majorid`= m.`id`
    WHERE s.`stuname` LIKE '张%';
    
    CREATE VIEW v1
    AS
    SELECT stuname,majorname
    FROM stuinfo s
    INNER JOIN major m ON s.`majorid`= m.`id`;
    
    SELECT * FROM v1 WHERE stuname LIKE '张%';
    

    一、创建视图

    语法:

    create view 视图名
    as
    查询语句;
     
    USE myemployees;

    1.查询姓名中包含a字符的员工名、部门名和工种信息
    ①创建
    CREATE VIEW myv1
    AS
    
    SELECT last_name,department_name,job_title
    FROM employees e
    JOIN departments d ON e.department_id  = d.department_id
    JOIN jobs j ON j.job_id  = e.job_id;
    
    
    ②使用
    SELECT * FROM myv1 WHERE last_name LIKE '%a%';
    
    
    
    2.查询各部门的平均工资级别
    
    ①创建视图查看每个部门的平均工资
    CREATE VIEW myv2
    AS
    SELECT AVG(salary) ag,department_id
    FROM employees
    GROUP BY department_id;
    
    ②使用
    SELECT myv2.`ag`,g.grade_level
    FROM myv2
    JOIN job_grades g
    ON myv2.`ag` BETWEEN g.`lowest_sal` AND g.`highest_sal`;
    
    
    
    3.查询平均工资最低的部门信息
    
    SELECT * FROM myv2 ORDER BY ag LIMIT 1;
    
    
    
    4.查询平均工资最低的部门名和工资
    
    CREATE VIEW myv3
    AS
    SELECT * FROM myv2 ORDER BY ag LIMIT 1;
    
    
    SELECT d.*,m.ag
    FROM myv3 m
    JOIN departments d
    ON m.`department_id`=d.`department_id`;
    

    二、视图的修改

    方式一:

    create or replace view 视图名
    as
    查询语句;

    SELECT * FROM myv3 
    
    CREATE OR REPLACE VIEW myv3
    AS
    SELECT AVG(salary),job_id
    FROM employees
    GROUP BY job_id;
    

    方式二:

    语法:
    alter view 视图名
    as
    查询语句;

    ALTER VIEW myv3
    AS
    SELECT * FROM employees;
    

    三、删除视图

    语法:

    drop view 视图名,视图名,…;

    DROP VIEW emp_v1,emp_v2,myv3;
    

    四、查看视图

    DESC myv3;
    
    SHOW CREATE VIEW myv3;
    

    五、视图的更新

    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email,salary*12*(1+IFNULL(commission_pct,0)) "annual salary"
    FROM employees;
    
    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email
    FROM employees;
    
    
    SELECT * FROM myv1;
    SELECT * FROM employees;
    
    1.插入
    INSERT INTO myv1 VALUES('张飞','zf@qq.com');
    
    2.修改
    UPDATE myv1 SET last_name = '张无忌' WHERE last_name='张飞';
    
    3.删除
    DELETE FROM myv1 WHERE last_name = '张无忌';
    
    具备以下特点的视图不允许更新
    ①包含以下关键字的sql语句:分组函数、distinct、group  by、having、union或者union all
    
    CREATE OR REPLACE VIEW myv1
    AS
    SELECT MAX(salary) m,department_id
    FROM employees
    GROUP BY department_id;
    
    SELECT * FROM myv1;
    
    更新
    UPDATE myv1 SET m=9000 WHERE department_id=10;
    
    ②常量视图
    CREATE OR REPLACE VIEW myv2
    AS
    
    SELECT 'john' NAME;
    
    SELECT * FROM myv2;
    
    更新
    UPDATE myv2 SET NAME='lucy';
    
    
    
    
    
    ③Select中包含子查询
    
    CREATE OR REPLACE VIEW myv3
    AS
    
    SELECT department_id,(SELECT MAX(salary) FROM employees) 最高工资
    FROM departments;
    
    更新
    SELECT * FROM myv3;
    UPDATE myv3 SET 最高工资=100000;
    
    
    ④join
    CREATE OR REPLACE VIEW myv4
    AS
    
    SELECT last_name,department_name
    FROM employees e
    JOIN departments d
    ON e.department_id  = d.department_id;
    
    更新
    
    SELECT * FROM myv4;
    UPDATE myv4 SET last_name  = '张飞' WHERE last_name='Whalen';
    INSERT INTO myv4 VALUES('陈真','xxxx');
    
    
    
    ⑤from一个不能更新的视图
    CREATE OR REPLACE VIEW myv5
    AS
    
    SELECT * FROM myv3;
    
    更新
    
    SELECT * FROM myv5;
    
    UPDATE myv5 SET 最高工资=10000 WHERE department_id=60;
    
    
    
    ⑥where子句的子查询引用了from子句中的表
    
    CREATE OR REPLACE VIEW myv6
    AS
    
    SELECT last_name,email,salary
    FROM employees
    WHERE employee_id IN(
    	SELECT  manager_id
    	FROM employees
    	WHERE manager_id IS NOT NULL
    );
    
    更新
    SELECT * FROM myv6;
    UPDATE myv6 SET salary=10000 WHERE last_name = 'k_ing';
    
    展开全文
  • DML(数据管理语言)与视图DML(数据管理语言)1、简介2、插入数据3、更新数据4、删除数据视图一、创建视图二、视图的修改三、删除视图四、查看视图五、视图的更新具备以下特点的视图不允许更新总结 DML(数据管理语言)...
  • DQL数据查询语言DML(数据管理语言)插入数据修改数据删除数据视图创建视图视图的修改删除视图查看视图视图的更新 DML(数据管理语言) DML(Data Manipulation Language – 数据操纵语言) 可以下列条件下执行: 向...
  • 经典SQL语句大全

    热门讨论 2014-12-20 12:00:30
    因为这样可以避免 top字段如果是逻辑索引,查询结果后实际表中不一致(逻辑索引中数据有可能和数据表中不一致,而查询时如果处在索引则首先查询索引) 14、说明:前10条记录 select top 10 * form table...
  • 因为这样可以避免 top字段如果是逻辑索引,查询结果后实际表中不一致(逻辑索引中数据有可能和数据表中不一致,而查询时如果处在索引则首先查询索引) 14、说明:前10条记录 select top 10 * form ...
  • oracle数据库经典题目

    2011-02-17 15:05:20
    22. 如果想查看视图中哪些字段是可以更新,应当查询哪一个数据字典视图?( D ) A. DBA_VIEWS B. DBA_OBJECTS C. DBA_CLU_COLUMNS D. DBA_UPDATABLE_COLUMNS 23. 在下列各选项中,关于序列描述哪一项是不正确...
  • 说明: 使用字节或码点语义来指定新列的创建, 如 char, varchar2, clob, nchar, nvarchar2, nclob 列。各种字符集对字符都有各自的定义。在客户机和服务器上使用同一字符集时, 应以该字符集所定义的字符来衡量字符串...
  • oracle实验报告

    2019-01-10 19:29:58
    (4)SELECT语句WHERE条件可以包含PL/SQL块中定义变量及表达式,但变量名不要同数据库表列名相同。 (5)在未使用显式游标情况下,使用SELECT语句必须保证只有一条记录返回,否则会产生异常情况。 [例3-1] ...
  • Visual C++ 2008入门经典--详细书签版

    热门讨论 2013-02-02 16:07:15
    本书延续了ivor horton讲解编程语言独特方法,从中读者可以学习visual c++ 2008基础知识,了解如何使用mfc进行本地iso/ansi c++ windows应用程序开发以及如何使用windows forms进行c++/cli windows应用程序开发...
  • 本书延续了ivor horton讲解编程语言独特方法,从中读者可以学习visual c++ 2008基础知识,了解如何使用mfc进行本地iso/ansi c++ windows应用程序开发以及如何使用windows forms进行c++/cli windows应用程序开发...
  • Visual C++ 2005 入门经典 详细书签版

    热门讨论 2013-02-02 16:39:43
    本书延续了Ivor Horton讲解编程语言独特方法,从中读者可以学习Visual C++ 2005基础知识,并全面掌握在MFC和Windows Forms中访问数据源技术。此外,本书各章后面习题将有助于读者温故而知新,并尽快成为C++...
  • 本书延续了Ivor Horton讲解编程语言独特方法,从中读者可以学习Visual C++ 2005基础知识,并全面掌握在MFC和Windows Forms中访问数据源技术。此外,本书各章后面习题将有助于读者温故而知新,并尽快成为C++...
  •  ·指导读者用c++和c++/cli设计和创建大量windows应用程序  ·为帮助读者掌握编程技巧,提供了大量可运行示例和练习 作译者  Ivor Horton是撰著Java、C和C++编程语言图书杰出作家之一。大家一致认为,他...
  •  ·指导读者用c++和c++/cli设计和创建大量windows应用程序  ·为帮助读者掌握编程技巧,提供了大量可运行示例和练习 作译者  Ivor Horton是撰著Java、C和C++编程语言图书杰出作家之一。大家一致认为,...
  • 会计理论考试题

    2012-03-07 21:04:40
    A、不可恢复 B、可以在“回收站”中找到 C、可以恢复 D、可以在“我公文包”中找到 15.下列软件中不属于系统软件是 ___D__ 。 A、Windows B、Visual FoxPro C、UCDOS D、WPS97 16.应用软件在计算机普及中起重要...
  • Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式压缩文件,可以像Winrar软件一样查看压缩文件内部文件及文件夹,源码...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式压缩文件,可以像Winrar软件一样查看压缩文件内部文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

空空如也

空空如也

1 2
收藏数 21
精华内容 8
关键字:

下列可以查看视图的创建语句是