牛客網 資料庫SQL實戰36 40

2021-08-20 02:55:42 字數 1867 閱讀 6930

36.

對於如下表actor,其對應的資料為:

actor_id

first_name

last_name

last_update

1penelope

guiness

2006-02-15 12:34:33

2nick

wahlberg

2006-02-15 12:34:33

建立乙個actor_name表,將actor表中的所有first_name以及last_name匯入改表。 actor_name表結構如下:

列表型別

是否為null

含義first_name

varchar(45)

not null

名字last_name

varchar(45)

not null

姓氏

create table 'actor_name'('first_name' varchar(45) not null,

'last_name' varchar(45) not null);

insert into actor_name

values

('penelope','guiness'),('nick','wahlberg')

注意插入資料的語句

37. 針對如下表actor結構建立索引:對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);

注意建立索引的語句,建立唯一索引的列不能有重複值,建立普通索引的列可以有重複值,索引可以加快查詢速度,唯一索引還能防止資料重複

38. 針對actor表建立檢視actor_name_view,只包含first_name以及last_name兩列,並對這兩列重新命名,first_name為first_name_v,last_name修改為last_name_v

create view actor_name_view as

select first_name as first_name_v, last_name as last_name_v

from actor

注意建立檢視的語句,檢視可以簡化資料操作保證資料安全性等,比如說乙個比較複雜的查詢不想每次都寫很多語句,就可以寫個檢視。下次查詢的時候是需要使用select * from檢視名就可以了,或者給特定使用者開放某些表的讀取許可權,但要加一些行和列的限制,也可以寫個檢視。

39. 針對salaries表emp_no欄位建立索引idx_emp_no,查詢emp_no為10005, 使用強制索引。

select * 

from salaries

indexed by idx_emp_no

where emp_no = 10005

強制索引在sqlite 中用indexed by 索引名 ,mysql 中用force index (索引名),強制索引可以加快查詢速度

40. 存在actor表,現在在last_update後面新增加一列名字為create_date, 型別為datetime, not null,預設值為'0000-00-00 00:00:00'

alter table actor add 'create_date' datetime not null default ('0000-00-00 00:00:00')
注意增加欄位的語句

牛客網資料開發題庫 牛客網資料庫SQL實戰(1)

查詢最晚入職員工的所有資訊 入門 需要查詢最晚入職員工的資訊,即查詢hire date最大的資料,使用倒序並取第乙個人即可。select from employees order by hire date desc limit 0,1 desc 使用order by時在後面加上desc表示倒序,即從...

牛客網 資料庫SQL實戰1

題目描述 查詢最晚入職員工的所有資訊,為了減輕入門難度,目前所有的資料裡員工入職的日期都不是同一天 sqlite裡面的注釋為 mysql為comment create table employees emp no int 11 notnull 員工編號 birth date date notnull...

牛客網 資料庫SQL實戰3

查詢各個部門當前 dept manager.to date 9999 01 01 領導當前 salaries.to date 9999 01 01 薪水詳情以及其對應部門編號dept no 注 輸出結果以salaries.emp no公升序排序,並且請注意輸出結果裡面dept no列是最後一列 cr...