日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sql 百分号_SQL思维导图和代码分享

發布時間:2024/7/23 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql 百分号_SQL思维导图和代码分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本人SQL新手,五一期間自學了《SQL必知必會》一書,在此簡要分享學習心得,若有差錯,請各位大佬們多多指教呀!

本人的SQL學習計劃是先根據《SQL必知必會》一書入門,了解SQL的整體框架,語法等,在閑暇時間刷題鞏固。

首先奉上本人整理的SQL涉及的功能及語法的思維導圖,思維導圖中整理了各個SQL功能以及實現功能的代碼和函數等,還在不斷完善更新中~(本人新手,可能有部分功能理解有誤,請大家不吝賜教,(●'?'●))

另外,本著學以致用的心態,本人在SQL學習過程中,堅持碼代碼實現相關功能,文末也將奉上本人編寫的SQL代碼以及相關功能說明~(工具是SQLyog,思路依據的是《SQL必知必會》一書),老規矩,同學們覺得有問題或有優化空間的話,請多多留言指教哇!

=======================================================================

/* 檢索固定位置和固定行數

SELECT *

FROM employees;

Select distinct employee_id

from employees;

select employee_id

from employees

limit 4,4

order by employee_id; */

/* 多列排序 第一個排序列的值不唯一,需要多列區分

select employee_id, first_name, last_name

from employees

order by first_name,last_name;

*/

/* 升序排序和降序排序

select first_name, last_name, salary

from employees

order by salary desc;

*/

/* 找到工資3000的員工;where 過濾指定的是行。

select first_name,last_name,salary

from employees

where salary >= 3000;

*/

/* 不匹配查詢--字符串要用單引號引用

select

first_name,last_name,salary

from

employees

where job_id = 'AD_VP' ;

*/

/* 范圍查詢

select first_name,last_name,salary

from employees

where salary between 3000 and 5000

order by salary desc;

*/

/* 查詢空值

select first_name,last_name,email

from employees

where email is null;

*/

/*邏輯操作符*/

/* AND 操作符

select first_name,last_name,salary,job_id

from employees

where job_id = 'IT_PROG' and salary >5000

order by salary;

*/

/* OR 操作符

select salary,first_name,last_name,job_id

from employees

where job_id ='IT_PROG'

or salary >=10000

order by salary;

*/

/* 求值順序--AND的優先級更高,會優先和其它語句組合,類似數學運算的乘除;

OR類似加減,

可用圓括號(優先級更高)強制改變運算順序

select job_id, first_name,last_name,salary

from employees

where (job_id = 'IT_PROG'

or job_id = 'AD_VP')

and salary > 6000;

*/

/* IN 的用法————類似“集合”概念;完成類似 ”OR“語句的操作,學會使用“IN”替代“OR”

select first_name,last_name,salary,job_id

from employees

where job_id in ('AD_VP','IT_PROG')

order by salary;

*/

/*

select first_name,last_name,salary,job_id

from employees

where not job_id in ('AD_VP','IT_PROG')

and salary > 10000

order by salary;

*/

/* 通配符% 匹配多個字符 搜百分號放字符前面表示以百分號后的字符結尾的量,放字符后面表示搜索以字符開頭的量

select *

from jobs

where job_title like '%manager%'

order by min_salary;

*/

/*通配符 下劃線 一個下劃線只匹配單個字符而不是多個字符

select *

from jobs

where job_title like '__________ Manager';

*/

/*組合使用

select *

from employees

where first_name NOT like 'N%'

or first_name Not like 'L%'

order by salary desc;

*/

/* 使用concat拼接兩列,并指定別名

select concat(first_name,'(',last_name,')')

from employees

as name

order by salary;

*/

/* 返回當前日期

select now()

*/

/* 文本處理,改變字符串首字母大小寫

select first_name,lower(first_name)as first_name_locase

from employees

order by first_name_locase;

*/

/*搜索發音相同的字符

select first_name

from employees

where soundex(first_name)=soundex('vali');

*/

/* 提取時間 年

select first_name,last_name,salary

from employees

where year(hiredate)=2004

order by salary;

/* 提取時間 月

select first_name,last_name,salary

from employees

where month(hiredate)=3

order by salary;

*/

