知識點數據庫存儲結構mysql
一個數據庫服務器能夠管理多個數據庫,一般狀況下開發人員會針對每一個應用建立一個數據庫,爲保存應用中實體的數據,會在數據庫中建立多個表(用於存儲和描述數據的邏輯結構),每一個表都記錄着實體的相關信息。sql
知識點從新配置MySQL數據庫
1.經過DOS命令從新配置MySQL,如服務器
set character_set_client = gbk
2.經過my.ini文件從新配置MySQL,如修改文件my.ini的屬性函數
default-character-set=gbk
三、簡述主鍵的做用及其特徵,建立數據表student中 stu_id和course_id兩個字段共同做爲主鍵的SQL語句?oop
知識點主鍵約束spa
主鍵是經過PRIMARY KEY定義的,它能夠惟一標識表中的記錄。它的主要特徵以下:code
1.惟一性:不能有重複值blog
2.非空性:不能爲空值排序
SQL語句:
student( stu_id INT,course_id INT, PRIMARY KEY( stu_id, course_id));
知識點索引的分類
數據庫的索引比如新華字典的音序表,它是對數據庫表中一列或多列的值進行排序後的一種結構,其做用就是提升表中數據的查詢速度。
索引的分類以下:
1.普通索引
2.惟一性索引
3.全文索引
4.單列索引
5.多列索引
6.空間索引
爲name字段創建全文索引:
FULLTEXT INDEX fulltext_name(name)
5.一、在數據庫中建立一個student表用於存儲學生信息,其中字段信息包括id 整型字段,name字符串類型且非空,grade浮點類型,根據字段類型向表中添加3條新記錄?
知識點添加數據
CREATE TABLE student( id INT(4), name VARCHAR(20) NOT NULL, grade FLOAT );
--插入數據
INSERT INTO student(id,name,grade) VALUES(1,'zhangsan',98.5);
5.二、更新student表中grade字段的值,使grade字段的值在原有基礎上都增長10分,但不能超出100分的上限,超出100分的grade值都修改成100?
知識點更新數據
--更新數據
UPDATE student SET grade=grade+10; UPDATE student SET grade=100 where grade>100;
知識點簡單查詢
SELECT [DISTINCT] *|{字段名1, 字段名2, 字段名3,……} FROM 表名 [WHERE 條件表達式1]
[GROUP BY 字段名 [HAVING 條件表達式2]] [ORDER BY 字段名 [ASC|DESC]] [LIMIT [OFFSET] 記錄數]
1) 統計每一個系的男女生人數。
2) 統計人數在10人以上的系。
知識點聚合函數
1)SELECT COUNT(*) AS RENSHU FROM 學生 GROUP BY 性別_ID,系_ID;
2)
SELECT COUNT(*) AS RENSHU ,系_ID FROM 學生 GROUP BY 系_ID HAVING COUNT(*) > 10;
知識點帶EXISTS關鍵字的子查詢
SELECT * FROM department WHERE EXISTS(select did from employee where age > 21);
知識點內鏈接
SELECT p1.* FROM employee p1 JOIN employee p2 ON p1.did=p2.did WHERE p2.name='王紅';
若是在一個鏈接查詢中,涉及到的兩個表是同一個表,這種查詢稱爲自鏈接查詢
1)實現1-10之間數字的遍歷
2)當數字大於10退出遍歷過程
數字在1-10之間時,遍歷數字並進行輸出
知識點存儲過程當中流程控制的使用
DECLARE id INT DEFAULT 0; add_loop:LOOP SET id=id+1; IF id>=10 THEN LEAVE add_loop; END IF; SELECT id; END LOOP add_loop;
知識點事務的隔離級別
1.READ UNCOMMITTED是事務中最低的級別,也稱爲髒讀
2.READ COMMITTED只能讀取其它事務已經提交的內容,能夠避免髒讀
3.REPEATABLE READ是MySQL默認的事務隔離級別,它能夠避免髒讀、不可重複讀的問題
4.SERIALIZABLE是事務的最高隔離級別,它會強制對事務進行排序,使之不會發生衝突,從而解決髒讀、幻讀、重複讀的問題。
十一、已知有一張 sales表,表中有上半年的銷量 first_half和下半年的銷量 latter_half。請在sales表上建立一個視圖,查詢出一年的總銷量?
知識點在單表上建立視圖
CREATE VIEW view_sales AS SELECT first_half+ latter_half FROM sales;
知識點修改視圖
一、使用CREATE OR REPLACE VIEW語句修改視圖
在MySQL中,使用CREATE OR REPLACE VIEW語句修改視圖,其基本語法格式以下所示:
CREATE [OR REPLACE ][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement [WITH[CASCADED | LOCAL] CHECK OPTION]
二、使用ALTER語句修改視圖
ALTER語句是MySQL提供的另一種修改視圖的方法,使用ALTER語句修改視圖的基本語法格式以下所示:
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement [WITH[CASCADED | LOCAL] CHECK OPTION]
知識點數據的備份
mysqldump -uroot -pitcast chapter08>d:/chapter08.sql
知識點修改用戶密碼
1.中止MySQL服務器
2.mysqld --skip-grant-tables啓動MySQL服務
3.mysql -u root命令從新登陸
4.經過UPDATE從新設置密碼:
UPDATE mysql.user SET Password=PASSWORD('itcast') WHERE User='root' AND Host='localhost';
5.FLUSH PRIVILEGES;從新加載權限表