DDL之資料庫操作
DDL之資料庫操作:databases
1,檢視資料庫:
命令: show databases;
2,檢視某個資料庫的定義的資訊:
show create database 資料庫名;
3,需求: 把資料庫 day01刪除掉
格式:
drop database 資料庫名稱;
4,切換資料庫:
use 資料庫名;
DDL之表操作:table
1,建立表:
格式:
create table 表名( 欄位名 型別(長度) [約束], 欄位名 型別(長度) [約束], ... ); 型別: varchar(n) 字串 int 整形 double 浮點 date 時間 timestamp 時間戳 約束: primary key 主鍵,被主鍵修飾字段中的資料,不能重複、不能為null。
2,查看錶:
查看錶的資訊
檢視資料庫中的所有表:
格式:show tables;
3,需求:檢視一下 user 表的 表結構
格式:
查看錶結構:
格式:desc 表名;
4,刪除表:
需求:把user表刪除掉
格式:drop table 表名;
5,修改表:
//需求:修改user表中 cname欄位 資料型別的長度變成100
需求: 給user表新增一個新的列列名叫做 sex ,型別是字串型別,長度是50
格式:
alter table 表名 add 列名 型別(長度) [約束];
6,
需求:
/*
修改user表的 sex欄位,讓欄位的長度是100 sex 可以為空
格式:
alter table 表名 modify 列名 型別(長度) [約束];
*/
ALTER TABLE USER MODIFY sex VARCHAR(100)
7,需求:
把user表的 列名sex改成usex
格式:
alter table 表名 change 舊列名 新列名 型別(長度) [約束];
8,需求:
把user表的 usex這一列刪除掉
格式:
alter table 表名 drop 列名;
9,需求:
把user表的 usex這一列刪除掉
格式:
alter table 表名 drop 列名;
10,需求:
把user表 表名改成 myuser
格式:
rename table 表名 to 新表名;
DML資料操作語言
1,設計資料庫表
2,-- 向表中插入某些欄位
insert into 表名 (欄位1,欄位2,欄位3…) values (值1,值2,值3…);
–向表中插入所有欄位,欄位的順序為建立表時的順序
insert into 表 values (值1,值2,值3…);
單表操作
1,表的更新
整體的更新某一列
根據條件進行更新
條件更新
2,刪除記錄:delete
原始資料和需求
實現:
刪除所有
Delete 刪除資料之後 又重新新增 效果 注意主鍵的效果
刪除整表資料的方式2
3,基本查詢
資料準備
查詢所有
查詢一列資訊
查詢多列
查詢 沒有去重
查詢 去重
對查詢結果 進行運算
別名
查詢多列 使用別名
4, 基本查詢practice
#查詢商品名稱為“花花公子”的商品所有資訊:
SELECT * FROM product WHERE pname=‘花花公子’
#查詢商品價格在200到1000之間所有商品
#查詢商品價格是200或800的所有商品
#查詢含有’霸’字的所有商品
#查詢第二個字為’想’的所有商品
查詢商品價格為空的商品
查詢商品價格不為空的商品
5,聚合 排序 分組
降序
升序
聚合函式 count(*) 統計條目個數
帶有條件的統計
有條件的求和
Avg 求平均
分組
分組查詢 帶條件
分頁
查詢表的英語成績去掉重複資料。
統計每個學生的總分,顯示時 有兩列資訊 分別是name 和sum, sum為總分,總分的意思是chinese english math 之和
查詢數學分數為89 90 77 的同學資訊
13)查詢數學分80並且語文分80的同學資訊
14)查詢英語80或者總分為200的同學的資訊
15)對數學成績降序輸出。
16)對總分排序,降序輸出,顯示時只有一列,列名是sum 顯示的是總分
17)對姓李的學生資訊按照總分降序的方式輸出
強化2
單表級別:
1)查詢沒有上級的員工全部資訊(也就是說 員工上級編號為 null 的)
查詢10號部門的平均薪資、最高薪資、最低薪資
單錶帶有子查詢
0)-- 查詢薪資最高的員工的資訊 ----子查詢
列出與“SCOTT”從事相同工作的所有員工姓名、工作名稱
查詢語句重點語法
select [distinct]
*| 列名,列名 from 表 where 條件Distinct 去重
From 從…
where 條件連線符
order by 列 以XXX列進行排序 ASC 升序
如 123456 DESC 降序 如 654321count:統計指定列不為NULL的記錄行數;
sum:計算指定列的數值和,如果指定列型別不是數值型別,那麼計算結果為0;
max:計算指定列的最大值,如果指定列是字串型別,那麼使用字串排序運算;
min:計算指定列的最小值,如果指定列是字串型別,那麼使用字串排序運算;
avg:計算指定列的平均值,如果指定列型別不是數值型別,那麼計算結果為0;group by 列名 以 XXX列 分組