美文网首页数据分析学习笔记数据库Java进阶之路
练习SQL利器,牛客网SQL实战题库,33~40题

练习SQL利器,牛客网SQL实战题库,33~40题

作者: 今天有觉悟1 | 来源:发表于2019-03-24 20:04 被阅读1次

    33.创建一个actor表,包含如下信息

    CREATE TABLE actor(
    actor_id smallint(5) NOT NULL PRIMARY KEY,
    first_name varchar(45) NOT NULL,
    last_name varchar(45) NOT NULL,
    last_update timestamp NOT NULL DEFAULT (datetime('now','localtime')))
    
    

    34.批量插入数据

    INSERT INTO actor VALUES(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
    (2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33')
    
    

    35.批量插入数据,不使用replace操作

    INSERT OR IGNORE INTO actor
    VALUES(3,'ED','CHASE','2006-02-15 12:34:33');
    
    

    36.创建一个actor_name表

    CREATE TABLE actor_name
    (
    first_name varchar(45) NOT NULL,
    last_name varchar(45) NOT NULL
    );
    INSERT INTO actor_name (first_name,last_name)
    SELECT first_name, last_name FROM actor;
    
    

    37.对first_name创建唯一索引uniq_idx_firstname,对last_name创建普通索引idx_lastname

    CREATE UNIQUE INDEX uniq_idx_firstname ON actor(first_name);
    CREATE INDEX idx_lastname ON actor(last_name);
    
    

    注:

    ①加UNIQUE是创建唯一索引。

    ②索引好像得一条一条的加,也可能是牛客网这个编辑器的问题。

    38.针对actor表创建视图actor_name_view**

    CREATE VIEW actor_name_view
    AS
    SELECT first_name AS first_name_v,last_name AS last_name_v
    FROM actor
    
    

    39.针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引

    SELECT * FROM salaries
    INDEXED BY idx_emp_no
    WHERE emp_no='10005';
    
    

    注:

    ①sqlLite 使用 indexed by 进行强制索引 SQLite Indexed By

    ②mysql 使用 force index 进行强制索引

    40.在lastupdate后面增加一列名字为create_date

    ALTER TABLE actor
    ADD COLUMN create_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00';
    
    

    注:MySQL中有AFTER参数可以指定放在哪一列后边

    相关文章

      网友评论

        本文标题:练习SQL利器,牛客网SQL实战题库,33~40题

        本文链接:https://www.haomeiwen.com/subject/kjhpvqtx.html