MySQL基础---增删改查语法
一、DDL-數據定義語言,操作數據庫(CRUD)和表(CRUD)
1 創建數據庫(指定字符集)
create database 數據庫名稱 character set utf8; 數據庫和表修改都是 Alter 查看都是show 刪除都是drop2 創建表
create table 表名稱(字段名 數據類型,字段名 數據類型,... ...字段名 數據類型 );二、DML-數據操作語言,對表中的數據進行增刪改
1 添加數據
– 給指定字段添加數據值
– 批量添加多條數據
insert into 表名(字段名,字段名,...) values (值1,值2,...),(值1,值2,...),...;insert into 表名 values (值1,值2,...),(值1,值2,...),...;注意:值和字段要一一對應,個數一樣,類型和長度要符合字段要求。
2 修改數據
– 帶條件修改
– 不帶條件修改,修改當前列所有數據【慎用】
update 表名 set 字段名=值,字段名=值,...;3 刪除數據
– 帶條件刪除
– 不帶條件刪除,刪除表中所有數據【慎用】
delete from 表名;三、DQL-數據查詢語言,對表中的數據進行查詢
1 查詢全部數據
– 查詢指定字段
– 查詢所有字段
select * from 表名;– 查詢字段取別名
select 字段名 AS 別名,字段名 別名,... from 表名;例子:
-- 查詢商品名稱和庫存,庫存數量在原有基礎上加10。進行null值判斷。起別名為getsum[AS可以省略] -- 如果第一個參數的表達式 expression 為 NULL,則返回第二個參數的備用值 SELECT NAME,IFNULL(stock,0)+10 AS getsum FROM product; SELECT NAME,IFNULL(stock,0)+10 getsum FROM product;– 說明:ifnull(字段名,0) 如果該字段的值是null,那么用0代替參與四則運算。
2 按條件查詢
– 條件連接符:and or
select * from 表名 where 字段名>=值1 and 字段名<=值2;– between 值1 and 值2 等價于 where 字段名>=值1 and 字段名<=值2;
select * from 表名 where 字段名>=值1 and 字段名<=值2;– 等價于
select * from 表名 where 字段名 between 值1 and 值2;– in()查詢
select * from 表名 where 字段名=值1 or 字段名=值2 or 字段名=值3;– 等價于
select * from 表名 where 字段名 in(值1,值2,值3);– like模糊查詢: where 字段名 like ‘帶占位符的字符串’;
– 占位符: _表示一個字符的占位符,%表示任意個數字符的占位符
3 聚合函數
4 分組查詢
關鍵字:group by 字段名
例子:
-- 分組查詢-- 按照品牌分組,獲取每組商品的總金額【按照誰分組,就展示哪個字段,*則默認展示第一個(分組寫*無意義)】 SELECT brand,SUM(price) FROM product GROUP BY brand;-- 對金額大于4000元的商品,按照品牌分組,獲取每組商品的總金額 SELECT brand,SUM(price) FROM product WHERE price >4000 GROUP BY brand;-- 對金額大于4000元的商品,按照品牌分組,獲取每組商品的總金額,只顯示總金額大于7000元的 SELECT brand,SUM(price) AS getsum FROM product WHERE price >4000 GROUP BY brand HAVING getsum>7000;where和having的區別?
分組之前使用where,分組之后篩選使用having
5 排序查詢
關鍵字:order by 字段名 ASC/DESC,字段名 ASC/DESC,…
說明1:只有前面的排序過程中兩個值相等,才會按照后面的字段去排序。
說明2:如果不寫ASC/DESC,那么默認是ASC升序。
例子:
-- 排序查詢 -- 按照庫存升序排序 SELECT *FROM product ORDER BY stock ASC-- 查詢名稱中包含手機的商品信息。按照金額降序排序 SELECT *FROM product WHERE NAME LIKE '%手機%' ORDER BY price DESC;-- 按照金額升序排序,如果金額相同,按照庫存降序排列 SELECT *FROM product ORDER BY price ASC,stock DESC;-- 對金額大于4000元的商品,按照品牌分組,獲取每組商品的總金額,只顯示總金額大于7000元的、并按總金額降序排序 SELECT brand,SUM(price) AS getsum FROM product WHERE price >4000 GROUP BY brand HAVING getsum>7000 ORDER BY getsum DESC;6 分頁查詢
關鍵字:limit 當前頁數據索引,每頁條數; – 表中的數據索引從0開始
當前頁數據索引=(當前頁-1)*每頁條數;
– LIMIT當前頁數索引,每貝顯示的條數;
– 公式:當前頁數索引=(當前頁數-1)*每頁顯示的條數
– 表中的數據索引從0開始
– 分頁語句在最后
例子:
-- 每頁顯示3條數據 (1-1) -- 第一頁 (1-1)*3 SELECT * FROM product LIMIT 0,3;-- 第二頁 (2-1)*3 SELECT * FROM product LIMIT 3,3;-- 第三頁 (3-1)*3 SELECT * FROM product LIMIT 6,3;四、MySql常見數據類型
| int | 整數類型 | int(5)–>最大整數五位數,也就是99999 |
| double/float | 小數類型 | 如果需要指定小數的長度,那么可以這么寫: 列名 double(數據總位數,小數位數); 例如:price double(5,2),表示最大值是999.99 |
| date | 日期類型 | 只包含年月日,yyyy-MM-dd |
| datetime | 日期+時間 | 包含年月日時分秒 yyyy-MM-dd HH:mm:ss |
| timestamp | 時間戳類型 | 包含年月日時分秒 yyyy-MM-dd HH:mm:ss,不賦值默認為系統時間毫秒值 |
| varchar | 字符串類型 | 該類型必須指定字符串的最大長度,例如:name varchar(20); |
總結
以上是生活随笔為你收集整理的MySQL基础---增删改查语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么现在很少人推荐神舟电脑了为什么很少
- 下一篇: 宇宙高清电脑壁纸桌面(宇宙高清壁纸图片)