資料庫及SQL相關
資料庫和SQL
資料庫:一個存放資料的倉庫,按照一定的資料結構來儲存的。使用者可以對檔案中的資料執行新增、擷取、更新、刪除等操作。
SQL:結構化查詢語言(Structured Query Language),是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關係資料庫系統同時也是資料庫指令碼檔案的副檔名
SQL的分類
DDL: 資料庫定義語言, 與資料庫/表結構: create, drop, alter
DML: 資料操縱語言: 操作表資料 insert update delete
DCL: 資料控制語言: 設定使用者的訪問許可權 安全
DQL: 資料查詢語言: select from where
資料庫相關操作
-
建立資料庫: create database 資料庫的名字
create database leecore;
-
刪除資料庫 :drop database 資料庫名字
drop database leecore;
-
修改資料庫: alter database character set 字符集
alter database leecore character set utf8 ;
-
檢視資料庫:
檢視所有資料庫
show databases;
-
檢視資料庫定義: show create database 資料庫名字
show create database leecore ;
-
檢視當前正在使用的資料庫
select database();
-
選中資料庫: use 資料庫的名字
use leecore
資料表的操作
1. 建立表 :
create table 表名(
列名 列的型別(長度) 約束,
列名1 列的型別(長度) 約束,
列名2 列的型別(長度) 約束
);
create table user(id int primary key auto_increment, name varchar(20) not null, sex int, info varchar(20) );
- 列的約束
主鍵約束: primary key
唯一約束: unique
非空約束: not null
2. 刪除表 : drop table 表名
drop table user;
3. 修改表:
新增列 :alter table 表名 add 列名 列的型別 列的約束
alter table user add age int ;
修改列 : alter table 表名 modify 列名 列的型別 列的約束
alter table user modify info varchar(30);
修改列名 : alter table 表名 change 舊列名 新列名 列的型別 列的約束
alter table user change info userinfo varchar(20) not null;
刪除列 : alter table 表名 drop 列名
alter talbe user drop userinfo;
修改表的字符集 : alter table 表名 character set 字符集
alter table user character set utf8;
修改表名 : rename table 舊錶名 to 新的表名
rename table user to puser
4. 查看錶 :
檢視當前資料庫中所有的表名:
show tables;
查看錶的定義結構/建立語句(建表語句):show create table 表名:
show create table user;
查看錶的結構:desc 表名
desc user;
資料的增刪改查
1. 插入資料:
insert into 表名(列名1,列名2)values(值1,值2);
insert into 表名 values(值1,值2);
批量插入:insert into 表名values(值1,值2),(值1,值2),(值1,值2);
以下表為例

image.png

image.png
insert into user values(null,'餅乾',24,'木子餅乾');
2. 刪除資料
delete from 表名 [where 條件]
delete from user where name='餅乾';
truncate table 表名: 先刪除表,再重建表
3. 更新資料
update 表名 set 列名=值, 列名=值 [where 條件]
update user set age=3 where name='餅乾';
4. 查詢資料
-
4.1. 通用格式: select [distinct] [*] [列名1,列名2] from 表名 where 條件 group by ..having 條件過濾 order by排序
select * from user where name='餅乾';
-
4.2. 關係運算符:
<> 不等於 ;
!= 不等於;
select * from user where age > 0;
-
4.3. 邏輯運算子:
and or not ;in 在範圍中
select * from user where age in(3);
-
4.4. 模糊查詢 like:
_ 表示的單個字元
% 表示的是多個字元
查詢所有姓餅兩個字的學生成績。
select * from user where name like '餅%';
查詢所有姓餅的學生成績。
select * from user where name like '餅%';
別名查詢 as
- 4.5. 聚合函式:
sum : 求和
select sum (age) from user;
avg() : 平均值
select avg(age) from user;
count() : 統計數量
select count(id) from user where age>3;
max() : 最大值
select max(age) from user;
min() : 最小值
select min(age) from user;
- 4.6. 排序 order by:
asc : ascend 升序
select * from user order by age ascend
desc : descend 降序
select * from user order by age desc
- 4.7. 分組 group by