好程式設計師Java分享MySQL之SQL入門(一)
好程式設計師 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中常見的資料型別。
2)小數型別
3) 日期/時間型別
3) 字串型別
4) 二進位制型別
表的操作
建立表:
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,會在下章介紹。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2646099/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java培訓分享如何快速入門Java程式設計程式設計師Java
- 好程式設計師Java培訓分享如何快速入門Java程式設計師Java
- 好程式設計師Java教程分享Java之設計模式程式設計師Java設計模式
- 好程式設計師Java分享SQL語言之索引程式設計師JavaSQL索引
- 好程式設計師Java培訓分享SpringBoot入門篇程式設計師JavaSpring Boot
- 好程式設計師Java學習路線分享Redis快速入門程式設計師JavaRedis
- 好程式設計師Java培訓分享零基礎快速入門Java程式設計師Java
- 好程式設計師分享java設計模式之享元模式程式設計師Java設計模式
- 好程式設計師分享MyBatis之動態SQL語句程式設計師MyBatisSQL
- 好程式設計師Java教程分享MySQL目錄結構程式設計師JavaMySql
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 好程式設計師Java教程分享Java面試題之Hibernate程式設計師Java面試題
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 好程式設計師Java培訓分享演算法入門到精通之-演算法概述程式設計師Java演算法
- 好程式設計師Java分享JVM類載入機制程式設計師JavaJVM
- 好程式設計師Java分享Mybatis必會的動態SQL程式設計師JavaMyBatisSQL
- 好程式設計師Java分享SpringMVC之@ResponseBody註解程式設計師JavaSpringMVC
- 好程式設計師web前端分享web前端入門知識程式設計師Web前端
- 好程式設計師分享自學大資料入門乾貨程式設計師大資料
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師Java培訓分享MySQL算術運算子程式設計師JavaMySql
- 好程式設計師Java學習路線分享Java面試題之載入機制程式設計師Java面試題
- 好程式設計師Java教程分享Java面試妙招程式設計師Java面試
- 好程式設計師Java教程分享Java語法程式設計師Java
- 好程式設計師Java教程分享Java難點解析之泛型程式設計師Java泛型
- 好程式設計師Java培訓分享演算法入門到精通之02演算法複雜度(一)程式設計師Java演算法複雜度
- 好程式設計師大資料培訓分享之MySQL資料庫SQL簡介程式設計師大資料MySql資料庫
- 好程式設計師Java教程分享List介面程式設計師Java
- 好程式設計師Java教程分享javaweb框架程式設計師JavaWeb框架
- 好程式設計師Python培訓分享基礎入門Django程式設計師PythonDjango
- 好程式設計師Java教程分享Vue外掛之Axios程式設計師JavaVueiOS
- 好程式設計師Java培訓分享Java面試題集合篇一程式設計師Java面試題
- 好程式設計師Java分享Java開發常用規範技巧一程式設計師Java
- 好程式設計師Java教程分享Java之包裝類與常用類程式設計師Java
- 好程式設計師Java教程分享Java開發工具程式設計師Java
- 好程式設計師Java培訓分享Java面試題之Java集合篇三程式設計師Java面試題
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- 好程式設計師Java培訓分享20個Java程式設計師基礎題程式設計師Java