MYSQL基礎知識總結

一、數據庫特點:結構化,無有害,無重複;

二、數據庫優點:按一定的數據模型組織,描述和儲存;可爲各種用戶共享,冗餘度小,節省儲存空間易擴展,編寫有關數據應用程序。

三、常用Dos操作指令:

安裝數據庫:mysqld -install,開啓/關閉數據庫:start mysql/net stop,監聽端口信息:netstat -a,登陸數據庫:mysql -uroot -p,顯示默認數據庫:use dbname,顯示所有數據庫:show databases,顯示默認數據庫中的所有表:show tables,放棄正在輸入的指令:\c,顯示命令清單:\h,退出mysql程序:\q,查看mysql服務器狀態信息:\s,mysql版本信息:SELECT version(),打開表結構:desc table。

四、數據庫語法組成:

1.DDM(Data Definition Language數據庫定義語言):create table,drop table,alter table等

2.DCL(Data Control Language數據控制語言):grant,revoke等;

3.DML(Data Manipulation Language數據操作語言)查詢SELECT、插入insert、update修改、刪除delete;

五、MYSQL三種常用的數據類型:文本:char,varchar,text;數字,日期和時間類型;

六、常見的完整性約束:

primary key 主鍵;unique 唯一性約束;not null非空約束;auto_increment整數列自增;默認值:default;

七、常用操作

  • 顯示錶結構:DESC 表名;
  • 刪除表操作:drop table 表名
  • 除數據庫操作:drop database 數據庫名
  • 更改表結構操作:alter table 表名 action;(action可以是以下操作)
  • add 列名 建表語句[first/after]--在表中添加列,制定其位置;
  • add primary key (列名)-- 添加一個主鍵,如果主鍵已存在,會報錯;
  • add foreign key (列名) reference 表名 (列名);-- 爲表添加一個外鍵;
  • alter列名 set default 默認值;-- 更改指定列的默認值
  • drop 列名 -- 刪除一列
  • drop primary key -- 刪除主鍵
  • engine 類型名 -- 改變表的類型
  • rename as 新表名 -- 改變表名
  • change 舊列名 新列名 [first /after]-- 更改列的類型和名稱
  • modify 和change相同;

八、運算符

  • 比較運算符:<>,BETWEEN ,IN,<=>,BINARY(區分大小寫)
  • 位運算符:<< :a<<b 將a向左移動b個二進制位,a*2的b次方;與>>相反

九、集函數

1.記數函數: count(列名)計算元素的個數

2.求和函數: sum(列名) 對某一列的值求和,但屬性必須是整型

3.計算平均值:avg(列名)對某一列的值計算平均值

4.求最大值: max(列名)找出某一列的最大值

5.求最小值: min(列名)找出某一列的最小值

十、增刪改查基本操作:

1.創建數據庫school並設定類型utf-8;

create database school character set utf8;

2.刪除數據庫school

drop database school

3.創建學生表

create table student(

id int not null auto_increment primary key,//添加id列,並設定int型自增,主鍵

sname varchar(20) not nul

);

4.添加列 sex

alter table student add column sex char(2) not null after name;

5.刪除列 sex

alter table student drop column sex;

6.修改列名,類型

alter table student change sex ssex bit not null;

7.數據庫插入數據

insert into student (name,sex,age) values ('張三','男',18);

8.更新表數據

update student set sex='女' where id = 3;

9.刪除表中數據

delete FROM student where id = 2;

10.查詢所有信息

SELECT * FROM student;

11.外鍵關聯

alter table score add constraint FK_score foreign key(id)reference student (sid)

12.複製表

create table sscore SELECT * FROM score;

13.複製表結構

create table sscore SELECT * FROM score where 0=1;

14.更換表名

alter table 表名 rename 新表名;

15.設置默認值(之前字段內容不會改變)

alter table student alter sage set default'18';

16.創建索引:

  • create index IX_customer on customer(cusname)(給customer的cusname創建一個索引)
  • alter table customer add index IX_customer(cusname)(給創建好的表中添加一個索引)

十一、查詢記錄操作

  • FROM子句:指定查詢數據的表
  • where子句:查詢數據的過濾條件
  • group by子句:對where子句的查詢進行分組
  • having子句:對分組後進行條件限制
  • order by子句:對查詢進行排序操作 DESC,ASC;
  • limit對查詢目錄進行限制數目.

十二、經典查詢:

1.查詢學生的詳細記錄:SELECT * FROM student;

2.查詢信息系、美術系和計算機系學生的姓名和性別

  • SELECT sname,ssex FROM student where sdept in (‘信息系','美術','計算機系');
  • SELECT sname,ssex FROM student where sdept='信息系' or sdept='美術' or sdept='計 算機系'

3.查詢選修了課程的學生人數 :SELECT count(*) FROM score;

4.查詢年齡在20-23(包括20,23)的學生姓名

SELECT sname FROM student where sage between 20 and 23;

5.查詢年齡最大的三個學生的姓名和年齡,或第四五個學生

SELECT sname,sage FROM student order by sage desc limit3(limit 3,2);

6.查詢學生平均成績在70分以上的同學的姓名和平均成績

SELECT s.sname,avg(s2.score)FROM student s,score s2 where s.id = s2.sid groupby s2.score having avg(s2.score)>70;

7.查詢所有同學的學號,姓名,選課書,總成績;

SELECT t.id,t.sname,COUNT(s.cid),SUM(s.score)FROM student t, scores s WHEREt.id = s.sid GROUP BY t.id;

8.查詢姓“李”的老師的個數

SELECT COUNT(*) FROM teacher WHERE tname LIKE '李%';

9.查詢所有課程成績小於60分,同學的學號、姓名

SELECT t.id,t.sname FROM student t,scores s WHERE t.id=s.sid AND s.score<60;

10.查詢所有,課程成績小於60分的同學的學號、姓名;

SELECT t.id,t.sname FROM student t,scores s WHERE t.id =s.sid GROUP BYs.score<60;

11.查詢每門課程的平均成績,結果按平均成績升序排列,平均成績相同時,按課程號降序

排列

SELECT c.cname,AVG(s.score)FROM course c,scores s WHERE c.id=s.`cid`GROUP BYs.cid ORDER BY AVG(s.`score`),s.`cid` DESC;

12.查詢任何一門課程成績在70分以上的姓名、課程名稱和分數;(只要有一個就可以)

SELECT c.cname,s.score FROM course c,scores s WHERE c.id = s.`cid` ANDs.`score`<60;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章