你們好,今天咱們來聊一聊什麼是數據庫,以及怎麼操做?面試
1、什麼是數據庫,它有什麼做用? 數據庫(Database)是按照 數據結構來組織、 存儲和管理數據的倉庫。數據庫
2、數據庫的基本操做 ---------增刪改查 增:新建數據庫: create database 數據庫的名字; 刪: drop database 數據庫的名字; 改:通常不得修改數據庫 查:show databases; //查看全部的數據庫 實例 : show create database day07;數據結構
切換數據庫, use 數據庫名字 查看當前數據庫: select database();函數
3、表的操做 增:新建數據庫:create table 表名( 列名 列的類型(長度) 約束) 實例:create table student( sid int primary key, sname varchar(10), sex int, age int); 刪:drop table 表名; 刪除列:alter table student drop chengji; 改: 添加列:alter table 表名 add 列名 列的類型 列的約束 add :alter table student add sex varchar(2);
modify: alter table student modify sex varchar(2); 通常不要動他:修改列名:alter table student change kaijian daishiqi int; 修改表名: rename table student to daishiqi; 修改表的字符集: alter table daishiqi character set gbk;排序
查:show tables; //查看全部的表 show create database day06;//查看 desc student;ci
列的約束: 主鍵約束:primary key 惟一約束 : umique 非空約束: not nullrem
4、表中數據的插入產品
標準寫法:insert into 表名 (列名1,列名2) vaules(值1,值2); ps:插入的是全列名,能夠不用寫列名table
批量插入;
insert into 表名 vaules (2,11),(3,5),(5,5); //注意中間的是逗號亂碼
查看錶中數據 select*from student;
5、表中數據的刪除
6、解決亂碼問題
7、更新表中結構 1.update 表名稱 set 列名稱=新值 where 更新條件; 實例:將 id 爲 5 的手機號改成默認的 - : update students settel=default where id=5; 將全部人的年齡增長 1: update students set age=age+1; 將手機號爲 13288097888 的姓名改成 "小明", 年齡改成 19: update students setname="小明", age=19 wheretel="13288097888";
若是不指定條件,就會把表裏全部的所有給改了
8、select 的簡單查詢 (字段就是類型) 1.先創建一個表,插入數據 create table category( cid int primary key autoincrement, cname varchar(18), cdesc varchar(31) ); //autoincrement id 自增加
insert into category values(null,'手機數碼' , '電子產品,黑馬生產'); insert into category values(null,'鞋子箱包' , '江南皮革廠,傾情打造'); insert into category values(null,'酸奶餅乾' , '安慕希,娃哈哈'); insert into category values(null,'餐追進是' , '辣條,寶批龍'); insert into category values(null,'餐追進是' , '辣條,寶批龍'); select cname , cdesc from category; //只有後面兩列的數據 簡單查詢: select*from category;
上面是例子,說明了 select 的用法 ,便是 select 列名,列名 from 表名;
3.去掉重複值 --- distinct 實例: select distinct price from product;
select 運算查詢 select *,price *1.5 as 折後價 from product; 效果:在cno 後面多了一列,折後價,下面是新運算好的數據。
條件查詢(關鍵字) 查詢價格大於 60 : select * from product where price > 60; 同理:有<> != 兩種方式的不等於 between and select * from product where price between 10 and 100; 邏輯運算: and or not 實例:select * from product where price > 60 and price < 100;
like 模糊查詢 (where 關鍵字) _ : 表明的是一個字符 %: 表明的是多個字符
--查詢出名字中帶有餅的全部商品 '%餅%' select * from product where pname like '%餅%'; 查詢第二個名字帶熊的全部商品 '熊' select * from product where pname like '餅%'; in 在某個範圍中得到值 查詢出商品分類ID在1,4,5 裏面的商品 select * from product where cno (1,4,5);
排序查詢: ( order by 關鍵字) asc : ascend 升序 desc : descend 降序
查詢全部商品,按照價格排序 select * from product order by price;
降序排序 select * from product order by price desc; desc 能夠換成 asc 2.升序排序 查詢名稱中帶有 '小' 商品 select * from product where pname like '%小%'; 進行排序得出結果 select * from product where pname like '%小%' order by price asc; 上面出來後能夠排序
8.聚合函數 sum() avg() 求平均值 count() 統計數量 max() min() count:統計指定列不爲NULL的記錄行數;
注意: where 後面不能接聚合函數
select * from product where peice > avg (price); // 這時錯的!!!!,不能這樣使用
查出商品價格大於平均價格的全部商品: 子查詢:
select * from product where price > ( select avg(price) from product);
9.分組: ( group by)
編寫順序: s … f …w .g ….h… o… select … from… where …group by … having ..order by
執行順序: f…w…g…h…s…o from … where …group by …having…select …order by