ORACLE / MYSQL----SQL语句大全

ORACLE

– 创建用户

create user 用户名 identified by 密码;

– 赋值权利

    grant connect/resource to 【用户名】;

– 回收权利

    revoke connect/resource from 【用户名】;

– 删除用户

    drop user 【用户名】 cascade;

– ALTER语句总结

    1:删除列
    
    ALTER TABLE 【表名字】 DROP 【列名称】
    
    2:增加列
    
    ALTER TABLE 【表名字】 ADD 【列名称】 【类型】
    
    3:修改列的类型信息
    
    ALTER TABLE 【表名字】 CHANGE 【列名称】 BIGINT 
    
    4:重命名列
    
    ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT 
    
    5:重命名表
    
    ALTER TABLE 【表名字】 RENAME 【表新名字】
    
    6:删除表中主键
    
    Alter TABLE 【表名字】 drop primary key
    
    7:添加主键
    
    ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)
    
    8:添加索引
    
    ALTER TABLE sj_resource_charges add index INDEX_NAME (name);
    
    9: 添加唯一限制条件索引
    
    ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);
    
    10: 删除索引
    
    alter table tablename drop index emp_name;

– 创建表

    create table 【表名】(
    id  int,
    name varchar(20),
    money float
    );

– 查询 (*表示所有的列)

    select * from 【表名】;

– 添加

    insert into 【表名】(id,name,money) values(1,'jack',2000.2);
    
    insert into 【表名】(id,name,money) values(2,'roce',1000);

– 修改

    update 【表名】 set id=2, name='rose', money=1000 where id = 3;
    
    update 【表名】 set name='jack' where money  = 1000;

– 删除

    delete from 【表名】 where id = 【id】;
    
    delete from 【表名】;
    

– 手动提交事务

    commit;

– 主键自增

    create table mytable
    (
        id int primary key,   -- 主键,唯一,不能重复,必填,不能不填写
    	name varchar(20),
    	money float
    );
    
    -- 使用序列让主键自增
    -- 创建序列
    create sequence myseq;  --从0开始 每次加1
    
    --使用序列
    insert into mytable(id,name,money) values(myseq.nextval,'jack',10);

– 外键约束

