emp

17.MySQL中的IS NULL 和 IS NOT NULL

痞子三分冷 提交于 2020-04-08 09:41:23
1.准备 1 CREATE DATABASE mahaiwuji; 2 USE mahaiwuji; 3 4 CREATE TABLE emp 5 ( 6 empno INT PRIMARY KEY, 7 ename VARCHAR(10), 8 sal INT 9 ) ENGINE = INNODB DEFAULT CHARSET = utf8; 10 11 INSERT INTO emp VALUES (1,'smith',2800); 12 INSERT INTO emp VALUES (2,'allen',NULL); 13 INSERT INTO emp VALUES (3,'ward',NULL); 14 INSERT INTO emp VALUES (4,'jones',1300); 15 INSERT INTO emp VALUES (5,'martin',NULL); 16 INSERT INTO emp VALUES (6,'blake',3000); 2.IS NULL 比较一个数据是否是NULL 1 -- 查找sal为NULL的数据 2 SELECT * FROM emp WHERE sal <=> NULL; 3 -- 等价于 4 SELECT * FROM emp WHERE sal IS NULL; 3.IS NOT NULL

牛客网数据库SQL实战剖析(1-10)

邮差的信 提交于 2020-04-07 22:36:52
1. 查找最晚入职员工的所有信息 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`)); 解题思路:根据入职时间倒序排序 order by ... DESC ,然后再取一条记录,就是最晚入职的员工。 select * from employees order by hire_date DESC limit 1; 这样做有一个问题, hire_date 是 date 类型,很有可能多条记录中是同一个时间入职的,所以说时间类型还是用时间戳比较精切。 针对这道题目可以使用 MAX() 函数,然后用一个子查询。 select * from employees where hire_date = (select MAX(hire_date) FROM employees); MAX() 先查询出最晚入职的时间,然后再查询出在最晚时间入职的所有员工。 2.

16.MySQL中的IN 和 NOT IN

二次信任 提交于 2020-04-07 20:37:01
IN() 只要比较的字段或数据在给定的集合内,那么比较结果就为真, NOT IN() 正好与IN()的功能相反。 1.准备 1 CREATE DATABASE mahaiwuji; 2 USE mahaiwuji; 3 CREATE TABLE emp 4 ( 5 empno INT PRIMARY KEY, 6 ename VARCHAR(10), 7 sal INT 8 ); 9 INSERT INTO emp VALUES (1,'smith',2800); 10 INSERT INTO emp VALUES (2,'allen',1500); 11 INSERT INTO emp VALUES (3,'ward',3500); 12 INSERT INTO emp VALUES (4,'jones',5000); 13 INSERT INTO emp VALUES (5,'martin',1600); 14 INSERT INTO emp VALUES (6,'blake',3000); 2.IN 查找sal为1500或3000或5000的信息 1 SELECT * FROM emp WHERE sal=1500 OR sal=3000 OR sal=5000; 2 -- 等价于 3 SELECT * FROM emp WHERE sal IN (1500,3000

Oracle11G基本操作

牧云@^-^@ 提交于 2020-04-07 02:38:08
[1].创建表空间 CREATE TABLESPACE SYPRO_201310 DATAFILE 'F:\ORACLE_11G\oradata\orcl\SYPRO_201310.DBF' SIZE 10M AUTOEXTEND ON 在指定的F盘下创建一个名SYPRO_201310.DBF的文件初始空间是10M当空间不足时自动增加 [2].删除表空间同时删除表空间所有硬盘上的物理文件 DROP TABLESPACE SYPRO_201310 INCLUDING CONTENTS AND DATAFILES [3].查看当前用户所有表空间 SELECT * FROM DBA_TABLESPACES [4].创建用户liutao 密码 liutao 默认表空间 SYPRO_201310 临时表空间 TEMP CREATE USER liutao IDENTIFIED BY liutao DEFAULT TABLESPACE SYPRO_201310 TEMPORARY TABLESPACE TEMP [5].用户授权-连接数据库的权限 GRANT CONNECT TO LIUTAO WITH ADMIN OPTION [6].用户授权-数据库管理员DBA角色 GRANT DBA TO LIUTAO WITH ADMIN OPTION -- 创建表空间 CREATE

15.MySQL中的BETWEEN(在某个范围)

北城以北 提交于 2020-04-06 23:02:17
1.准备 1 CREATE DATABASE mahaiwuji; 2 USE mahaiwuji; 3 ​ 4 CREATE TABLE emp 5 ( 6 empno INT PRIMARY KEY, 7 ename VARCHAR(10), 8 sal INT 9 ) ENGINE = INNODB DEFAULT CHARSET = utf8; 10 ​ 11 INSERT INTO emp VALUES (1,'smith',2800); 12 INSERT INTO emp VALUES (2,'allen',1500); 13 INSERT INTO emp VALUES (3,'ward',3500); 14 INSERT INTO emp VALUES (4,'jones',1300); 15 INSERT INTO emp VALUES (5,'martin',1600); 16 INSERT INTO emp VALUES (6,'blake',3000); 2.BETWEEN…AND… 比较一个数据是否在指定的闭区间范围内 1 -- 查询sal在1500和3000之间的数据(包括1500和3000) 2 SELECT * FROM emp WHERE sal >= 1500 AND sal <= 3000; 3 -- 等价于 4 SELECT * FROM

pl/sql

老子叫甜甜 提交于 2020-04-06 10:52:33
一、pl/sql编程语言 --复合索引触发规则,复合索引第一列位有限检索列 --必须包含优先检索列中的值,才会触发 1.声明方法 declare i number(10) :=10; s varchar2(10) :='小红'; ena emp.ename%type; --引用型的变量 emprow emp%rowtype;--记录型变量 begin dbms_output.put_line(i); dbms_output.put_line(s); select ename into ena from emp where empno=7788; dbms_output.put_line(ena); select * into emprow from emp where empno=7788; dbms_output.put_line(emprow.ename || '工作为' || emprow.job); end; 2.pl/sql中的if判断 declare i number(3) :=&i; -- &i输入一个数 begin if i<18 then dbms_output.put_line('未成年'); elsif i<40 then dbms_output.put_line('成年人'); else dbms_output.put_line('老年人'); end if

plsql常用函数汇总

霸气de小男生 提交于 2020-04-06 06:30:17
oracle教程:PLSQL常用方法汇总 2010-01-07 在SQLPLUS下,实现中-英字符集转换 alter session set nls_language='AMERICAN'; alter session set nls_language='SIMPLIFIED CHINESE'; 主要知识点: 一、有关表的操作 建表 create table test as select * from dept; --从已知表复制数据和结构 create table test as select * from dept where 1=2; --从已知表复制结构但不包括数据 2)插入数据: insert into test select * from dept; 二、运算符 算术运算符:+ - * / 可以在select 语句中使用 连接运算符:|| select deptno|| dname from dept; 比较运算符:> >= = != < <= like between is null in 逻辑运算符:not and or 集合运算符: intersect ,union, union all, minus 要求:对应集合的列数和数据类型相同 查询中不能包含long 列 列的标签是第一个集合的标签 使用order by时,必须使用位置序号,不能使用列名 例

oracle中表空间管理,游标

≡放荡痞女 提交于 2020-04-05 19:58:59
一、表空间 oracle使用表空间来管理数据库的对象(表,序列,过程,函数,游标等)。 oracle的逻辑结构(看不见的):oracle数据库 =》 表空间 =》 表 序列 过程等对象。 oracle的物理结构(能看见):oracle 数据库 =》oracle的数据文件=》数据段=》数据区间=》数据块 。 oracle的数据文件分三种: 1、控制文件,以ctl结尾,控制文件中存储oracle运行所需要的字典,用户等对象。 2、日志文件,以log存储oracle操作产生的日志文件,还包含oracle的重做日志。 3、数据文件,存储用户或者系统创建的对象 表空间也是对象,需要存储到数据文件中,所以创建表空间的时候需要指定使用哪个数据文件。 创建表空间的语法: create tablespace 表空间名称 datafile '存储的位置\文件名.dbf' 指定表空间使用的数据文件,如果文件不存在会自动创建 size 50m 表空间的初始大小 autoextend on next 30m 表空间如果空间不够用了,下次自动扩展的大小 maxsize 300m指定表空间的最大存储空间; 例子: 1 -- 创建表空间 2 create tablespace tab_test01 3 --指定使用的数据文件 4 datafile 'D:\test_tab\test01.dbf' 5 -

慎用create table as select,不会copy约束,主键什么东东都不会复制

自作多情 提交于 2020-04-05 18:34:04
1、再做一些数据迁移时候,很多人会使用create table as select * from table where id=-1的方式来年建立一摸一样的表,但是这样做有个很大的弊端,不能将原表中的default value也一同迁移过来。 2、 Using the CREATE TABLE ... AS SELECT ... command: This command will copy acrooss to the new table all the data,but the constraints triggers ,and so on will not be transferred to the new table. 那些都是not null约束,其他的约束和trigger是带不过来了,严格说来not null也是约束的一种,只不过教材上把它排除在外了吧。 慎用create table as select,一定要注意默认值的问题 博客分类: Oracle oracle create talbe as select 数据库迁移 再做一些数据迁移时候,很多人会使用create table as select * from table where id=-1的方式来年建立一摸一样的表,但是这样做有个很大的弊端,不能将原表中的default value也一同迁移过来

mysql(1)

心不动则不痛 提交于 2020-04-05 16:45:32
概念: 数据库(DataBase,DB): 指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的 数据集合 。(文件系统) 数据库:存储、维护和管理数据的集合。 登陆: mysq -u root -p 123 sql分类: DDL**(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等; CREATE、 ALTER、DROP create tables mydb1; show tables; alter tables mydb1 character set utf8; drop tables mydb1; use mydb1; create table 表名( 字段1 字段类型, 字段2 字段类型, ... 字段n 字段类型 ); 常用数据类型: int:整型 double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99; char:固定长度字符串类型; char(10) 'abc ' varchar:可变长度字符串类型;varchar(10) 'abc' text:字符串类型; blob:字节类型; date:日期类型,格式为:yyyy-MM-dd; time:时间类型,格式为:hh:mm:ss timestamp:时间戳类型 yyyy-MM-dd hh:mm