一、資料庫表
1. 新建資料庫
2. 新建資料庫表
create table 表名(列名1 資料型別 [約束條件] ,列名2 資料型別 [約束條件] ,…… ) ''' 建立一個demo1表 a列資料型別為int,是主鍵 b列資料型別為char,該列的資料必須唯一不可重複 c列資料型別為短整型samllint, 該列必須非空 d列資料型別為可變字串,無約束條件 ''' create table demo1(a int primary key , b char(3) unique , c smallint not null , d varchar(30) ) ''' 建立一個參照demo1的表demo2 demo2中的y列是參照了被參照表demo1中的主碼a ''' create table demo2(x int primary key , y int , foreign key(y) references demo1(b) )
3. 資料庫表操作
- 修改基本表
# 修改表名 alter table 表名 rename 新表名 # 新增列 alter table 表名 add [column] 新列名 資料型別 約束 # 示例,為demo1表新增一列e ALTER TABLE demo1 ADD e INT not null # 刪除列 alter table 表名 drop [column] 列名 # 示例,刪除demo1中的列e alter table demo1 drop [column] e # 修改列 alter table 表名 modify column 列名 資料型別 # 修改資料型別 alter table 表名 change column 原始列名 新列名 資料型別 # 修改列名
- 刪除基本表
drop table 表名
4. 資料庫表索引
# 建立索引 create index 索引名 on 表名(列名) # 主鍵不能用create index建立索引 alter table 表名 ADD INDEX 索引名(列名) # 修改表建立索引 # 修改索引 # mysql沒有修改索引的操作,可以先刪除原始索引再新建一個同名索引 # 刪除索引 ALTER TABLE 表名 DROP INDEX 索引名
二、資料查詢操作
# 列查詢 select 列名1[,列名2…] from 表名 select 列名 新列名 from 表名 # 可以修改查詢結果展示時候的列名 # 帶條件列查詢 select 列名 from 表名 where 查詢條件 # 消除取值重複的行 select distinct 列名 from 表名 # order by select 列名 from 表名 where 查詢條件 order by 列名 [DESC|ASC] # 對查詢結果進行排序,預設為ASC升序 # 聚集函式 ''' count(*) #統計元組個數 count([distinct|all] 列名) # 統計一列中值的個數(去重/全部) sum([distinct|all] 列名) # 計算一列的總和(數值型) avg([distinct|all] 列名) # 計算一列的平均值(數值型) max([distinct|all] 列名) # 求最大值 min([distinct|all] 列名) # 求最小值 ''' select count(*) from 表名 # 查詢表中資料個數 select count(列名) from 表名 # 統計某一列的值的個數 select avg(列名) from 表名 # 統計該列的平均值 # group by子句 select 列名 from 表名 group by 列名 # 對查詢結果進行分組,該列中值相同的為一組 select 列名 from 表名 group by 列名 having 條件 # 條件查詢,再對查詢結果分組。where 與group by不能同用。 # 連線查詢 select 表1.列名…, 表2.列名… from 表1, 表2 where 表1.某列名=表2.某列名 # 示例:student存放學生資訊,course存放選課資訊,現在需要查詢學生對應的選課資訊(哪個學生選了哪門課) select student.name, course.name from student, name where student.studentId=course.studenId # 左外連線 select 表1.列名…, 表2.列名… from 表1 left outer join 表2 where 表1.某列名=表2.某列名