mysql自學

mysql入門

一、mysql基礎

1. 什麼是數據庫
 1.存儲數據的文件
2、sql語句
  //增加
  insert into 表名(字段1。。。。字段n) values(值1....值n);
  //刪
  delete from 表名 where 字段=值;
  //修改
  update 表 set 修改的字段 =修改的值 where 選擇的字段=選擇的值;
  //查
  select * from 表名 where 條件;
3、建立一個數據庫
--mysql建庫語句對應的mysql版本5.5.29;
 --建立數據庫
CREATE DATABASE HF190503CTS DEFAULT CHARACTER SET 'UTF-8' COLLATE 'UTF8_general_ci';
--刪除數據庫
DROP DATABASE IF EXISTS HF190503CTS;
--使用數據庫
USE HF190503CTS;
--常用約束
NOT NULL  表示字段不能爲空
UNIQUE    表示字段唯一
default   默認值
--外鍵的約束
FOREIGN KEY(字段) REFERENCES 父表名(父表字段),
--設置數據庫引擎
create table 表名()ENGINE=INNODB;

注意:timestamp時間戳 一張表只能有一個字段是timestamp;

數據類型
枚舉數據類型:enum

二、數據庫進階

1、數據庫查詢

1、基本查詢語句

select * from 表名

2、條件查詢語句

select * from 表名 where 條件
--模糊查詢:
    like "9500_"  只能匹配一位;
    like '9500%'  匹配尾部任意位;
--查詢語句中in的使用
    select * from 表名 where 查詢字段 in ('查詢的值1','查詢的值2');
--注:in裏面可以嵌套sql查詢語句;

3、邏輯sql

and :且 ;
or :或;
!= <> not 字段=值  :非;
in :多個;

4、通配符

liek "%偶"  %表示省略n位  _表示省略1位
REGEXP '9500[1-5]'  表示匹配 後一位爲1到5的所有
REGEXP '9500[1,5]'  表示匹配 後一位爲1或5的

5、函數

//--count  計算總數;
  select count(*) as "total"  from t_student ;
--distinct 去重
  select distinct(去重的字段)  from t_student;
--avg  平均分
  select avg(grade) from  t_sc where courseid=1;
--min 最小值 max 最大值
  select min(grade),max(grade) from  t_sc;
--/group by having    分組
  select avg(grade) from t_sc c group by c.courseid;
  select avg(grade) from t_sc c group by c.courseid having courseid=1;
--limit  分頁; 
  語法:linmit  起始位置,偏移量;
        linmit  偏移量 offset 起始位置;
--order by  根據某個字段進行排序,默認升序,降序desc;
    --升序
    select * from t_sc order by grade;
    --降序
    select * from t_sc order by grade desc ;

6、笛卡爾積

行:兩張錶行乘積, 列:兩張表列的和;
inner join 和 on 配合連表
逗號和where 配合連表;

7、左位連接

主表  left join  副表  左連接
主表  right jion 副表  右連接

三、mysql與php連接

1、面向過程連接mysql

  1、數據庫的連接
   1、通過php代碼,連接數據庫 
    $link=@mysqli_connect(ip地址,用戶名,密碼,庫名,端口號) or die("數據庫連接失敗");
    //提示錯誤編碼
     mysqli.connect.errno();
    //提示錯誤信息
     mysqli.connect.error();
   2、執行mysql語句;
      //執行mysql設置編碼;
     mysqli_query($link,'set names utf8');
     //執行sql語句
    $result=mysqli_query($link,$sql);
     //將結果轉換爲數組
     mysqli_fetch_assoc($result)  //關聯數組;
     mysqli_fetch_array($result)  //關聯數組和下標數組;
     mysqli_fetch_row($result)  //下表數組;
     mysqli_fetch_object($result)  //對象
     //關閉資源
     mysqli_close($link);

2、面向對象:mysql與php的連接類;

3、數據庫分頁

    mysql 索引 事務
    批量插入數據: insert into 表名(字段1,,,,字段n) select 字段1 from test;
    無符號約束:unsigned  用於int型
    索引:
      創建索引  create index 索引名 on 表名(字段名(length));==
      查看索引  show index from 表名;==
      刪除索引  alter table 表名 drop  index 索引名;
      優點:可以增加經常查詢的字符的查詢效率
      缺點:在建立表格的時候,效率降低
    事務:
      開啓事務:begin;
        mysqli_query('begin');
      提交事務:commit;
         mysqli_query('commit');
      事務回滾:rollback;
        mysqli_query('rollback');
      事務結束:end
         mysqli_query('end');
    分頁:
       起始位置:
          nowPage  當前頁   everyRow 每頁的條數
         startRow=(nowPage-1)*everyRow
    步驟:
       1、從select * from 表名 limit 起始位置,每頁的條數
       2、獲得數據:
            1. 在action裏面設置每一頁顯示幾條;
            2、當前頁get請求獲得;
            3、起始位置=(當前頁-1)*每頁的條數;
            4、獲得分頁的信息
               上一頁  當前頁-1  當前頁=1時,上一頁等於1;
               下一頁:當前頁+1;當前頁=總頁數時,下一頁爲當前頁
               總頁數 ceil(總條數/每頁條數)
               總條數:通過sql語句從數據庫獲得
       3、
            
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章