好程序員Java分享MySQL之SQL入門(一)

前言:各類版本的數據庫中,有一種通用的語言用於管理數據庫中的數據,它就是SQL,本章咱們將學習基本的SQL語句。
       
SQL的概述
Structured Query Language 結構化查詢語言,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統。
各類主流的數據庫系統都對SQL規範做了某些編改和擴充。因此,實際上不一樣數據庫系統之間的SQL不能徹底相互通用,但大部分是相同的,後面咱們學習的是MySQL的版本,掌握SQL主要語法以後,要遷移到其它數據庫也是比較容易的。
結構化查詢語言包含6個部分:
一:數據查詢語言(DQL:Data Query Language):
其語句,也稱爲「數據檢索語句」,用以從表中得到數據,肯定數據怎樣在應用程序給出。保留字SELECT是DQL(也是全部SQL)用得最多的動詞,其餘DQL經常使用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其餘類型的SQL語句一塊兒使用。
二:數據操做語言(DML:Data Manipulation Language):
其語句包括動詞INSERT,UPDATE和DELETE。它們分別用於添加,修改和刪除表中的行。也稱爲動做查詢語言。
三:事務處理語言(TPL):
它的語句能確保被DML語句影響的表的全部行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:數據控制語言(DCL):
它的語句經過GRANT或REVOKE得到許可,肯定單個用戶和用戶組對數據庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對錶單個列的訪問。
五:數據定義語言(DDL):
其語句包括動詞CREATE和DROP。在數據庫中建立新表或刪除表(CREAT TABLE 或 DROP TABLE);爲表加入索引等。DDL包括許多與人數據庫目錄中得到數據有關的保留字。它也是動做查詢的一部分。
六:指針控制語言(CCL):
它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操做。
本章咱們主要介紹的是DDL和DML。
 
MySQL數據庫的操做
建立數據庫的基本語法是:
create database 數據庫名;
還能夠給數據庫指定默認的字符集以及排序規則:
create database 數據庫名
default character set 字符集 collate 排序規則;
選擇數據庫
use 數據庫名;
修改數據庫的字符集和排序規則:
alter database 數據庫名
default character set  字符集 collate 排序規則;
刪除數據庫:
drop database 數據庫名;
刪除時檢查數據庫是否存在:
drop database if exists 數據庫名;
代碼示例:
1.-- 刪除數據庫
2.drop database if exists java1903;
3.-- 建立數據庫
4.create database java1903
5.default character set utf8mb4
6.collate utf8mb4_general_ci;
7.-- 使用數據庫
8.use java1903;
 
