1、階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫(kù)階段 2、關(guān)系數(shù)據(jù)庫(kù)分類(lèi):Oracle、MySql、Microsoft SQL Server、SQL Lite 3、核心元素:數(shù)據(jù)庫(kù)(表的集合)、表(行和列組成的二維表格)、行(記錄)、列(字段) 4、SQL語(yǔ)言: DQL數(shù)據(jù)查詢(xún)語(yǔ)言:select、 DDL數(shù)據(jù)定義語(yǔ)言:Create,Drop、 DML數(shù)據(jù)操作語(yǔ)言,insert,update,delte、 TPL事務(wù)處理語(yǔ)言:begin transaction,commit,rollback 5、單行注釋--、多行注釋/*....*/、ctrl+/快速注釋選中的代碼、Ctrl+shift+/選中取消注釋 6、數(shù)據(jù)類(lèi)型: 整數(shù):int,有符號(hào)、無(wú)符號(hào) 小整數(shù)tinyint,有符號(hào)、無(wú)符號(hào) 小數(shù):decimal,decimal(5,2)表示共存5位數(shù),小數(shù)占2位,不能超過(guò)2位,整數(shù)占3位,不能超過(guò)3位 字符串:varchar,varchar(3)表示最多存3個(gè)字符,一個(gè)中文或一個(gè)字母都占一個(gè)字符 日期時(shí)間:datatime,范圍1000-01-01 00:00:00~9999-12-31 23:59:59 語(yǔ)句 1、select now(); 看到如下結(jié)果,代表navicat連接數(shù)據(jù)庫(kù)成功
2、在e表查詢(xún)id,name SELECT id,name FROM e; 3、插入指定字段值 INSERT INTO e (id,name) VALUES(2,'mary'); 4、插入多個(gè)字段值 INSERT INTO e VALUES(6,'e',14),(7,'d',15),(8,'e',16); 5、一條insert插入多條指定字段的記錄 INSERT INTO e(id,name) VALUES(8,'hehe'),(9,'hh'),(10,'mw'); 6、插入三條記錄 INSERT INTO e VALUES(3,'aaa',21); INSERT INTO e (id,name) VALUES(4,'bbb'); INSERT INTO e (name) VALUES ('ccc'); 7、修改表e,所有人的年齡(age字段)改為50 UPDATE e SET age =50; 8、修改表e, id為3的記錄 姓名(name字段)改為'狄仁杰’,年齡(age 字段)改為20 UPDATE e SET name = '狄仁杰', age = 22 WHERE id = 3; SELECT * from e; 9、修改name為mary的記錄為李白 SELECT * FROM e; UPDATE e set name = '李白' WHERE name = 'mary'; 10、id大于10的記錄,長(zhǎng)一歲 UPDATE e SET age=age+1 WHERE id >10; SELECT * FROM e; 11、刪除表c中id為1的記錄 DELETE FROM e WHERE id =1; 12、刪除表e中name為狄仁杰的記錄 DELETE FROM e WHERE name = '狄仁杰'; SELECT * FROM e; 13、刪除年齡大于30的記錄 DELETE FROM e WHERE age >30; 14、使用truncate刪除表中數(shù)據(jù) SELECT * FROM c; TRUNCATE TABLE c; 15、刪除表e DROP TABLE a; 16、表e存在,刪除表e,不存在,則不刪除 DROP TABLE IF EXISTS e; 17、-- 創(chuàng)建表d,字段要求如下: -- id: 數(shù)據(jù)類(lèi)型為 -- int unsigned (無(wú)符號(hào)整數(shù)),Primary key (主鍵),auto_increment(自增長(zhǎng)), -- name 姓名:數(shù)據(jù)類(lèi)型為 VARCHAR(字符串)長(zhǎng)度為10,not null(非空;unique (唯一; -- age 年齡:數(shù)據(jù)類(lèi)型為int (整數(shù)); drop TABLE d; CREATE TABLE d( id int UNSIGNED PRIMARY KEY auto_increment, name VARCHAR(10) not NULL,UNIQUE; age INT); INSERT INTO d (name,age) VALUES ('關(guān)羽',30); -- 插入時(shí)指定id的值 INSERT INTO d (id,name,age) VALUES (6,'曹操',40); SELECT * from d; -- name字段設(shè)置了not null,必須有值,如果不設(shè)置就會(huì)報(bào)錯(cuò) INSERT INTO d (id,age) VALUES (10,77); 18、0或者null作為自增長(zhǎng)字段的占位符, 如果不指定字段,主鍵自增長(zhǎng)字段可以用占位符,0或者null INSERT INTO d (name,age) VALUES ('張三',21); INSERT INTO d (name,age) VALUES ('李四',25); INSERT INTO d VALUES (0,'康熙',25); INSERT INTO d VALUES (NULL,'溥儀',25); 19、Delete、Truncate、Drop 速度,truncate>delete 刪除部分?jǐn)?shù)據(jù)使用delete,注意帶上where字句 如果想保留表而將所有數(shù)據(jù)刪除,自增長(zhǎng)字段恢復(fù)從1開(kāi)始,用truncate DELETE FROM d; TRUNCATE TABLE d; INSERT into d VALUES (0,'張三',10); SELECT * from d; 20、字段的約束: 主鍵: Primary Key、不能重復(fù)、 自增長(zhǎng)、auto_increment,1、值會(huì) 系統(tǒng)維護(hù),自動(dòng)增長(zhǎng);2、0、null自增長(zhǎng)占位符;3、delete和truncate的區(qū)別,刪除后自增長(zhǎng)是否回到1 非空、唯一、默認(rèn)值 21、-- 創(chuàng)建表g, -- 字段要求如下: -- id:數(shù)據(jù)類(lèi)型為int(整數(shù)); -- name 姓名:數(shù)據(jù)類(lèi)型為varchar(字符串)長(zhǎng)度為10; -- age 年齡:數(shù)據(jù)類(lèi)型為int (整數(shù)),default(默認(rèn)值)30 CREATE TABLE g ( id INT PRIMARY KEY auto_increment, name VARCHAR(10), age int DEFAULT 30 ); INSERT INTO g VALUES(1,'mm',0); INSERT INTO g (id,name) VALUES(0,'mw'); 22、-- 如果學(xué)生表students存在,就刪除學(xué)生表students drop table if exists students; -- 創(chuàng)建學(xué)生表students create table students( studentNo varchar(10) primary key, /*學(xué)號(hào),主鍵,值不能重復(fù)*/ name varchar(10), /*姓名*/ sex varchar(1), /*性別*/ hometown varchar(20), /*家鄉(xiāng)*/ age tinyint, /*年齡*/ class varchar(10), /*班級(jí)*/ card varchar(20) /*身份證號(hào)碼*/ ); -- 向?qū)W生表students插入數(shù)據(jù) insert into students values ( '001','王昭君','女','北京','30','1班','11010119903157654'), ( '002','諸葛亮','男','上海','29','2班','31010219904262354'), ( '003','張飛','男','南京','30','3班','32010219903047654'), ( '004','白起','男','安徽','35','4班','340202198505177654'), ( '005','大喬','女','天津','28','3班','120101199204067654'), ( '006','孫尚香','女','河北','25','1班','130502199506137654'), ( '007','百里玄策','男','湖南','25','2班','140102198107277654'), ( '008','小喬','女','河南','25','3班','null'), ( '009','百里守約','男','湖南','31','1班',''), ( '010','妲己','女','廣東','24','2班','440701199607147654'), ( '011','李白','男','北京','18','4班','11020219967147654'), ( '012','孫臏','男','新疆','36','3班','650102198401297655'); 23、查詢(xún)students表中年齡age等于30的姓名name,班級(jí)class SELECT name,class FROM students WHERE age = 30; 24、查詢(xún)表中name(姓名)等于小喬學(xué)生的age年齡 SELECT age from students WHERE name = '小喬'; 25、查詢(xún)30歲以下的學(xué)生記錄 SELECT * from students where age < 30; 26、查詢(xún)家鄉(xiāng)不在北京的學(xué)生 SELECT * FROM students WHERE hometown != '北京'; 27、查詢(xún)學(xué)號(hào)是007的學(xué)生的身份證號(hào)card SELECT card from students WHERE studentNo = '007'; 28、查詢(xún)class 班級(jí)為1班以外的學(xué)生記錄 SELECT * from students WHERE class !='1班'; 29、查詢(xún)age年齡大于25的學(xué)生的name姓名和sex性別 SELECT name,sex from students WHERE age >25; 30、查詢(xún)age年齡小于30,并且sex性別為女的同學(xué)記錄 SELECT * FROM students WHERE age < 30 AND sex = '女'; 31、查詢(xún)sex性別為女或者class 班級(jí)為'1班' 的學(xué)生記錄 SELECT * from students WHERE sex = '女' OR class = '1班'; 32、查詢(xún)hometown 老家非’天津'的學(xué)生記錄 SELECT * FROM students WHERE NOT hometown = '天津'; 33、查詢(xún)hometown 老家是'河南'或'河北'的學(xué)生記錄 SELECT * FROM students WHERE hometown = '河南' Or hometown ='河北'; 34、查詢(xún)class 班級(jí)為1班,并且hometown老家為北京的學(xué)生記錄 SELECT * from students WHERE class = '1班' AND hometown = '北京'; 35、查詢(xún)age年齡非30歲的學(xué)生記錄 SELECT * FROM students WHERE not age = 30; 36、查詢(xún)name 姓名中以’孫'開(kāi)頭的學(xué)生記錄 SELECT * FROM students WHERE name like '孫%'; 37、查詢(xún)name姓名以’孫'開(kāi)頭,且名只有一個(gè)字的學(xué)生記錄 SELECT * FROM students WHERE name like '孫_'; 38、查詢(xún)name 為任意姓,名叫'喬'的學(xué)生記錄 SELECT * from students WHERE name LIKE '%喬'; 39、查詢(xún)name姓名有白字的學(xué)生記錄 SELECT * from students WHERE name LIKE '%白%'; 40、查詢(xún)name姓名為兩個(gè)字的學(xué)生記錄 SELECT * FROM students WHERE name like '__'; 41、查詢(xún)name姓白且年齡大于30的學(xué)生記錄 SELECT * from students WHERE name like '白%' AND age >30; 42、查詢(xún)studentNo學(xué)號(hào)以1結(jié)尾的學(xué)生記錄 SELECT *from students WHERE studentNo LIKE '%1'; 43、查詢(xún)hometown 家鄉(xiāng)是'北京' 或'上海’或'廣東'的學(xué)生記錄 SELECT * FROM students WHERE hometown = '北京' OR hometown = '上海' OR hometown = '廣東'; SELECT * FROM students WHERE hometown IN ('北京','上海','廣東'); 44、查詢(xún)age 年齡為25至30的學(xué)生記錄 SELECT * FROM students WHERE age >=25 AND age <=30; SELECT * FROM students WHERE age BETWEEN 25 and 30; 45、查詢(xún)age在20或25或30的女生記錄 SELECT * from students WHERE sex = '女' and age in (20,25,30); 46、 查詢(xún)age 25 到30 以外的學(xué)生記錄 SELECT * from students WHERE age not BETWEEN 25 AND 30; 47、查詢(xún)card 身份證為null 的學(xué)生記錄 SELECT * from students WHERE card IS null; SELECT * from students WHERE card IS not null; 48、修改age 為25,并且name 為孫尚香的學(xué)生class 為2班 UPDATE students SET class = '2班' WHERE age =25 AND name = '孫尚香'; SELECT * from students; 49、刪除class 為1班,并且age大于30的學(xué)生記錄 DELETE FROM students WHERE class = '1班' AND age >30; SELECT * from students; 50、修改students表中,姓孫的同學(xué),班級(jí)為1班 SELECT * FROM students; UPDATE students SET class = '1班' where name like '孫%'; SELECT * FROM students; 51、刪除students 年齡20-30之間左右的男同學(xué) SELECT * from students WHERE age BETWEEN 20 and 30 and sex = '男'; DELETE FROM students WHERE age BETWEEN 20 and 30 and sex = '男'; 52、查詢(xún)所有學(xué)生記錄,按age年齡從小到大排序 SELECT * FROM students ORDER BY age ASC; SELECT * FROM students ORDER BY age; 52、查詢(xún)所有學(xué)生記錄,按age年齡從大到小排序 SELECT * FROM students ORDER BY age DESC; 53、查詢(xún)所有學(xué)生記錄,按age年齡從大到小排序 -- 年齡相同時(shí),再按studentNo 學(xué)號(hào)從小到大排序 SELECT * from students ORDER BY age DESC,studentNo; 54、查詢(xún)所有男學(xué)生記錄,按class班級(jí)從小到大排序,班級(jí)相同時(shí), -- 再按studentNo 學(xué)號(hào)從大到小排序 SELECT * from students WHERE sex = '男' ORDER BY class,studentNo DESC; 55、sql刪除語(yǔ)句:drop table(刪除表) ,delete from table 刪除表中數(shù)據(jù),truncate from table刪除數(shù)據(jù)(不可恢復(fù)) 56、事務(wù) A: 原子 : 是事務(wù)執(zhí)行的最小單位。不允許分割。事務(wù)的原子性確保動(dòng)作要么全部成功,要么全部失??; C: 一致 : 執(zhí)行事務(wù)的前后,數(shù)據(jù)保持不變 I:隔離 : 并發(fā)訪問(wèn)事務(wù)時(shí),一個(gè)用戶(hù)的事務(wù)數(shù)據(jù)不能被其他事務(wù)所干擾。各并發(fā)事務(wù)之間的數(shù)據(jù)庫(kù)是獨(dú)立的 D:持久 :一個(gè)事物被提交后,他對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)改變時(shí)持久的。即使數(shù)據(jù)庫(kù)發(fā)生故障,也不應(yīng)該對(duì)數(shù)據(jù)有影響 MySQL 事務(wù):主要用于處理操作量大,復(fù)雜度高的數(shù)據(jù)。比如說(shuō),在人員管理系統(tǒng)中,你刪除一個(gè)人員,你既需要?jiǎng)h除人員的基本資料,也要?jiǎng)h除和該人員相關(guān)的信息,如信箱,文章等等,這樣,這些數(shù)據(jù)庫(kù)操作語(yǔ)句就構(gòu)成一個(gè)事務(wù)! 在 MySQL 中只有使用了 Innodb 數(shù)據(jù)庫(kù)引擎的數(shù)據(jù)庫(kù)或表才支持事務(wù)。 事務(wù)處理可以用來(lái)維護(hù)數(shù)據(jù)庫(kù)的完整性,保證成批的 SQL 語(yǔ)句要么全部執(zhí)行,要么全部不執(zhí)行。 事務(wù)用來(lái)管理 insert,update,delete 語(yǔ)句 事務(wù)是必須滿足4個(gè)條件(ACID)::原子性(Atomicity,或稱(chēng)不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱(chēng)獨(dú)立性)、持久性(Durability)。
https://www.runoob.com/mysql/mysql-transaction.html 57、視圖的特點(diǎn): 1.視圖是一個(gè)虛表, 2.視圖就是封裝了一條復(fù)雜查詢(xún)的sql語(yǔ)句集, 3.它與真實(shí)表保持同步,也就是修改視圖會(huì)影響真實(shí)表,修改真實(shí)表也會(huì)影響視圖, 4.視圖可以屏蔽一些敏感信息,起到安全的作用, 5.視圖可以簡(jiǎn)化復(fù)雜查詢(xún), 6.視圖也很方便,對(duì)于一個(gè)特定的操作,不用重新編寫(xiě)sql語(yǔ)句。 總結(jié):視圖多數(shù)情況下是用來(lái)查詢(xún)的,盡量不要修改視圖,因?yàn)闀?huì)導(dǎo)致真實(shí)表的數(shù)據(jù)發(fā)生變化,導(dǎo)致錯(cuò)誤。 https://blog.csdn.net/qq_35971301/article/details/100182365?utm_medium=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control |
|
來(lái)自: 飛絮輕 > 《待分類(lèi)》