FOREIGN KEY  (ID) REFERENCES 表名 (ID)

    /**
    外键:
    1、需要先创建主表,再创建子表
    2、删除表:先删除子表,再删除主表
    数据处理:
    1、先添加主表数据,再添加子表数据
    2、先删除子表数据,再删除主表数据
    
    **/
    DROP TABLE STUDENT;
    DROP TABLE TEACHER;
    -- 子表
    CREATE TABLE STUDENT
    (
           SID INT PRIMARY KEY,
           SNAME VARCHAR(20) NOT NULL,
           SEX VARCHAR(20) DEFAULT '男' CHECK(SEX='男' or SEX='女')   NOT NULL,
           TID INT ,
           FOREIGN KEY(TID) REFERENCES TEACHER(TID)
    );
    -- 主表
    CREATE TABLE TEACHER
    (
           TID INT PRIMARY KEY,
           TNAME VARCHAR(20) NOT NULL,
           MONEY NUMBER(10,2)
    );
    --序列
    CREATE SEQUENCE MYSEQ2;
    --录入学生数据
    INSERT INTO STUDENT(SID,SNAME,TID) VALUES(MYSEQ2.NEXTVAL,'A',4);
    INSERT INTO STUDENT(SID,SNAME,TID) VALUES(MYSEQ2.NEXTVAL,'S1',4);
    INSERT INTO STUDENT(SID,SNAME,TID) VALUES(MYSEQ2.NEXTVAL,'S2',4);
    INSERT INTO STUDENT(SID,SNAME,TID) VALUES(MYSEQ2.NEXTVAL,'S3',4);
    
    --录入老师数据
    INSERT INTO TEACHER(TID,TNAME,MONEY) VALUES(MYSEQ2.NEXTVAL,'T1',1000);
    SELECT * FROM STUDENT;
    SELECT * FROM TEACHER;
    
    -- 多对多
    CREATE TABLE MTM_TEACHER
    (
           TID INT PRIMARY KEY,
           TNAME VARCHAR(20)
    );
    CREATE TABLE MTM_STUDENT
    (      
           SID INT PRIMARY KEY,
           SNAME VARCHAR(20)
    );
    DROP TABLE T_S;
    -- 子表
    CREATE TABLE T_S
    (
           TID INT,
           SID INT,
           --联合主键
           PRIMARY KEY(TID,SID),
           FOREIGN KEY(TID) REFERENCES MTM_TEACHER(TID),
           FOREIGN KEY(SID) REFERENCES MTM_STUDENT(SID)
    );
    
    -- 先录入主表数据
    INSERT INTO MTM_STUDENT(SID , SNAME) VALUES(MYSEQ2.NEXTVAL,'亚索');
    INSERT INTO MTM_STUDENT(SID , SNAME) VALUES(MYSEQ2.NEXTVAL,'塔姆');
    INSERT INTO MTM_STUDENT(SID , SNAME) VALUES(MYSEQ2.NEXTVAL,'娑娜');
    
    INSERT INTO MTM_TEACHER(TID ,TNAME) VALUES(MYSEQ2.NEXTVAL,'后羿');
    INSERT INTO MTM_TEACHER(TID ,TNAME) VALUES(MYSEQ2.NEXTVAL,'亚瑟');
    INSERT INTO MTM_TEACHER(TID ,TNAME) VALUES(MYSEQ2.NEXTVAL,'安其拉');
    
    SELECT * FROM MTM_STUDENT;
    SELECT * FROM MTM_TEACHER;
    
    INSERT INTO T_S(TID,SID) VALUES(17,13);
    INSERT INTO T_S(TID,SID) VALUES(17,14);
    INSERT INTO T_S(TID,SID) VALUES(17,15);
    INSERT INTO T_S(TID,SID) VALUES(18,13);
    INSERT INTO T_S(TID,SID) VALUES(18,14);
    --外键约束起到作用了
    INSERT INTO T_S(TID,SID) VALUES(20,14);
    
    SELECT * FROM T_S;
    
    SELECT * FROM MTM_TEACHER INNER JOIN T_S
    ON T_S.TID = MTM_TEACHER.TID
    INNER JOIN MTM_STUDENT
    ON T_S.SID = MTM_STUDENT.SID

– 虚拟表,仅仅是为了满足ORACLE的语法要求

    SELECT 'wangyang' FROM DUAL;

–拼接字符

    SELECT CONCAT('WANG','YANG') 拼接字符 FROM DUAL;
    
    SELECT CONCAT(ENAME,JOB) 拼接 FROM EMP;
    
    SELECT * FROM EMP;

– 字符长度

    SELECT LENGTH('WANGYANG') FROM DUAL;
    
    SELECT ENAME,LENGTH(ENAME) FROM EMP;

– REPLACE 替换

    SELECT REPLACE('WANGYANG','A','Z') FROM DUAL;
    
    SELECT ENAME, REPLACE(ENAME,'A','*') FROM EMP;

– 大小写

    SELECT UPPER('wangyang') FROM DUAL;
    
    SELECT LOWER('WANGYANG') FROM DUAL;

– 首字母大写

    SELECT INITCAP('wangyang,renxiaodan,zhanglinjia') FROM DUAL;
    
    SELECT INITCAP('wangyang renxiaodan;zhanglinjia') FROM DUAL;
    
    SELECT INITCAP('1,一') FROM DUAL;

– 基础查询语句

    SELECT * FROM 【表名】;

– 查看特定的列

    SELECT EMPNO , ENAME, JOB , MGR , HIREDATE, SAL , COMM ,DEPTNO  FROM EMP;

– 给表起别名,给列起别名

    SELECT E.EMPNO AS 员工编号,
          E.ENAME AS 员工姓名,
          E.JOB 职位,
          E.MGR 上级领导,
          E.HIREDATE 入职时间,
          E
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值