mysql學習筆記

來源:互聯網
上載者:User

標籤:左右   資料操作   time   ref   desc   lte   ima   語句   regexp   

1、SQL語句分為資料操作語言(DML)和資料定義語言 (Data Definition Language)(DDL)

資料操作語言部分:

  • select 擷取資料
  • update 更新資料
  • delete刪除資料
  • insert into 插入資料

資料定義語言 (Data Definition Language)部分:

  • create database 建立新資料庫
  • alter database 修改資料庫
  • create table建立新表
  • alter table 修改資料表
  • drop table 刪除表
  • create index 建立索引
  • drop index 刪除索引

2、 文法
(1)select語句
  SELECT 列名稱 FROM 表名稱
  列名可以是*,會查詢出所有列
(2)select distinct語句
  SELECT DISTINCT 列名稱 FROM 表名稱
  只會查詢出值不同的行
(3)where子句
  SELECT 列名稱 FROM 表名稱 WHERE 列 運算子 條件值
  為別的語句添加條件,運算子有=,!=,>,<,<=,>=,between,like
  條件值如果是字串用‘‘括起來
  like的使用文法是select 列名稱 from 表名稱 where 列名稱 like 匹配條件
  匹配條件是‘a%‘,就是篩選出這個列中以a開頭的所有行,%是萬用字元
  and和or,用於分隔條件,and是與,or是或
(4)order by語句
  SELECT 列名稱 FROM 表名稱 order by 列名稱
  會根據列進行升序操作
  SELECT 列名稱 FROM 表名稱 order by 列名稱 desc
  會根據列進行降序操作
(5)insert into語句
  insert into 表名稱 (列1,列2) values(值1,值2)
  insert into 表名稱 values(值1,值2)
(6)update語句
  更新某一列
    update 表名稱 set 列名稱=值2 where 列名稱=值1
  更新某幾列
    update 表名稱 set 列1=值1,列2=值2 where 列1=值3
(7)delete語句
  刪除某一行
    delete from 表名稱 where 列1=值1
  刪除所有行,保留表結構
    delete from 表名稱
  delete * from 表名稱
(8)top子句和 top percent子句
  選取前2條記錄
  select 列名稱 from 表名稱 limit 2
  mysql不支援top子句,top percent子句也不支援
(9)in子句
  匹配多個值
  select 列名稱 from 表名稱 where 列名稱 in (值1,值2)
(10)between子句
  mysql的between查詢結果會包括值1和值2,資料庫不同這個結果可能不同
  select 列名稱 from 表名稱 where 列名稱 between 值1 and 值2
  在between前加個not,會查詢出相反的結果
  select 列名稱 from 表名稱 where 列名稱 not between 值1 and 值2

3、
(1)萬用字元
  使用萬用字元是一般是搭配like子句
  %代表任意多字元
  _代表任意一個字元
  [^asd]/[!asd]除了asd之外的任意一個字元(在mysql中!是沒用的,必須要用^)
  [asd]asd中的任意一個字元(在mysql中like是不能跟[]搭配的,[]必須要跟regexp搭配)
  當使用regexp時,匹配田間就不是%和_,而是^(非),*(匹配前面的子運算式0次或多次),+(匹配前面的子運算式一次或多次),{n}(例如a{2}匹配2個a),{n,m}(例如a{2,3}匹配a最少2個最多3個)
(2)alias別名
  表名的別名
    select 列名稱 from 表名稱 as 表別名
  列的別名
    select 列名稱 as 列別名 from 表名
(3)關聯2個表
  可以通過外部索引鍵關聯
    select 表1.列1 表2.列1 from 表1,表2 where 表1主鍵名=表2列名
  也可以通過join:
    inner join:在表中存在至少一個匹配,返回該行
    left join:從左表返回所有行,即使右表沒有匹配
    right join:從右表返回所有行,即使左表沒有匹配
    full join:會返回所有行,即使左右表都沒有匹配
(4)合并多個結果集
  union語句
  合并不重複的值
    select語句1 union select語句2
  合并不重複的值
    select語句1 union all select語句2
(5)把列插入到另一個表中
  select 表名稱 into 新表名[資料庫名] from 舊錶名
(6)sql約束
  not null 如果不向欄位添加值,就無法更新資料或插入資料
  unique唯一,但是可為空白 建表時在最後一行加上unique key(列名)即可
    撤銷unique約束alter table 表名稱 drop index 列名稱
  primary key主鍵
    撤銷主鍵使用alter table 表名稱 drop primary key
  foreign key 外鍵 foreign key (本表列名) references 其他表名稱(其他表主鍵)
    撤銷外鍵約束alter table 表名稱 drop foreign key 外鍵名
  check約束 用於約束列中值得範圍 check(類名稱>0)類中的值要大於0
    撤銷check約束alter table 表名稱 drop constraint 被check約束列名稱
  defuault預設
    將預設值添加到有default約束的列
    撤銷default約束alter table 表名稱 alter 列名稱 drop default
(7)索引
  create index語句用於建立索引,所有可以使用重複的值,索引值不能是數字
  create index 索引名 on 表名稱(列名稱)
  建立唯一索引:2行不能擁有一樣的索引值
  create unique index 索引名 on 表名稱(列名稱)
  刪除索引alter table 表名稱 drop index 索引名
(8)改變表結構操作
  刪除表中所有資料:drop table 表名稱
  刪除表中所有資料,保留表結構 :truncate table 表名稱
  添加列:alter table 表名稱 add 列名稱 資料類型
  刪除列:alter table 表名稱 drop column 列名稱
  改變列資料類型:alter table 表名稱 alter column 列名稱 新資料類型
(9)auto-increment自增,只有主鍵才能使用這個約束,每次更新加1,從1開始
  改變起始值:alter table 表名稱 auto-increment=值1
(10)時間函數
  now()當前日期時間
  curdate()當前日期
  curtime()目前時間
  date_format()格式化時間
(11)函數
  select 函數名(列名稱) from 表名稱
  avg()平局值
  count()行數
  max()最高值
  min()最低值
  sum()總和
  group by語句 用於對結果集進行分組,通常用於合計函數,合并相同名稱的行
  select 列名稱 sum(列名稱) from 表名稱 group by 列名稱
  having子句:合計函數不能增加where條件判斷,要使用having子句
  select 列名稱,函數名(列名稱) from 表名稱 having 函數名(列名稱)<200
  ucase()轉為大寫
  select ucase(列名稱) from 表名稱
  lcase()轉為小寫
  mid()從欄位中提取字元
  select mid(列名,起始位置,提取長度)from 表名
    提取長度屬性是可選的
  len()返回欄位長度
  round()格式化小數
  select round(列名稱,小數位元)from 表名稱

 

mysql學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.