MySQL常見的數據類型
建立好數據庫後,咱們就須要建表,建表咱們須要設置字段的數據類型,咱們先來了解MySQL中常見的數據類型。
類型名稱
說明
存儲需求
TINYINT
很小的整數
1個字節
SMALLINT
小的整數
2個宇節
MEDIUMINT
中等大小的整數
3個字節
INT (INTEGHR)
普通大小的整數
4個字節
BIGINT
大整數
8個字節
2)小數類型
類型名稱
說明
存儲需求
FLOAT
單精度浮點數
4 個字節
DOUBLE
雙精度浮點數
8 個字節
DECIMAL (M, D),DEC
壓縮的「嚴格」定點數
M+2 個字節
3) 日期/時間類型
類型名稱
日期格式
日期範圍
存儲需求
YEAR
YYYY
1901 ~ 2155
1 個字節
TIME
HH:MM:SS
-838:59:59 ~ 838:59:59
3 個字節
DATE
YYYY-MM-DD
1000-01-01 ~ 9999-12-3
3 個字節
DATETIME
YYYY-MM-DD HH:MM:SS
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
8 個字節
TIMESTAMP
YYYY-MM-DD HH:MM:SS
1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC
4 個字節
3) 字符串類型
類型名稱
說明
存儲需求
CHAR(M)
固定長度非二進制字符串
M 字節,1<=M<=255
VARCHAR(M)
變長非二進制字符串
L+1字節,在此,L< = M和 1<=M<=255
TINYTEXT
很是小的非二進制字符串
L+1字節,在此,L<2^8
TEXT
小的非二進制字符串
L+2字節,在此,L<2^16
MEDIUMTEXT
中等大小的非二進制字符串
L+3字節,在此,L<2^24
LONGTEXT
大的非二進制字符串
L+4字節,在此,L<2^32
ENUM
枚舉類型,只能有一個枚舉字符串值
1或2個字節,取決於枚舉值的數目 (最大值爲65535)
SET
一個設置,字符串對象能夠有零個或 多個SET成員
一、二、三、4或8個字節,取決於集合 成員的數量(最多64個成員)
4) 二進制類型
類型名稱
說明
存儲需求
BIT(M)
位字段類型
大約 (M+7)/8 字節
BINARY(M)
固定長度二進制字符串
M 字節
VARBINARY (M)
可變長度二進制字符串
M+1 字節
TINYBLOB (M)
很是小的BLOB
L+1 字節,在此,L<2^8
BLOB (M)
小 BLOB
L+2 字節,在此,L<2^16
MEDIUMBLOB (M)
中等大小的BLOB
L+3 字節,在此,L<2^24
LONGBLOB (M)
很是大的BLOB
L+4 字節,在此,L<2^32
表的操做
建立表:
create table 表名
(
字段名 數據類型 [約束],
字段名 數據類型 [約束],
....
)
主要的約束類型有:
primary key                主鍵,表中只能有一個,不能重複,不能爲空
not null                  非空,必須填寫
unique                        惟一,不能重複
auto_increment        自動增加,必須是整數類型,不須要手動插入
foreign key                外鍵,創建表之間的引用關係
刪除表:
drop table 表名;
刪除表時進行檢查:
drop table if exists 表名;
修改表,添加字段:
alter table 表名 add column 字段名 數據類型;
修改表,刪除字段:
alter table 表名 drop column 字段名;
查看錶結構:
desc 表名;
 
代碼示例:
9.-- 刪除表
10.drop table if exists tb_student;
11.-- 建立學生表
12.create table tb_student
13.(
14.        stu_id int primary key auto_increment,
15.        stu_name varchar(20) not null,
16.        stu_age int not null,
17.        stu_gender varchar(1) not null,
18.        stu_address varchar(200)
19.);
 
 
數據操做語言DML
數據操做語言有插入、刪除和更新語句組成。
單行插入:
insert into 表名(字段名,字段名,字段名..) values(值,值,值..);
多行插入
insert into 表名(字段名,字段名,字段名..)
values(值,值,值..),(值,值,值..),(值,值,值..);
將一張表數據插入另外一張表
insert into 表1(字段名,字段名,字段名..)
select 字段名,字段名,字段名 from 表2;
刪除全部數據
delete from 表名;
清空表
truncate table 表名;
帶條件的刪除
delete from 表名 [where 條件];
更新
update 表名 set 字段 = 值,字段 = 值... [where 條件];
代碼示例:
20.-- 插入一行學生記錄
21.insert into tb_student(stu_name,stu_age,stu_gender,stu_address)
22.values('趙六',30,'男','上海');
23.-- 插入多行學生
24.insert into tb_student(stu_name,stu_age,stu_gender,stu_address)
25.values('陳七',20,'男','武漢'),('陳大七',28,'男','上海'),('陳小七',18,'男','北京');
26.-- 刪除學號爲3的學生
27.delete from tb_student where stu_id = 3;
28.-- 所有刪除
29.delete from tb_student;
30.-- 清空表
31.truncate table tb_student;
32.-- 更新陳七的年齡爲23,性別爲女
33.update tb_student set stu_age = 23,stu_gender = '女'
34.where stu_name = '陳七';
 
總結
本章咱們學習了SQL語言中的DDL和DML,能實現建表建表和數據的增刪改操做,還有一個重要的查詢操做,也就是DQL,會在下章介紹。
相關文章
相關標籤/搜索