學習資料庫筆記二,資料庫筆記
一
表與資料庫與MYSQL資料庫伺服器(table&database&mysqlserver)?
表由多行多列的資料群組成 (一張表建立好表頭,表結構就算建立好了,剩下的只剩往裡填資料)
資料庫由多張表組成 tables-->database
資料庫伺服器中有多個資料庫 databases-->mysql server
二
什麼是SQL語言?
是結構化查詢語言 (SQL)(Structured Query Language)
它是一種what類型語言,我們平時使用的是who類型語言,如JAVA要想實現些功能,你必須告訴它,你這一步該怎麼樣,如果遇到什麼情況又該怎麼樣。而SQL語言是what類型的,你直接告訴它你要什麼,它就會給你返回值。
SQL語言分哪三類?
DML資料庫操作語言,它約佔平時操作的80%,是對已有資料進行查詢、修改、刪除的操作(其中查詢又占它的80%),是站在使用者的角度。
DDL資料庫定義語言,佔15%,建立表、建立庫、建立視圖(建立時就需要定義結構,所以建立也叫定義),站在建設者的角度(專案經理建表就是專案經理的角度)
DCL資料庫控制語言,佔5%,控制資料庫的許可權,監視你有沒有操作這個資料庫的許可權。目前使用者有權查看哪些庫,無權查看哪些,站在管理員的角度。
三
insert操作
行是資料庫中最原子的單位,任何操作都是針對行的,即使是一列,或是多列也是基於對哪行的哪列進行操作。
可以插入指定列
也可以插入全部列
但是列和值一定要對應,不想添加的值可以不寫,它會以NULL來填充
一張表建立後表結構是固定的,你可以插入全部列,也可以插入部分列。
文法:插入到哪張表,要插入哪幾列,這幾列都插入什麼內容 (這裡不用where id,如果你插入時沒有指定插入的id,那麼會自動遞增,如果指定的id已經存在,會報錯)
insert into user (id,name,age) values (3,'lilei',18);
如果想給所有列都添加值,可以把前面括弧的列名省略
insert into user values(5,'Lucy',16);
查看錶結構的語句:desc user;
update操作
文法:更新哪張表,修改成什麼,更改哪條資料
例一 update user set age=16 where name='Lucy'; 更新修改的條件不一定非得是id,可以是name或其它
例二 update user set name='Lisi',age='28' where schoolcode='15';
非常嚴重的錯誤寫法,沒寫要改哪條:
update user set age = 18; 這樣寫整個表的age都被改成了18,工作中要這樣寫,啥也別說,趕緊跑路吧。
*Oracle和MySQL等資料庫一般可以設定新手模式,不寫where條件不允許提交,以防資料丟失。
delete操作
在關係型資料庫中,一行是最原子的單位,要刪除只能刪除一整行,如果只刪除一個欄位,那是修改,得用update,把你要刪除的那行set成Null
所以在delete文法中不用寫你刪除的欄位,因為一刪就是一行,刪除語句相對來說最簡單。
文法:刪除哪張表,的哪一行資料。
delete from user where id=9;
嚴重錯誤,忘記寫條件!!
delete from user; 會把整個user表的資料都刪光,刪完接著跑路。。
select操作(占DML資料庫操作語言的80%,也是最難的部分,要靠資料查詢模型)
最簡單的查詢操作是select * from user; 但現實工作中不能用*,幾條語句還好,現在工程當中都是幾百萬條資料,用*來查詢,瞬間就把記憶體擠爆了,簡直是胡鬧,應該用哪條資料查哪條,只會select * from 的人,工資水平也就3K了。
文法:要查什麼(哪幾列),哪張表,第幾行記錄
select * from user where id=9;
查詢資料的時候,你可以查詢它的多行
select * from user where id=3;
select * from user where id>=3;
你還可以查它的哪幾列
select name,age from user where id>=5;
查一列
select name from user where id=5;
資料庫的操作都是對列內容進行操作,然後指定是對哪一行的列進行操作!