MYSQL 筆記(一)

你們好,今天咱們來聊一聊什麼是數據庫,以及怎麼操做?面試

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、表中數據的插入產品

  1. 標準寫法:insert into 表名 (列名1,列名2) vaules(值1,值2); ps:插入的是全列名,能夠不用寫列名table

  2. 批量插入;
    insert into 表名 vaules (2,11),(3,5),(5,5); //注意中間的是逗號亂碼

  3. 查看錶中數據 select*from student;

5、表中數據的刪除

  1. delete from 表名 [where 條件];
    實例:delete from student where T_name = "張三"; 2.面試題 delete 和 truncate 刪除有什麼區別? delete : DML 一條一條刪除表中的數據. -- 適用於數據比較少的時候 truncate : DDL 先刪除表,再重建表中數據. -- 適用於數據比較多的時候.

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 表名;

  1. 別名查詢 列別名:select price as 商品名稱,pname as 商品價格 from product; 表別名:select p.price,p.pname from product as p;

3.去掉重複值 --- distinct 實例: select distinct price from product;

  1. select 運算查詢 select *,price *1.5 as 折後價 from product; 效果:在cno 後面多了一列,折後價,下面是新運算好的數據。

  2. 條件查詢(關鍵字) 查詢價格大於 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;

  3. 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);

  1. 排序查詢: ( order by 關鍵字) asc : ascend 升序 desc : descend 降序

  2. 查詢全部商品,按照價格排序 select * from product order by price;

  3. 降序排序 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的記錄行數;

  1. 統計商品表中價格大於50的有多少條記錄 SELECT COUNT(*) FROM products WHERE price>50;
  2. 得到商品價格的總和 select sum(price) from product;
  3. select avg(price) from product;
  4. select count(price) from product;

注意: where 後面不能接聚合函數

select * from product where peice > avg (price); // 這時錯的!!!!,不能這樣使用

查出商品價格大於平均價格的全部商品: 子查詢:
select * from product where price > ( select avg(price) from product);

9.分組: ( group by)

  1. 根據商品中的 cno 字段,進行分組,再統計出商品的個數 select cno ,count(*) from product group by cno; // 分組的意思是將
  2. 根據 cno 分組,分組統計每組商品的平均價格,而且商品的平均價格 > 60 select cno ,avg (price) from product group by cno having avg(price) > 60 ; // by 後面是分組, select 後面是先顯示的東西 having 關鍵字 能夠接在聚合函數的 出如今分組以後,做用和 where 差很少 where 關鍵字 他是不能夠接聚合函數 ,出如今分組以前

編寫順序: 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

相關文章
相關標籤/搜索