SQL 語句基本用法


摘自(https://blog.csdn.net/One_L_Star/article/details/97130887)

目錄

一、SQL 分類

二、數據庫操作

1、創建數據庫

2、查看數據庫

3、刪除數據庫

4、切換數據庫

三、表操作

1、創建表

2、主鍵約束

3、查看表

4、刪除表

5、修改表結構

6、插入表數據

7、更新表數據

8、刪除表數據

四、查詢語句

1、基本查詢

2、排序查詢

3、聚合查詢

4、分組查詢

一、SQL 分類

  • 數據定義語言(DDL):用來定義數據庫對象 ==> 數據庫、表、列等。關鍵字:create、alter、drop 等
  • 數據操作語言(DML):用來對數據庫中表的記錄進行更新。關鍵字:insert、delete、update 等
  • 數據控制語言(DCL):用來定義數據庫的訪問權限和安全級別以及創建用戶
  • 數據查詢語言(DQL):用來查詢數據庫中表的記錄。關鍵字:select、from、where 等

常用數據類型


二、數據庫操作

1、創建數據庫

create database 數據庫名; #默認編碼創建
create database 數據庫名 character set 字符集; #指定編碼創建

 

 2、查看數據庫

show databases; #查看所有數據庫
show database 數據庫名; #查看某個數據庫定義的信息
select database(); #查看正在使用的數據庫

 

 3、刪除數據庫

drop database 數據庫名; #刪除指定數據庫

 

 4、切換數據庫

use 數據庫名; #切換指定數據庫

 

 三、表操作

1、創建表
在創建表之前,先要指定在哪個數據庫中創建表,即先使用數據庫,使用:use 數據庫名;來指定

#創建表
create table 表名(
字段名 類型(長度) 約束,
字段名 類型(長度) 約束
);

eg:
#創建學生表
CREATE TABLE S(
Sno char(9) primary key, #主鍵約束
Sname varchar(8) not null,
Ssex char(2)
);

2、主鍵約束

主鍵是用於標識當前記錄的字段,是飛空的、唯一的,在開發過程中,主鍵是不具備任何含義,只是用於標識當前記錄,創建主鍵有兩種方法,一種是在創建表時,在字段后面加上 primary key;另一種是在創建表時,在表創建的最后來指定主鍵。

(1) 創建主鍵

  • 在字段后面加上 primary key

create table tablename(                              

id int primary key, #字段后面加上主鍵約束 
....                                                               
)                                                                  

表的最后指定主鍵

create table tablename(             
id int,                                          
....                                              
primary key(id) #指定主鍵          
)                                                  

(2) 刪除主鍵
alter table 表名 drop primary key;
alter table tablename drop primary key;                      
3、查看表

查看數據庫中所有表

show tables;

  • 查看表結構:

desc 表名;
4、刪除表
drop table 表名;
5、修改表結構
(1) 修改表添加列

  • alter table 表名 add 列名 類型(長度) 約束;

eg:為學生表 S 添加新的字段 Sage smallint

alter table S add Sage smallint;
(2) 修改表列的類型和長度以及約束

  • alter table 表名 modify 列名 類型(長度) 約束;

eg:對學生表的 Sname 以及其長度和約束進行修改

alter table S modify Sname varchar(50) not null;
(3) 修改表列名

  • alter table 表名 change 舊列名 新列名 類型(長度) 約束;

eg:對學生表的 Sname 列名修改為 Name varchar(20)

alter table S change Sname Name varchar(20);
(4) 修改表刪除列

  • alter table 表名 drop 列名;

eg:對學生表的 Sage 進行刪除

alter table S drop Sage;
(5) 修改表名

  • rename table 表名 to 新表名;

eg:修改表名 S 為 Student

rename table S to Student;
(6) 修改表的字符集

  • alter table 表名 character set 字符集;

eg:將 Student 表編碼表改為 gbk  

alter table Student character set gbk;

6、插入表數據

語法:

  • insert into 表(列名1,列名2,列名3...) values (值1,值2,值3....);         #向表中插入某些列
  • insert into 表(值1,值2,值3...);       #向表中插入所有列

eg:往學生表中插入數據

insert into Student(Sno,Sname,Ssex) values('15450132','一顆星','男');
insert into Student(Sno,Sname,Ssex) values('15450133','兩顆星','男');
insert into Student values('15450134','三顆星','男');
insert into Student values('15450135','四顆星','男');
注意:

  • 插入的數據應與對應的數據類型相同
  • 數據的大小應在列的長度范圍內
  • 在 values 中列出的數據位置必須與被加入列的排列位置對應
  • 除了數值類型外,其他的字段類型的值必須使用引號引起
  • 如果要插入空值,可以不寫字段或者插入 null
  • 對於自動增長的列操作時,直接插入 null 值即可

7、更新表數據

語法:

  • update 表名 set 字段名=值,字段名=值;
  • update 表名 set 字段名=值,字段名=值 where 條件;

eg:修改 Student 學生表中的 Sname 中的值

update Student set Sname='星星';
update Student set Sname='派大星' where Sno='15450132';
注意:

  •  列名的類型與修改的值要一致
  • 修改值的時候不能超過最大長度
  • 值如果是字符串或者日期需要加 ‘ ’

8、刪除表數據

語法:

  • delete from 表名 [where 條件];
  • truncate table 表名;

eg:刪除表中數據

delete from Student where Sname='派大星'; #刪除一條數據
truncate table Student; #刪除表中所有數據
delete from Student; #刪除表中所有數據

四、查詢語句

1、基本查詢
(1) 查詢指定字段

  • select 字段1,字段2,...from 表名;

select Sno,Sname from Student;
(2) 查詢表中所有字段

  • select * from 表名;

select * from Student;
(3) 除去重復記錄查詢

  • select distinct 字段 from 表名;

select distinct Sname from Student;
(4) 別名查詢
別名可以給表中的字段,表設置別名,在查詢語句復雜的時候,使用別名極大的簡便操作

  • select * from 表名 as 別名;
  • select * from 表名 別名;
  • select 字段名 as 別名 from 表名;
  • select 字段名 別名 from 表名;

2、排序查詢
使用 order by 進行升序降序排序

  • select * from 表名 order by 字段 ASC;        #升序(默認)
  • select * from 表名 order by 字段 DESC;        #降序

select * from Student order by Sage asc; #升序
select * from Student order by Sage desc; #降序

3、聚合查詢

聚合函數查詢是縱向查詢,它是對一列的值進行計算,然后返回一個單一的值,聚合函數會忽略空值,列出五個常用的聚合函數。

  • count:統計指定列不為NULL的記錄行數
  • sum:計算指定列的數值和
  • max:計算指定列的最大值
  • min:計算指定列的最小值
  • avg:計算指定列的平均值

#查詢學生表中有多少條記錄
select count(*) from Student;

#查詢學生表中年齡大於15歲的有多少條記錄
select count(*) from Student where Sage>15;

#查詢學生表中所有年齡的總和
select sum(Sage) from Student;

#查詢學生表中最大和最小的年齡
select max(Sage),min(Sage) from Student;

#查詢學生表中所有年齡的平均值
select avg(Sage) from Student;
4、分組查詢
分組查詢是指使用group by字句對查詢信息進行分組,格式如下:

  • select 字段1,字段2......from 表名 group by 字段 having 條件;

eg:對學生表分姓名統計,求出每個學生對應姓名的年齡

select Sname,sum(Sage) from Student group by Sname;
————————————————
版權聲明:本文為CSDN博主「oneLstar」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/One_L_Star/article/details/97130887


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM