DataBase(28)

一、數據庫管理系統(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;
;

 

 

相關文章
相關標籤/搜索