中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

mysql如何創(chuàng)建管理表

這篇“MySQL如何創(chuàng)建管理表”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“mysql如何創(chuàng)建管理表”文章吧。

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,提供網(wǎng)站設(shè)計制作、做網(wǎng)站,網(wǎng)頁設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

  • 命名規(guī)則

數(shù)據(jù)庫名、表名不得超過30個字符,變量名限制為29個
必須只能包含 A–Z, a–z, 0–9, _共63個字符
數(shù)據(jù)庫名、表名、字段名等對象名中間不要包含空格
同一個MySQL軟件中,數(shù)據(jù)庫不能同名;同一個庫中,表不能重名;同一個表中,字段不能重名
必須保證你的字段沒有和保留字、數(shù)據(jù)庫系統(tǒng)或常用方法沖突。如果堅持使用,請在SQL語句中使用`(著重號)引起來
保持字段名和類型的一致性:在命名字段并為其指定數(shù)據(jù)類型的時候一定要保證一致性,假如數(shù)據(jù)類型在一個表里是整數(shù),那在另一個表里可就別變成字符型了
  • 數(shù)據(jù)類型

  • mysql如何創(chuàng)建管理表

  • 常用類型

  • mysql如何創(chuàng)建管理表

  • 代碼案例:數(shù)據(jù)庫相關(guān)

# 創(chuàng)建數(shù)據(jù)庫
#方式1:
CREATE DATABASE mytest1;  # 創(chuàng)建的此數(shù)據(jù)庫使用的是默認的字符集
# 查看創(chuàng)建數(shù)據(jù)庫的結(jié)構(gòu)
SHOW CREATE DATABASE mytest1;

#方式2:顯式了指名了要創(chuàng)建的數(shù)據(jù)庫的字符集
CREATE DATABASE mytest2 CHARACTER SET 'gbk';

# 方式3(推薦):如果要創(chuàng)建的數(shù)據(jù)庫已經(jīng)存在,則創(chuàng)建不成功,但不會報錯。
CREATE DATABASE IF NOT EXISTS mytest2 CHARACTER SET 'utf8';

# 如果要創(chuàng)建的數(shù)據(jù)庫不存在,則創(chuàng)建成功
CREATE DATABASE IF NOT EXISTS mytest3 CHARACTER SET 'utf8';

# 管理數(shù)據(jù)庫
# 查看當(dāng)前連接中的數(shù)據(jù)庫都有哪些
SHOW DATABASES;

#切換到指定的數(shù)據(jù)庫
USE atguigudb;

# 查看當(dāng)前數(shù)據(jù)庫中保存的數(shù)據(jù)表
SHOW TABLES;

# 查看當(dāng)前使用的數(shù)據(jù)庫
SELECT DATABASE() FROM DUAL;

# 查看指定數(shù)據(jù)庫下保存的數(shù)據(jù)表
SHOW TABLES FROM mysql;

# 修改數(shù)據(jù)庫
# 更改數(shù)據(jù)庫字符集
ALTER DATABASE mytest2 CHARACTER SET 'utf8';

# 刪除數(shù)據(jù)庫
#方式1:如果要刪除的數(shù)據(jù)庫存在,則刪除成功。如果不存在,則報錯
DROP DATABASE mytest1;

# 方式2:推薦。如果要刪除的數(shù)據(jù)庫存在,則刪除成功。如果不存在,則默默結(jié)束,不會報錯
DROP DATABASE IF EXISTS mytest1;
  • 創(chuàng)建數(shù)據(jù)表

#方式1:
CREATE TABLE IF NOT EXISTS myemp1(   #需要用戶具備創(chuàng)建表的權(quán)限。
id INT,
emp_name VARCHAR(15), #使用VARCHAR來定義字符串,必須在使用VARCHAR時指明其長度。
hire_date DATE
);

# 方式2:基于現(xiàn)有的表,同時導(dǎo)入數(shù)據(jù)
CREATE TABLE myemp2
AS
SELECT employee_id,last_name,salary
FROM employees;

# 查詢舊表中的數(shù)據(jù),并指定別名,作為新表中的數(shù)據(jù)
# 查詢語句中字段的別名,可以作為新創(chuàng)建的表的字段的名稱
CREATE TABLE myemp3
AS
SELECT e.employee_id emp_id, e.last_name lname, d.department_name
FROM employees e JOIN departments d
ON e.department_id = d.department_id;

# 創(chuàng)建一個表employees_copy,實現(xiàn)對employees表的復(fù)制,包括表數(shù)據(jù)
CREATE TABLE employees_copy
AS
SELECT *
FROM employees;

# 創(chuàng)建一個表employees_blank,實現(xiàn)對employees表的復(fù)制,不包括表數(shù)據(jù)
CREATE TABLE employees_blank
AS
SELECT *
FROM employees
#where department_id > 10000;   # 方式1
WHERE 1 = 2;
  • 修改表

# 查看表結(jié)構(gòu)
DESC myemp1;

# 添加一個字段
ALTER TABLE myemp1
ADD salary DOUBLE(10,2); #默認添加到表中的最后一個字段的位置

ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST; # 添加到首位

ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name; # 添加到指定字段之后

# 修改一個字段:數(shù)據(jù)類型、長度、默認值
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25);

ALTER TABLE myemp1
MODIFY emp_name VARCHAR(35) DEFAULT 'aaa';

# 重命名一個字段
ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE(10,2);

ALTER TABLE myemp1
CHANGE email my_email VARCHAR(50);

# 刪除一個字段
ALTER TABLE myemp1
DROP COLUMN my_email;

# 重命名表
# 方式1:
RENAME TABLE myemp1 TO myemp11;

# 方式2:
ALTER TABLE myemp2 RENAME TO myemp12;
  • 刪除表

# 不光將表結(jié)構(gòu)刪除掉,同時表中的數(shù)據(jù)也刪除掉,釋放表空間
DROP TABLE IF EXISTS myemp2;
  • 清空表

# 清空表,表示清空表中的所有數(shù)據(jù),但是表結(jié)構(gòu)保留
TRUNCATE TABLE employees_copy;
  • DCL 中 COMMIT 和 ROLLBACK

# COMMIT:提交數(shù)據(jù)。一旦執(zhí)行COMMIT,則數(shù)據(jù)就被永久的保存在了數(shù)據(jù)庫中,意味著數(shù)據(jù)不可以回滾
# ROLLBACK:回滾數(shù)據(jù)。一旦執(zhí)行ROLLBACK,則可以實現(xiàn)數(shù)據(jù)的回滾?;貪L到最近的一次COMMIT之后
  • 對比TRUNCATE TABLE和DELETE FROM

# 相同點:都可以實現(xiàn)對表中所有數(shù)據(jù)的刪除,同時保留表結(jié)構(gòu)。
# 不同點:
#    TRUNCATE TABLE:一旦執(zhí)行此操作,表數(shù)據(jù)全部清除。同時,數(shù)據(jù)是不可以回滾的。
#    DELETE FROM:一旦執(zhí)行此操作,表數(shù)據(jù)可以全部清除(帶WHERE時也可以不全部清除)。同時,數(shù)據(jù)是可以實現(xiàn)回滾的。
  • DDL 和 DML 的說明

① DDL的操作一旦執(zhí)行,就不可回滾。指令SET autocommit = FALSE對DDL操作失效。(因為在執(zhí)行完DDL操作之后,一定會執(zhí)行一次COMMIT。而此COMMIT操作不受SET autocommit = FALSE影響的。)

# 演示:DELETE FROM 
#1)
COMMIT;    # 提交1次
#2)
SELECT * FROM myemp3;    # 可以查詢到數(shù)據(jù)
#3)
SET autocommit = FALSE;    # 為了可以回滾,執(zhí)行該命令
#4)
DELETE FROM myemp3;    # 清空數(shù)據(jù),但該ddl操作會執(zhí)行1吃commit操作,導(dǎo)致第3步失效
#5)
SELECT * FROM myemp3;    # 再次查詢,無數(shù)據(jù)
#6)
ROLLBACK;    # 回滾操作
#7)
SELECT * FROM myemp3;    # 再次查詢,無數(shù)據(jù);說明不能回滾

② DML的操作默認情況,一旦執(zhí)行,也是不可回滾的。但是,如果在執(zhí)行DML之前,執(zhí)行了SET autocommit = FALSE,則執(zhí)行的DML操作就可以實現(xiàn)回滾。

# 演示:TRUNCATE TABLE
#1)
COMMIT;    # 提交1次
#2)
SELECT * FROM myemp3;    # 可以查詢到數(shù)據(jù)
#3)
SET autocommit = FALSE;    # 為了可以回滾,執(zhí)行該命令
#4)
TRUNCATE TABLE myemp3;    # 清空數(shù)據(jù)
#5)
SELECT * FROM myemp3;    # 再次查詢,無數(shù)據(jù)
#6)
ROLLBACK;    # 回滾操作
#7)
SELECT * FROM myemp3;    # 再次查詢,有數(shù)據(jù);說明可以回滾
  • TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務(wù)日志資源少,但 TRUNCATE 無事務(wù)且不觸發(fā) TRIGGER,有可能造成事故,故不建議在開發(fā)代碼中使用此語句

  • 測試MySQL8.0的新特性:DDL的原子化

CREATE TABLE book1(    # 創(chuàng)建數(shù)據(jù)庫
book_id INT ,rr
book_name VARCHAR(255)
);

SHOW TABLES;    # 顯示book1

DROP TABLE book1, book2;    # 刪除這2個數(shù)據(jù)庫,但只有book1,所以刪除book1成功,刪除book2失敗,最后整個操作回滾;在mysql5.7中則不會回滾

以上就是關(guān)于“mysql如何創(chuàng)建管理表”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:mysql如何創(chuàng)建管理表
文章網(wǎng)址:http://www.rwnh.cn/article18/ghcggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、服務(wù)器托管、小程序開發(fā)面包屑導(dǎo)航、商城網(wǎng)站、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
达孜县| 昌平区| 于田县| 石景山区| 寿光市| 兴化市| 玉林市| 镇巴县| 汉川市| 拉孜县| 克山县| 庆云县| 双鸭山市| 观塘区| 洞头县| 青浦区| 公主岭市| 治县。| 溆浦县| 桂东县| 铜陵市| 额济纳旗| 织金县| 玛曲县| 和平县| 金华市| 柳江县| 宁城县| 察哈| 常州市| 临邑县| 平陆县| 临潭县| 岳西县| 肥西县| 饶阳县| 黄龙县| 诏安县| 高邮市| 牟定县| 河源市|