資料庫SQL實戰:MySql練習(下)
文章目錄
- 31. 獲取select * from employees對應的執行計劃
- 32. 將employees表的所有員工的last_name和first_name拼接起來作為Name,中間以一個空格區分
- 33. 建立一個actor表,包含如下列資訊
- 35. 對於表actor批量插入如下資料,如果資料已經存在,請忽略,不使用replace操作
- 36. 對於如下表actor,其對應的資料為:
- 37. 針對如下表actor結構建立索引:
- 38. 針對actor表建立檢視actor_name_view,只包含first_name以及last_name兩列,並對這兩列重新命名,first_name為first_name_v,last_name修改為last_name_v:
- 39. 針對salaries表emp_no欄位建立索引idx_emp_no,查詢emp_no為10005, 使用強制索引
- 40. 現在在last_update後面新增加一列名字為create_date, 型別為datetime, NOT NULL,預設值為'0000 00:00:00'
- 41. 構造一個觸發器audit_log,在向employees_test表中插入一條資料的時候,觸發插入相關的資料到audit中
- 42. 刪除emp_no重複的記錄,只保留最小的id對應的記錄
- 43. 將所有to_date為9999-01-01的全部更新為NULL,且 from_date更新為2001-01-01
- 44. 將id=5以及emp_no=10001的行資料替換成id=5以及emp_no=10005,其他資料保持不變,使用replace實現
- 45. 將titles_test表名修改為titles_2017
- 46. 在audit表上建立外來鍵約束,其emp_no對應employees_test表的主鍵id
- 47. 存在如下的檢視:
- 48. 將所有獲取獎金的員工當前的薪水增加10%
- 49. 針對庫中的所有表生成select count(*)對應的SQL語句
- 50. 將employees表中的所有員工的last_name和first_name通過(')連線起來。
- 51. 查詢字串'10,A,B' 中逗號','出現的次數cnt
- 52. 獲取Employees中的first_name,查詢按照first_name最後兩個字母,按照升序進行排列
- 53. 按照dept_no進行彙總,屬於同一個部門的emp_no按照逗號進行連線,結果給出dept_no以及連接出的結果employees
- 54. 查詢排除當前最大、最小salary之後的員工的平均工資avg_salary
- 55. 分頁查詢employees表,每5行一頁,返回第2頁的資料
- 56. 獲取所有員工的emp_no、部門編號dept_no以及對應的bonus型別btype和recevied,沒有分配具體的員工不顯示
- 57. 使用含有關鍵字exists查詢未分配具體部門的員工的所有資訊
- 58. 存在如下的檢視:
- 59. 獲取有獎金的員工相關資訊
- 60. 按照salary的累計和running_total,其中running_total為前面所有員工的salary累計和,其他以此類推。 具體結果如下Demo展示
- 61. 對於employees表,在對first_name進行排名後,選出奇數排名對應的first_name
31. 獲取select * from employees對應的執行計劃
- sql語句
explain select * from employees;
在 SQLite 語句之前,可以使用 “EXPLAIN” 關鍵字或 “EXPLAIN QUERY PLAN” 短語,用於描述表的細節。
explain顯示了mysql如何使用索引來處理select語句以及連線表。可以幫助選擇更好的索引和寫出更優化的查詢語句。 使用方法,在select語句前加上explain就可以了。
參考:https://www.cnblogs.com/yycc/p/7338894.html
32. 將employees表的所有員工的last_name和first_name拼接起來作為Name,中間以一個空格區分
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`));
- sql語句
SELECT last_name||" "||first_name AS Name FROM employees
不同資料庫連線字串的方法不完全相同,MySQL、SQL Server、Oracle等資料庫支援CONCAT方法,而本題所用的SQLite資料庫只支援用連線符號"||"來連線字串。
https://blog.csdn.net/u012260238/article/details/70245452
33. 建立一個actor表,包含如下列資訊
列表 | 型別 | 是否為NULL | 含義 |
---|---|---|---|
actor_id | smallint(5) | not null | 主鍵id |
first_name | varchar(45) | not null | 名字 |
last_name | varchar(45) | not null | 姓氏 |
last_update | timestamp | not null | 最後更新時間,預設是系統的當前時間 |
- sql語句
create table actor(
actor_id smallint(5) primary key NOT null,
first_name varchar(45) not null,
last_name varchar(45) not null,
last_update timestamp not null default (datetime('now','localtime'))
);
使用預設值為系統時間default (datetime(‘now’,‘localtime’))
34. 對於表actor批量插入如下資料
CREATE TABLE IF NOT EXISTS 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')))
actor_id first_name last_name last_update
1 PENELOPE GUINESS 2006-02-15 12:34:33
2 NICK WAHLBERG 2006-02-15 12:34:33
- sql語句
insert into actor values (1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'),
(2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33');
35. 對於表actor批量插入如下資料,如果資料已經存在,請忽略,不使用replace操作
CREATE TABLE IF NOT EXISTS 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')))
actor_id first_name last_name last_update
'3' 'ED' 'CHASE' '2006-02-15 12:34:33'
- SQLite3
insert or ignore into actor values(3,'ED','CHASE','2006-02-15 12:34:33');
- MySQL
insert ignore into actor values(3,'ED','CHASE','2006-02-15 12:34:33');
36. 對於如下表actor,其對應的資料為:
actor_id | first_name | last_name | last_update |
---|---|---|---|
1 | PENELOPE | GUINESS | 2006-02-15 12:34:33 |
2 | NICK | 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
);
- sql語句
insert into actor_name select first_name, last_name from actor;
37. 針對如下表actor結構建立索引:
CREATE TABLE IF NOT EXISTS 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')))
對first_name建立唯一索引uniq_idx_firstname,對last_name建立普通索引idx_lastname。
- sql語句
create unique index uniq_idx_firstname on actor(first_name);
create index idx_lastname on actor(last_name);
給指定表或者檢視的某列新增索引使用語句:
create [unique/…] index indexName on tableName(colName)
38. 針對actor表建立檢視actor_name_view,只包含first_name以及last_name兩列,並對這兩列重新命名,first_name為first_name_v,last_name修改為last_name_v:
CREATE TABLE IF NOT EXISTS 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')))
- sql語句
create view actor_name_view as
select first_name first_name_v, last_name last_name_v
from actor;
注意 create view … as … 的 as是建立檢視語法中的一部分,不可省略。
39. 針對salaries表emp_no欄位建立索引idx_emp_no,查詢emp_no為10005, 使用強制索引
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
create index idx_emp_no on salaries(emp_no);
- SQLite
select * from salaries indexed by idx_emp_no where emp_no = 10005;
- MySQL
select * from salaries force index idx_emp_no where emp_no = 10005;
40. 現在在last_update後面新增加一列名字為create_date, 型別為datetime, NOT NULL,預設值為’0000 00:00:00’
CREATE TABLE IF NOT EXISTS 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')));
現在在last_update後面新增加一列名字為create_date, 型別為datetime, NOT NULL,預設值為’0000 00:00:00’
- sql語句
alter table actor add create_date datetime not null default '0000-00-00 00:00:00';
用alter table … add …語句可以向已存在的表插入新欄位,並且能夠與建立表時一樣,在欄位名和資料型別後加入not null、default等限定。
41. 構造一個觸發器audit_log,在向employees_test表中插入一條資料的時候,觸發插入相關的資料到audit中
CREATE TABLE employees_test(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
CREATE TABLE audit(
EMP_no INT NOT NULL,
NAME TEXT NOT NULL
);
- sql語句
create trigger audit_log after insert on employees_test
begin
insert into audit values(new.id,new.name);
end;
構造觸發器時注意以下幾點:
1.建立觸發器使用語句:create trigger triggername;
2.指定觸發器觸發的事件在執行某操作之前還是之後,使用語句:before/after [insert/update/add] on tablename;
3.觸發器觸發的事件寫在begin和end之間;
4.觸發器中可以通過new獲得觸發事件之後2對應的tablename的相關列的值,old獲得觸發事件之前的2對應的tablename的相關列的值。
42. 刪除emp_no重複的記錄,只保留最小的id對應的記錄
CREATE TABLE IF NOT EXISTS titles_test (
id int(11) not null primary key,
emp_no int(11) NOT NULL,
title varchar(50) NOT NULL,
from_date date NOT NULL,
to_date date DEFAULT NULL);
insert into titles_test values ('1', '10001', 'Senior Engineer', '1986-06-26', '9999-01-01'),
('2', '10002', 'Staff', '1996-08-03', '9999-01-01'),
('3', '10003', 'Senior Engineer', '1995-12-03', '9999-01-01'),
('4', '10004', 'Senior Engineer', '1995-12-03', '9999-01-01'),
('5', '10001', 'Senior Engineer', '1986-06-26', '9999-01-01'),
('6', '10002', 'Staff', '1996-08-03', '9999-01-01'),
('7', '10003', 'Senior Engineer', '1995-12-03', '9999-01-01');
- sql語句
delete from titles_test
where id
not in (select min(id) from titles_test group by emp_no);
本題思路如下:
先用 group by 和 min() 選出每個 emp_no 分組中最小的 id,然後用 delete from … where … not in … 語句刪除 “非每個分組最小id對應的所有記錄”。
43. 將所有to_date為9999-01-01的全部更新為NULL,且 from_date更新為2001-01-01
- sql語句
update titles_test
set to_date = NULL, from_date = '2001-01-01'
where to_date = '9999-01-01';
更新若干列:
update表名 set 列名 = 新值 where 列名 = 某值;
注意:若干列 to_date = NULL 和 from_date = ‘2001-01-01’ 之間只能用逗號連線,切勿用 and 連線。
44. 將id=5以及emp_no=10001的行資料替換成id=5以及emp_no=10005,其他資料保持不變,使用replace實現
- sql語句
replace into titles_test
values (5, 10005, 'Senior Engineer', '1986-06-26', '9999-01-01');
update titles_test set emp_no = replace(emp_no,10001,10005) where id = 5;
本題運用 replace有兩種解法:
方法一:全欄位更新替換。由於 replace的新記錄中 id=5,與表中的主鍵 id=5 衝突,故會替換掉表中 id=5 的記錄,否則會插入一條新記錄(例如新插入的記錄 id = 10)。並且要將所有欄位的值寫出,否則將置為空。
方法二:運用replace (X,Y,Z)函式。其中X是要處理的字串,Y是X中將要被替換的字串,Z是用來替換Y的字串,最終返回替換後的字串。以下語句用 update和replace配合完成,用REPLACE函式替換後的新值複製給 id=5 的 emp_no。replace的引數為整型時也可通過。
45. 將titles_test表名修改為titles_2017
- sql語句
alter table titles_test rename to titles_2017;
46. 在audit表上建立外來鍵約束,其emp_no對應employees_test表的主鍵id
CREATE TABLE employees_test(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
- sql語句
CREATE TABLE audit(
emp_no INT NOT NULL,
create_date datetime NOT NULL,
foreign key(emp_no) references employees_test(id);
);
注:SQLite中不能通過 alter table … add foreign key … references … 語句來對已建立好的欄位建立外來鍵。
SQL foreign key約束:
http://www.w3school.com.cn/sql/sql_foreignkey.asp
47. 存在如下的檢視:
create view emp_v as select * from employees where emp_no >10005;
如何獲取emp_v和employees有相同的資料?
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`));
輸出格式:
emp_no | birth_date | first_name | last_name | gender | hire_date |
---|---|---|---|---|---|
10006 | 1953-04-20 | Anneke | Preusig | F | 1989-06-02 |
10007 | 1957-05-23 | Tzvetan | Zielinski | F | 1989-02-10 |
10008 | 1958-02-19 | Saniya | Kalloufi | M | 1994-09-15 |
10009 | 1952-04-19 | Sumant | Peac | F | 1985-02-18 |
10010 | 1963-06-01 | Duangkaew | Piveteau | F | 1989-08-24 |
- sql語句
select * from emp_v;
select em.* from employees em, emp_v ev where em.emp_no = ev.emp_vo;
select * from employees intersect select * from emp_v;
方法一:利用檢視的定義。emp_v的全部記錄均由 employees 匯出,因此直接輸出 emp_v 所有記錄。
方法二:用 where選取二者 emp_no 相等的記錄。由於檢視 emp_v 的記錄是從 employees 中匯出的,所以要判斷兩者中相等的資料,只需要判斷emp_no相等即可。
方法三:用 intersect關鍵字求 employees 和 emp_v 的交集。
48. 將所有獲取獎金的員工當前的薪水增加10%
create table emp_bonus(
emp_no int not null,
recevied datetime not null,
btype smallint not null);
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`from_date`));
- sql語句
update salaries
set salary = salary * 1.1
where emp_no
in (select s.emp_no
from salaries s
join emp_bonus eb
on s.emp_no = eb.emp_no
and s.to_date = '9999-01-01');
49. 針對庫中的所有表生成select count(*)對應的SQL語句
輸出格式:
cnts |
---|
select count(*) from employees; |
select count(*) from departments; |
select count(*) from dept_emp; |
select count(*) from dept_manager; |
select count(*) from salaries; |
select count(*) from titles; |
- sql語句
select "select count(*) from " || name || ";" cnts
from sqlite_master
where type = 'table';
本題主要有以下兩個關鍵點:
1、SQLite資料庫中一個特殊的名叫 sqlite_master 上執行一個select查詢以獲得所有表的索引。每一個 SQLite 資料庫都有一個叫sqlite_master的表, 它定義資料庫的模式。
對於表來說,type 欄位永遠是 ‘table’,name 欄位永遠是表的名字。
2、在 SQLite 中用 “||” 符號連線字串。
50. 將employees表中的所有員工的last_name和first_name通過(’)連線起來。
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`));
輸出格式:
name |
---|
Facello’Georgi |
Simmel’Bezalel |
Bamford’Parto |
Koblick’Chirstian |
Maliniak’Kyoichi |
Preusig’Anneke |
- sql語句
select last_name || "'" || first_name name
from employees;
51. 查詢字串’10,A,B’ 中逗號’,'出現的次數cnt
- sql語句
select (length("10,A,B")-length(replace("10,A,B",",","")))/length(",") cnt
使用length()函式與replace()函式的結合靈活地解決了統計子串出現次數的問題,屬於技巧題,即先用replace函式將原串中出現的子串用空串替換,再用原串長度減去替換後字串的長度,最後除以子串的長度(本題中此步可省略,若子串長度大於1則不可省)。
52. 獲取Employees中的first_name,查詢按照first_name最後兩個字母,按照升序進行排列
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`));
輸出格式:
first_name |
---|
Chirstian |
Tzvetan |
Bezalel |
Duangkaew |
Georgi |
Kyoichi |
Anneke |
Sumant |
Mary |
Parto |
- sql語句
select first_name
from employees
order by substr(first_name,length(first_name)-1);
本題考查 substr(X,Y,Z) 或 substr(X,Y) 函式的使用。其中X是要擷取的字串。Y是字串的起始位置(注意第一個字元的位置為1,而不為0),取值範圍是±(1~length(X)),當Y等於length(X)時,則擷取最後一個字元;當Y等於負整數-n時,則從倒數第n個字元處擷取。Z是要擷取字串的長度,取值範圍是正整數,若Z省略,則從Y處一直擷取到字串末尾;若Z大於剩下的字串長度,也是擷取到字串末尾為止。
53. 按照dept_no進行彙總,屬於同一個部門的emp_no按照逗號進行連線,結果給出dept_no以及連接出的結果employees
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
輸出格式:
dept_no | employees |
---|---|
d001 | 10001,10002 |
d002 | 10006 |
d003 | |
d004 | 10003,10004 |
d005 | 10007,10008,10010 |
- SQLite
select dept_no, group_concat(emp_no) employees
from dept_emp
group by dept_no;
- MySQL
select dept_no,group_concat(emp_no SEPARATOR ',') employees
from dept_emp
group by dept_no;
本題要用到SQLite的聚合函式group_concat(X,Y),其中X是要連線的欄位,Y是連線時用的符號,可省略,預設為逗號。此函式必須與 GROUP BY 配合使用。
54. 查詢排除當前最大、最小salary之後的員工的平均工資avg_salary
CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
輸出格式:
avg_salary |
---|
69462.5555555556 |
- sql語句
select avg(salary) avg_salary
from salaries
where to_date = '9999-01-01'
and salary not in (select max(salary) from salaries)
and salary not in (select min(salary) from salaries);
55. 分頁查詢employees表,每5行一頁,返回第2頁的資料
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
相關推薦
資料庫SQL實戰:MySql練習(下)
文章目錄
31. 獲取select * from employees對應的執行計劃
32. 將employees表的所有員工的last_name和first_name拼接起來作為Name,中間以一個空格區分
33. 建立一個actor表,包含如
資料庫SQL實戰:MySql練習(上)
文章目錄
1. 查詢最晚入職員工的所有資訊
2. 查詢入職員工時間排名倒數第三的員工所有資訊
3. 查詢各個部門當前(to_date='9999-01-01')領導當前薪水詳情以及其對應部門編號dept_no
4. 查詢所有已經分配部門
SQL作業:綜合練習(二)的返評
庫文件 spl val 查找 括號 冰箱 HR 題目 tar 一:作業題目:綜合練習(二)
二:題目要求:
1、創建數據庫CPXS,保存於E盤根目錄下以自己學號+姓第一個字母(阿拉伯數字+大寫字母)方式創建的文件夾中,初始大小5MB,最大20MB,以10%方式增長,日誌文件
OPEN(SAP) UI5 學習入門系列之二: 最佳實踐練習(下)
可以先把程式碼下載到本地並跑起來,這樣可以對這個最佳實踐的程式有一個直觀的瞭解。
頁面導航如下:
銷售訂單列表(Master) -> 銷售訂單明細(Detail) -> 行專案明細(LineItem),在每個明細頁面都可以返回到上一層。
具體頁面之間的導航是如何實現的呢?
我們從頁面的入口
mysql======練習(1)
char sel ddr cte 考試科目 unique sco score select mysql 練習題***創建student表mysql> create table student ( -> id int(10) not null unique
網站搭建筆記精簡版---廖雪峰WebApp實戰-Day10:使用者登陸(下)筆記
這裡的登陸頁面轉換花了好長時間。
網頁登陸完整日誌分析(重要)
此處講述了具體signin.html的javascrip部分如何進行相應,寫出了相關函式的呼叫順序。花了好長時間理清楚思路。已調通的具體程式碼參考該網頁。或參考之前的博文。
Signin.html GET ‘/sig
網路基本功(五):細說路由(下) 網路基本功(五):細說路由(下)
網路基本功(五):細說路由(下)
轉載請在文首保留原文出處:EMC中文支援論壇https://community.emc.com/go/chinese
介紹
1026:二分查詢(下)
目錄
一、四種常見的二分查詢變形問題
二、程式碼實現
三、適用性分析
四、思考
一、四種常見的二分查詢變形問題
1.查詢第一個值等於給定值的元素
2.查詢最後一個值等於給定值的元素
3.查詢第一個大於等於給定值的元素
4.查詢最後一個小於等於給定值的元素
第九講:產生式模型:NaiveBayes, HMM(下)
目錄
1 引言
2 隱馬爾科夫模型(HMM)
2.1 模型介紹
2.2 HMM概率計算問題及其求解演算法
2.3 預測與學習
2.4 HMM與動態系統
3 小結
參考文獻
1 引言
上一講已經提到生成式模型中的樸素貝葉斯演算
matlab第八課:影象分析(下)
目標:
影象閾值
背景評估
聯通區域標記
一、影象閾值
graythresh():找出一個影象的最佳閾值是什麼
im2bw():轉變影象為二值影象
I = imread('rice.png');
level=graythresh(I); % 獲
【TeeChart Pro ActiveX教程】(七):使用函式(下)
下載TeeChart Pro ActiveX最新版本
在上一篇文章中,我們介紹到了在Teechart Pro ActiveX中的功能特點和新增功能,今天我們接著講定義資料來源、功能期間和週期樣式
(一)定義資料來源
上一節中的示例重點介紹如何使用Datasource通過程式碼填充Function.S
CS231n課程筆記:最優化筆記(下)
原文連結:https://zhuanlan.zhihu.com/p/21387326?refer=intelligentunit
內容列表:
簡介
損失函式視覺化
最優化
策略#1:隨機搜尋
策略#2:隨機區域性搜尋
策略#3:跟隨梯度
9.spring:事務管理(下):宣告式事務管理
宣告式事務管理
sprin的宣告式事務是管理AOP技術實現的事務管理,其本質是是對方法前後進行攔截,然後
在目標方法開始之前建立或者加入一個事務,在執行完成目標方法之後根據執行情況提交或者回滾事務。
宣告式事務管理優點:不需要通過程式設計的方式管理事務,因而不需要在業務邏輯程
Qtum量子鏈研究院:閃電網路(下)
Qtum量子鏈研究院:Mia
Qtum量子鏈研究院即日起將會定期進行技術課程,每期一個主題,在這裡我們用最專業的視角解讀當下區塊鏈技術熱點話題。第一期的主題:閃電網路,早在2017年11月Qtum便先一步引入閃電網路,詳情見《基於Qtum量子鏈的閃電網路功能簡介
MySQL高可用方案之DRBD+MySQL+RHCS(下)
續:MySQL高可用方案之DRBD+MySQL+RHCS(上)
五、MySQL5.6.42安裝
安裝步驟(兩臺機器都要安裝)
[[email protected] ~]# cd /opt/
[[email protected] opt]# ls
mysql-5.6.42-linux
1105:散列表(下)
目錄
帶著問題去學習
一、為什麼散列表和連結串列經常放在一起使用?
二、散列表和連結串列如何組合起來使用?
1.LRU(Least Recently Used)快取淘汰演算法
1.1.LRU快取淘汰演算法主要操作有哪些?主要包含3個操作:
1.2.如何用連結串列實現LRU
組合語言:編寫子程式(下)課程設計1
題目:
彙編程式碼:
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','
函式程式設計實驗四:列表練習(2)
{-
吳坎
17341163
[email protected]
資料科學與計算機學院計算機專業
-}
{-
稱一個三元組(x,y,z)是畢達哥拉斯三元組,如果x*x + y*y == z*
資料庫學習筆記和小練習(14)函式
函式分為系統函式和自定義函式。
一、系統函式
1 文字處理函式
select lower(Sdept) as Sdept_lower
from student
order by Sdept;
常用舉例:
lower() 函式將文字轉化為小寫。
upper() ->
Go遊戲伺服器開發的一些思考(四):綜合考察(下)
(接下來的內容,大部分都是純邏輯問題,與語言沒有多大關係。Go語言的作用就是利用它的語言特性,提供介面來應對變化)
世界場景搭建
Cell伺服器
拆出Cell服務,是業內公認的。MMO RP