一、數據庫管理系統(DataBase Management System,DBMS):指一種操做和管理數據庫的大型軟件,用於創建、使用和維護數據庫,對數據庫進行統一管理和控制,以保證數據庫的安全性和完整性。用戶經過數據庫管理系統訪問數據庫中表內的數據。mysql
二、SQL通用語法: 四大天王(int、double、varchar、date)
sql
l、 SQL語句能夠單行或多行書寫,以分號結尾 二、 可以使用空格和縮進來加強語句的可讀性 三、 MySQL數據庫的SQL語句不區分大小寫,建議使用大寫,例如:SELECT * FROM user。 四、 一樣可使用/**/的方式完成註釋
注:varchar是可變字符類型。數據庫
三、主鍵:用於標識當前記錄的字段。它的特色是非空,惟一。在開發中通常狀況下主鍵是不具有任何含義,只是用於標識當前記錄。安全
四、開啓服務方式 dos窗口敲命令:services.msc 或者 net start mysql 中止操做: net stop mysql函數
sql語句:ui
一、建立一個表:編碼
CREATE TABLE zhangwu ( id INT PRIMARY KEY AUTO_INCREMENT, -- 帳務ID name VARCHAR(200), -- 帳務名稱 money DOUBLE, -- 金額 );
二、插入表記錄:spa
INSERT INTO zhangwu(id,name,money) VALUES (1,'吃飯支出',247); INSERT INTO zhangwu(id,name,money) VALUES (2,'工資收入',12345);
三、查詢指定字段信息:命令行
select id,name from zhangwu;
四、查詢表中全部字段:設計
select * from zhangwu;
五、distinct用於去除重複記錄:
select distinct money from zhangwu;
六、別名查詢,使用的as關鍵字,as能夠省略:
表別名格式: select * from 表名 as 別名; 或 select * from 表名 別名; 列別名格式: select 字段名 as 別名 from 表名; 或 select 字段名 別名 from 表名; 表別名: select * from zhangwu as zw; 列別名: select money as m from zhangwu; 或 select money m from zhangwu;
注:別名能夠給表中的字段,表設置別名。 當查詢語句複雜時,使用別名能夠極大的簡便操做。
條件查詢:
格式 :select 字段 from 表名 where 條件
舉個栗子:查詢全部吃飯支出記錄
SELECT * FROM zhangwu WHERE name = '吃飯支出';
七、建立數據表和字段的技巧,假如表名叫users,那麼建立字段(用戶編號,用戶姓名,用戶地址)就用表名的首字母+字段的英文來建立,即:uid、uname、uaddress。
八、將編號列設置爲主鍵約束,來保證列的數據惟一性,非空性。數據庫有一我的性化設計,讓主鍵列數據實現自動增加。
九、alter table biao1 + add 是追加新字段 ,modify 是修改某字段的數據類型,而change是修改某字段的名字 和數據類型。
十、修改表結構:
CREATE TABLE biao1( bid INT PRIMARY KEY AUTO_INCREMENT, bname VARCHAR(20), baddress VARCHAR(200) );/*建立數據表*/ ALTER TABLE biao1 ADD bhobby VARCHAR(200);/*表追加字段*/ ALTER TABLE biao1 MODIFY bhobby INT; /*改字段數據類型*/ ALTER TABLE biao1 CHANGE bhobby btel INT;/*改字段名字和數據類型*/ ALTER TABLE biao1 DROP btel;/*表刪除某字段*/ RENAME TABLE biao1 TO newbiao1;/*修改表名*/ DESC newbiao1;/*查看錶結構*/ SHOW TABLES; /*查看全部表*/ DROP TABLE users;/*刪除數據表*/
十一、添加數據:注意問題(主鍵,字符串類型用單引號)
CREATE TABLE product( -- 主鍵列,自動增加 pid INT PRIMARY KEY AUTO_INCREMENT, -- 商品名字,可變長度,非空 pname VARCHAR(100) NOT NULL, -- 商品價格,double類型 price DOUBLE )
十二、插入商品數據的幾種方式:
INSERT INTO product (pname,price) VALUES ('筆記本',4399.08); INSERT INTO product (pname,price) VALUES ('日內瓦',299.08), ('蒼老師',99.08);
1三、更新數據:修改條件的幾種方式:
UPDATE product SET price = 100,pname='黑白電視' WHERE pid=6; UPDATE product SET price = 2000 WHERE pid=2 OR pid=7; UPDATE product SET price = 1431.00 WHERE pid IN(1,3,4); UPDATE product SET price = 998.00 WHERE pid NOT IN (1);
1四、命令行(GBK)亂碼現象,select後漢字會亂碼顯示,而mysql安裝的字符編碼是utf-8 ,解決方法: dos輸入 :set names 'gbk';
1五、數據查詢:
CREATE TABLE zhangwu ( id INT PRIMARY KEY AUTO_INCREMENT, -- 帳務ID zname VARCHAR(200), -- 帳務名稱 zmoney DOUBLE -- 金額 ); INSERT INTO zhangwu(id,zname,zmoney) VALUES (1,'吃飯支出',247); INSERT INTO zhangwu(id,zname,zmoney) VALUES (2,'工資收入',12345); INSERT INTO zhangwu(id,zname,zmoney) VALUES (3,'服裝支出',1000); INSERT INTO zhangwu(id,zname,zmoney) VALUES (4,'吃飯支出',325); INSERT INTO zhangwu(id,zname,zmoney) VALUES (5,'股票收入',8000); INSERT INTO zhangwu(id,zname,zmoney) VALUES (6,'打麻將支出',8000); INSERT INTO zhangwu(id,zname,zmoney) VALUES (7,NULL,5000); /* 查詢指定列數據 */ SELECT zname,zmoney FROM zhangwu; SELECT * FROM zhangwu; SELECT zname FROM zhangwu; /* 查詢數據去重 */ SELECT DISTINCT zname FROM zhangwu; /* 查詢從新命名列 */ SELECT zname AS 'name' FROM zhangwu; /* 查詢數據中,直接進行數學運算 列對數字進行計算 */ SELECT(1+1); SELECT zname,zmoney+1000 AS 'zmoneySum' FROM zhangwu; SELECT zmoney FROM zhangwu WHERE zmoney>1000; SELECT zmoney FROM zhangwu WHERE zmoney>=2000 AND zmoney<=5000; SELECT zmoney FROM zhangwu WHERE zmoney BETWEEN 2000 AND 5000; SELECT zmoney FROM zhangwu WHERE zmoney=1000 OR zmoney=3500 OR zmoney=5000; SELECT zmoney FROM zhangwu WHERE zmoney IN (1000,3500,5000); /* like模糊查詢 查詢字段名字,五個字符,不爲空,爲空 */ SELECT * FROM zhangwu WHERE zname LIKE '%支出%'; SELECT * FROM zhangwu WHERE zname LIKE '_____'; SELECT * FROM zhangwu WHERE zname IS NOT NULL; SELECT * FROM zhangwu WHERE NOT (zname IS NULL); SELECT * FROM zhangwu WHERE zname IS NULL; /* 查詢帳務表,價格進行升序[asc]默認 /降序[desc] */ SELECT * FROM zhangwu ORDER BY zmoney; SELECT * FROM zhangwu ORDER BY zmoney DESC; SELECT * FROM zhangwu WHERE zname LIKE '%支出%' ORDER BY zmoney DESC; /* 使用聚合函數查詢計算。總記錄數 */ SELECT COUNT(*) AS 'count' FROM zhangwu; /* 使用聚合函數統計全部支出的總金額 */ SELECT SUM(zmoney) FROM zhangwu WHERE zname LIKE '%支出%'; /* 使用聚合函數獲取最大值/最小值 */ SELECT MAX(zmoney) FROM zhangwu; /* 使用聚合函數獲取平均值 */ SELECT AVG(zmoney) FROM zhangwu; /* 分組查詢 having和where的區別在於having是分組後對數據進行過濾,而where是分組前過濾 */ SELECT zname,SUM(zmoney) AS 'getsum' FROM zhangwu WHERE zname LIKE '%支出%' GROUP BY zname ORDER BY getsum DESC; SELECT SUM(zmoney) AS 'getsum',zname FROM zhangwu WHERE zname LIKE '%支出%' GROUP BY zname HAVING getsum>5000; ;