mysql中数据定义和数据控制语言_DB-数据操控与定义语言
數據操控語言
數據操控語言主要用于對表中數據的增刪改。使用insert可對表進行插入數據,update可修改表中的數據或結構,delete則可進行刪除。
首先看一下我們在何表中操作:
1,insert
插入單行數據可使用:insert into 表名(字段名1,字段名2 ,...)values (值1,值2,...)
——要注意這里的字段名順序要和值的順序一一對應。同時若某字段類型可為空,則可忽略填寫該字段。
插入多行數據可使用:insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...)
——如若省略填寫目標字段列表則會默認為填寫所有字段。所以輸入數據時,所有字段對應的數據都需要輸入。
例:插入Fallulah的信息INSERT INTO beauty(NAME,phone)
VALUES('Fallulah',888888);
#其他為空的或自增的可以不填
例:插入Sirsa Shekim的信息INSERT INTO beauty VALUES
(NULL,'Sirsa Shekim',NULL,NOW(),666666,NULL,NULL);
個人覺得還是指定字段名好用一點。
2,update
語法:update 表名 set 字段名1=新值、字段名2=新值、... where 篩選條件
——注意如若不加條件則會進行整表的修改。
例:將Sirsa Shekim的電話改成868686UPDATE beauty SET phone=868686
WHERE NAME LIKE 'Sirsa Shekim';
3,delete
語法:delete from 表名 where 篩選條件;
——自增列從斷點開始,有返回值,可回滾,支持在多表中刪除。truncate table 表名;
——自增列從1開始,無返回值,不可回滾。
自增列及回滾后續會介紹。DELETE be FROM beauty be
LEFT JOIN boys b
ON be.`boyfriend_id`=b.`id`
WHERE b.`id` IS NULL;
#delete后面跟著要刪除表的別名
數據定義語言
數據定義語言則一般用于對表或數據庫的處理。可使用create創建表或數據庫,alter修改表或數據庫,而drop則可進行刪除。
對于數據庫create database [if not exists] 庫名;——創建數據庫
alter database 庫名 character set 字符集;——修改數據庫的字符集
drop database [if exists] 庫名;——刪除數據庫
對于數據庫的操作較為單一。
數據類型
在學習對表的操作前,我們先來了解一下這幾種數據類型。
1,數值型整型——int
浮點型——float(m,n)
定點型——dec(m,n)較浮點型其精度較高
——m 表示整數部加小數部的總長,n 表示小數后的位數
這里只提供了幾種常用型,其它的字節呀,無符號呀什么的大家可自行查閱。
2,字符型char——給了固定空間。
varchar——無固定大小,需指定,效率較高。
3,日期型date(4字節)
datetime(8字節)——對時區的變化不是很敏感。
timestamp(4字節)——對時區的變化較敏感。
對于表
1,創建表
語法:create table [IF NOT EXISTS] 表名 (字段名1 字段類型 【字段約束】、字段名2 ...)
字段約束下面會介紹。
2,修改表
語法:alter table 表名(修改表名) rename to 新表名
(修改字段名)change column 舊名+新名+類型
(修改字段類型)modify column 字段名+新類型
(增加字段)add column 字段名+類型
(刪除字段)drop column 字段名
這里的column有時可以省略。
3,刪除表
語法:drop table 表名
4,表的復制
語法:create table 新表 like 舊表——只復制了結構。
create table 新表 select * from 舊表——復制了結構和數據。
常見的字段約束NOT NULL——非空,必須填入數據
DEFAULT——設置默認值
UNIQUE——數據呈唯一性,可為空
PRIMARY KEY——主鍵
FOREIGN KEY——外鍵
主鍵的數據呈唯一性,不可為空。且每張表中只能有一個,但可聯合。
外鍵中從表的數據需來自其關聯主表。且其外鍵列需與主表的關聯列類型一致。因數據來源問題,所以要先插入主表數據再插入從表的。刪除也是同樣的,但也有非常規的方法,即集聯刪除或集聯制空。集聯刪除——在外鍵后加 on delete cascabe 則刪主表時,從表會一起被刪。
集聯制空——在外鍵后加 on delete set null 則刪主表時,從表中相關聯的數據會變為NULL。
如何使用字段約束
對于字段約束,我們可以分為兩大類,這樣在使用時思路能清晰一些。
1,列級約束
對于非空、默認、唯一、主鍵在創建表時,可直接在字段名和類型后面追加約束。(如上面介紹般)
或者利用modify進行添加或修改。(如上面介紹般)
2,表級約束
對于唯一、主鍵、外鍵在創建表時,可跟在所有描述完的字段的最下層。
——【constraint 約束名】 約束類型(字段名)或者利用add添加或修改。ALTER TABLE beauty ADD
CONSTRAINT fy FOREIGN KEY (boyfriend_id) REFERENCES boys(id);刪除時則可用drop(跟于alter后)
自增長列
AUTO_INCREMENT在創建表時,添于約束后即可。
起始值為1,步長為1,步長可修改。
一個表最多一個標識列,且需為數值型(一般為標識序號)。
——通過修改auto_increment_increment可調整步長。參考資料:李玉婷.MYSQL基礎教程.B站資源
封面插圖:Ricardo Polo.B圈設計師
本文作者: ? 高小一
聯系小編:
GXTXG@outlook.com
本文鏈接:
http://adolesce.cn/archives/15.html
版權聲明:本文為博主原創文章,遵循
CC 4.0 BY-SA
版權協議,轉載請附上原文出處鏈接和本聲明。
總結
以上是生活随笔為你收集整理的mysql中数据定义和数据控制语言_DB-数据操控与定义语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.7 事件_MySQL 5.
- 下一篇: php mysql建表_mysql建表测