/* 提取時間 日

select first_name,last_name,salary

from employees

where day(hiredate)=3

order by salary;

*/

/* 求平均值,列名不是字符串

select avg(salary)

as avg_salary

from employees;

*/

/* 計數函數的使用,是否將NULL計算在內

select count(*)

from employees;

select count(manager_id)

from employees;

*/

/*最大值 最小值函數使用

select max(first_name)

from employees;

select min(first_name)

from employees;

*/

/*分組數據,Group by和Having*/

/* group by 使用

select job_id,count(*)as num_job

from employees

group by job_id

*/

/* having函數使用,對“列”過濾,再排序

select job_id,count(*)as num_job

from employees

group by job_id

having num_job>=10

order by num_job;

*/

/* 子查詢

select first_name,last_name,salary

from employees

where department_id in (select department_id

from departments

where location_id = 1700);

*/

/*作為計算字段使用子查詢

select department_name,

manager_id,

(select count(*)

from employees

where employees.department_id=departments.department_id) as depar

from departments

order by manager_id;

*/

/* 內聯結 選定的列位于不同的表,如何選取?如何使用表名的縮寫-表別名?

select d.`department_name`,e.first_name,e.last_name

from `departments` as d,employees as e

where d.`department_id` = e.`department_id`;

*/

/* 自聯結 同一張表中尋找擁有同種屬性的對象--問題:相同列會出現多次,下面代碼結果同一個對象重復出現

select e1.`employee_id`,e1.first_name,e1.last_name,e1.department_id

from employees as e1,employees as e2

where e1.`department_id`=e2.`department_id`

and e2.`department_id`=100;

*/

/*自然聯結--避免自聯結結果項重復出現,重點在于采用另一張明確的表來聯結

select e.`department_id`,e.`first_name`,e.`last_name`,e.`salary`

from employees as e,departments as d

where e.`department_id`=d.`department_id`

and d.`department_id`=100;

*/

/* 外聯結-關鍵:可以顯示沒有關聯行的行;注意:left outer join指出語句左邊表(默認按左邊表排序),right outer join指出語句右邊表(默認按右邊表排序)

select e.`employee_id`,e.`first_name`,e.`last_name`,d.`department_name`,e.`department_id`

from employees as e left outer join departments as d

on e.`department_id`=d.`department_id`;

*/

/*使用帶聚集函數的聯結。

select d.`department_name`,e.`employee_id`,

count(e.`department_id`) as num_emp

from employees as e inner join departments as d

on e.`department_id`=d.`department_id`

group by e.department_id;

*/

/* 組合查詢,多個查詢條件,類似OR的功能,在面對多個表調用時,采用這個語句,結構會清晰一些。

select e.`employee_id`,e.`first_name`,e.`last_name`,e.`email`,e.`department_id`

from employees as e

where e.`department_id` in (100,110,120)

union

select e.`employee_id`,e.`first_name`,e.`last_name`,e.`email`,e.`department_id`

from employees as e

where e.`first_name`='Steven'

order by e.`department_id`;

*/

/* 用OR語句替代上述組合查詢語句,實現相同功能

select e.`employee_id`,e.`first_name`,e.`last_name`,e.`email`,e.`department_id`

from employees as e

where e.`department_id` in (100,110,120)

or e.`first_name`='Steven'

order by e.`department_id`;

*/

/* 插入

insert into employeess(*)

values(01,

'Lynn',

'Zheng',

'lingling66zh',

'1888',

'AD_VP',

17000,

null,

null,

100,

2020-08-25);

*/

/*插入檢索的數據

insert into employees(*)

select(*)

from another_tbl;

select *

into custcopy

from customer

*/

/*更新數據

update employees

set employee_id =250

where employee_id =1;

*/

/*刪除數據-注意:這里刪除的是整行,部分刪除要使用update

delete from employees

where employee_id = 250;

*/

/*創建表,必須給出三個項: 列名,數據類型,是否允許值為null;如何給定默認值

create table test.product250

(prod_id char(10) not null,

department_id int(4) default 1,

prod_name char(254) default 1);

*/

/*更改設定表,添加用add,刪除用drop column 列名

alter table test.`product250`

add prod_price int(10) default 1;

*/

總結

以上是生活随笔為你收集整理的sql 百分号_SQL思维导图和代码分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。