zoukankan      html  css  js  c++  java
  • MySQL 必知必会学习笔记(常用命令二)

    CREATE TABLE students(student_id INT UNSIGNED, name VARCHAR(30), sex CHAR(1), birth DATE, PRIMARY KEY(student_id));

    INSERT INTO students(student_id, name, sex, birth) VALUES(41048101, 'Lucy Green', '1', '1990-02-14');

    SELECT name FROM students WHERE student_id = 41048101;

    ALTER TABLE students MODIFY student_id INT(10) AUTO_INCREAMENT;
    -- 创建数据库

    CREATE DATABASE test_db;

    SHOW CREATE DATABASE test_dbG;

    DROP DATABASE test_db;

    CREATE DATABASE test_db;

    USE test_db;

    CREATE TABLE tb_empl(id INT(1), name VARCHAR(25), deptID INT(11), salary FLOAT);

    CREATE TABLE tb_empl2(id INT(1) PRIMARY KEY, name VARCHAR(25), deptID INT(11), salary FLOAT);

    CREATE TABLE tb_empl3(id INT(1), name VARCHAR(25), deptID INT(11), salary FLOAT, PRIMARY KEY(id));

    CREATE TABLE tb_empl4(name VARCHAR(25), deptID INT(11), salary FLOAT, PRIMARY KEY(name, deptID));

    CREATE TABLE tb_dept1(id INT(11) PRIMARY KEY, name VARCHAR(22) NOT NULL, location VARCHAR(50));

    CREATE TABLE tb_emp5(id INT(11) PRIMARY KEY, name VARCHAR(25), deptID INT(11), salary FLOAT,
        CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptID) REFERENCES tb_dept1(id));

    CREATE TABLE tb_emp6(id INT(11) PRIMARY KEY, name VARCHAR(25) NOT NULL, deptID INT(11), salary FLOAT,
        CONSTRAINT fk_emp_dept2 FOREIGN KEY(deptID) REFERENCES tb_dept1(id));

    CREATE TABLE tb_dept2(id INT(11) PRIMARY KEY,name VARCHAR(22) UNIQUE,location VARCHAR(50));

    CREATE TABLE tb_dept3(id INT(11) PRIMARY KEY, name VARCHAR(22), location VARCHAR(50), CONSTRAINT STH UNIQUE(name));

    CREATE TABLE tb_emp7(id INT(11) PRIMARY KEY, name VARCHAR(25) NOT NULL, deptID INT(11) DEFAULT 1111, salary FLOAT,
        CONSTRAINT fk_emp_dept3 FOREIGN KEY(deptID) REFERENCES tb_dept1(id));

    CREATE TABLE tb_emp8(id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25) NOT NULL, deptID INT(11), salary FLOAT,
        CONSTRAINT fk_emp_dept5 FOREIGN KEY(deptID) REFERENCES tb_dept1(id));

    INSERT INTO tb_emp8(name,salary) VALUES('Lucy', 20000),('Lilei', 25000),('Hanmeimei', 23000);

    DESC tb_emp8;

    SHOW CREATE TABLE tb_emp8;

    ALTER TABLE tb_dept3 RENAME TO tb_deptment3;

    ALTER TABLE tb_dept1 MODIFY name VARCHAR(30);

    ALTER TABLE tb_dept1 MODIFY location VARCHAR(24);

    ALTER TABLE tb_dept1 CHANGE location loc INT(11);

    ALTER TABLE tb_dept1 MODIFY  loc VARCHAR(11);

    ALTER TABLE tb_dept1 ADD managerId INT(10);

    ALTER TABLE tb_dept1 ADD column1 VARCHAR(12) NOT NULL;

    ALTER TABLE tb_dept1 ADD colunm2 INT(11) FIRST;

    ALTER TABLE tb_dept1 ADD column3 INT(11) AFTER name;

    ALTER TABLE tb_dept1 DROP colunm2;

    ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) FIRST;

    ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER loc;

    SHOW CREATE TABLE tb_deptment3;

    ALTER TABLE tb_deptment3 ENGINE=MyISAM;

    CREATE TABLE tb_emp9(id Int(11) PRIMARY KEY, name VARCHAR(25), deptId INT(11), salary FLOAT,
        CONSTRAINT fk_emp_dept FOREIGN KEY(deptId) REFERENCES tb_dept1(id));

    ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;

    DROP TABLE IF EXISTS tb_dept2;

    CREATE TABLE tb_dept2(id INT(11) PRIMARY KEY, name VARCHAR(22), location VARCHAR(50));

    CREATE TABLE tb_emp(id INT(11) PRIMARY KEY, name VARCHAR(25), deptId INT(11), salary FLOAT,
        CONSTRAINT fk_emp_dept FOREIGN KEY(deptId) REFERENCES tb_dept2(id));

    ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept;

    DROP TABLE tb_dept2;

    CREATE DATABASE company;

    SHOW CREATE DATABASE company;

    USE company;

    CREATE TABLE offices(officeCode INT(10) NOT NULL UNIQUE,
        city INT(11) NOT NULL, address VARCHAR(50), country VARCHAR(50), postalCode VARCHAR(25) UNIQUE, PRIMARY KEY(officeCode));

    CREATE TABLE offices_new(officeCode INT(10) NOT NULL UNIQUE,
        city INT(11) NOT NULL, address VARCHAR(50), country VARCHAR(50) NOT NULL, postalCode VARCHAR(25) UNIQUE, PRIMARY KEY(officeCode));

    #ALTER TABLE offices MODIFY officeCode INT(10) NOT NULL UNIQUE PRIMARY KEY(officeCode));

    #ALTER TABLE offices MODIFY officeCode PRIMARY KEY(officeCode));

    ALTER TABLE offices ADD PRIMARY KEY(officeCode);

    ALTER TABLE offices MODIFY country VARCHAR(50) NOT NULL;

    CREATE TABLE employees(employeeNumber INT(11) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,
        lastName VARCHAR(50) NOT NULL,firstName VARCHAR(50) NOT NULL,mobile VARCHAR(25) UNIQUE,
        officeCode INT(10) NOT NULL, jobTitle VARCHAR(50) NOT NULL, birth DATETIME NOT NULL,
        note VARCHAR(255), sex VARCHAR(5), CONSTRAINT fk_emp_ofc FOREIGN KEY(officeCode) REFERENCES offices(officeCode) );

    ALTER TABLE employees MODIFY mobile VARCHAR(25) AFTER officeCode;

    ALTER TABLE employees CHANGE birth employee_birth DATETIME;

    ALTER TABLE employees MODIFY sex CHAR(1) NOT NULL;

    ALTER TABLE employees DROP note;

    ALTER TABLE employees ADD favoriate_activity VARCHAR(100);

    DROP TABLE offices;

    ALTER TABLE employees DROP FOREIGN KEY fk_emp_ofc;

    ALTER TABLE employees ENGINE=MyISAM;

    ALTER TABLE employees RENAME TO employees_info;

    SHOW DATABASES;

    CREATE DATABASE IF NOT EXISTS Market;

    USE Market;

    CREATE TABLE customers(c_num INT(11) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,
        c_name VARCHAR(50), c_contact VARCHAR(50), c_city VARCHAR(50), c_birth DATETIME NOT NULL );

    ALTER TABLE customers MODIFY c_contact VARCHAR(50) AFTER c_birth;

    ALTER TABLE customers MODIFY c_name VARCHAR(70);

    ALTER TABLE customers CHANGE c_contact c_phone VARCHAR(50);

    ALTER TABLE customers ADD c_gender CHAR(1);

    ALTER TABLE customers RENAME TO customers_info;

    ALTER TABLE customers_info DROP c_city;

    ALTER TABLE customers_info ENGINE=MyISAM;

    CREATE TABLE orders(o_num INT(11) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT, o_date DATE, c_id VARCHAR(50),CONSTRAINT fk_or_cu FOREIGN KEY(c_id) REFERENCES customers_info(c_num));

    CONSTRAINT fk_emp_ofc FOREIGN KEY(officeCode) REFERENCES offices(officeCode)

    CREATE TABLE tmp1(x TINYINT, y SMALLINT, z MEDIUMINT, m INT, n BIGINT);

    CREATE TABLE tmp1(x TINYINT, y SMALLINT, z MEDIUMINT, m INT, n BIGINT);

    CREATE TABLE worker(ID INT AUTO_INCREAMENT NOT NULL PRIMARY KEY,Name VARCHAR(30));

    INSERT INTO worker VALUES(NULL, 'jimy');

    INSERT INTO worker VALUES(NULL, 'Tom');

    INSERT INTO worker VALUES(NULL, 'Kevin'),(NULL, 'Michal'), (NULL,'Nick');

    CREATE TABLE fruits(f_id CHAR(10) NOT NULL, s_id INT NOT NULL, f_name CHAR(255) NOT NULL, f_price DECIMAL(8,2) NOT NULL, PRIMARY KEY(f_id));

    INSERT INTO fruits(f_id, s_id, f_name, f_price) VALUES('a1',101,'apple', 5.2),
    ('b1',101,'blackberry', 10.2),
    ('bs1',102,'orange', 11.2),
    ('bs2',105,'melon', 8.2),
    ('t1',102,'banana', 10.3),
    ('t2',102,'grape', 5.3),
    ('o2',103,'coconut', 9.2),
    ('c0',101,'cherry', 3.2),
    ('a2',103,'apricot', 2.2),
    ('l2',104,'lemon', 6.4),
    ('b2',104,'berry', 7.6),
    ('m1',106,'mango', 15.6),
    ('m2',105,'xbabay', 2.6),
    ('t4',107,'xbababa', 3.6),
    ('m3',105,'xxtt', 11.6),
    ('b5',107,'xxxx', 3.6);

    CREATE TABLE test.t(s1 INT, PRIMARY KEY(s1));


    DEMIMITER //

    CREATE PROCEDURE handledemo()
    BEGIN
        DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
        SET @x = 1;
        INSERT INTO test.t VALUES(1);
        SET @x = 2;
        INSERT INTO test.t VALUES(1);
        SET @x = 3;
    END;
    //
    DELIMITER ;

    IF val IS NULL
        THEN SELECT 'val' IS NULL;
        ELSE SELECT 'val' IS NOT NULL;
    END IF;

    CASE val
        WHEN 1 THEN SELECT 'val is 1';
        WHEN 2 THEN SELECT 'val is 2';
        ELSE SELECT 'val is not 1 or 2';
    END CASE;

    CASE
        WHEN val IS NULL THEN SELECT 'val is null';
        WHEN val < 0 THEN SELECT 'val is less than 0';
        WHEN val > 0 THEN SELECT 'val is greater than 0';
        ELSE SELECT 'val is 0';
    END CASE

    DELCARE id INT DEFAULT 0;
    add_loop:LOOP
        SET id = id + 1;
            IF id >= 10 THEN LEAVE add_loop;
            END IF;
    END LOOP add_loop;

    add_num: LOOP
        SET @count = @count + 1;
        IF @count = 50 THEN LEAVE add_num;
    END LOOP add_num;

    CREATE PROCEDURE doiterate()
        BEGIN
            DECLARE p1 INT DEFAULT 0;
            my_loop:LOOP
                SET p1 = p1 + 1;
                IF p1 < 10 THEN ITERATE my_loop;
                ELSEIF p1 > 20 THEN LEAVE my_loop;
                END IF;
                SELECT 'p1 is BETWEEN 10 AND 20';
            END LOOP my_loop;
        END;
        
    DECLARE id INT DEFAULT 0;
    REPEAT
        SET id = id + 1;
        UNTIL id >= 10;
    END REPEAT;

    DECLARE i INT DEFAULT 0;
    WHILE i < 10 DO
        SET i = i + 1;
    END WHILE;

    DELIMITER //

    CREATE PROCEDURE CountProc(IN sid INT, OUT num INT)
    BEGIN
        SELECT COUNT(*) INTO num FROM fruits WHERE s_id = sid;
    END //

    DELIMITER ;

    CALL CountProc(101, @num);

    SELECT @num;

    DELIMITER //

    CREATE FUNCTION CountProc(sid INT)
    RETURNS INT
    BEGIN
    RETURN (SELECT COUNT(*) FROM fruits WHERE s_id = sid);
    END //

    DELEMITER ;

    SELECT CountProc(101);

    SHOW STATUS;

    SHOW PROCEDURE STATUS LIKE 'C%'G;

    CREATE TABLE sch(id INT, name VARCHAR(50), glass VARCHAR(50));
    INSERT INTO sch VALUES(1,'xiaoming','glass 1'),(2, 'xiaojun','glass 2');

    DELIMITER //

    CREATE FUNCTION count_sch()
    RETURNS INT
    RETURN (SELECT COUNT(*) FROM sch);
    //

    DELIMITER //

    CREATE PROCEDURE add_id(OUT count INT)
    BEGIN
        DECLARE itmp INT;
        DECLARE cur_id CURSOR FOR SELECT id FROM sch;
        DECLARE EXIT HANDLER FOR NOT FOUND CLOSE cur_id;
        
        SELECT count_sch() INTO count;
        SET @sum = 0;
        OPEN cur_id;
        REPEAT
        FETCH cur_id INTO itmp;
        IF itmp <10
        THEN SET @sum = @sum + itmp;
        END IF;
        UNTIL 0 END REPEAT;
        CLOZE cur_id;
        
    END;

    SELECT @a, @sum //

    CREATE TRIGGER testref
    /* BEFORE INSERT ON test1 FOR EACH ROW  */
    BEGIN INSERT INTO test2 SET a2 = NEW.a1;
    DELETE FROM test3 WHERE a3 = NEW.a1;
    UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
    END //

    SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME='ins_num'G;

    GRANT SELECT,UPDATE ON *.* TO 'william'@'localhost' IDENTIFIED BY '111111';

    SELECT Host,User, Select_priv,Update_priv FROM mysql.user WHERE user='william';

    UPDATE `QB_SysWriSenImitation` SET `QuestNum` = 2 WHERE `Id` = '01-Imitation-Primary-061';


  • 相关阅读:
    实验0 了解和熟悉操作系统一、目的和要求
    读后感
    有穷自动机自动转化
    文法分析
    词法分析随笔
    git操作笔记
    面试题汇总
    MYSQL数据库设计
    Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
    invalid comparison:java.util.Date and java.lang.String
  • 原文地址:https://www.cnblogs.com/william126/p/10476819.html
Copyright © 2011-2022 走看看