久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

共計(jì) 3808 個(gè)字符,預(yù)計(jì)需要花費(fèi) 10 分鐘才能閱讀完成。

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

命名規(guī)則

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

數(shù)據(jù)類型

常用類型

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

#  創(chuàng)建數(shù)據(jù)庫(kù)
#方式 1:CREATE DATABASE mytest1; #  創(chuàng)建的此數(shù)據(jù)庫(kù)使用的是默認(rèn)的字符集
#  查看創(chuàng)建數(shù)據(jù)庫(kù)的結(jié)構(gòu)
SHOW CREATE DATABASE mytest1;
#方式 2:顯式了指名了要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)的字符集
CREATE DATABASE mytest2 CHARACTER SET  gbk 
#  方式 3(推薦):如果要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)已經(jīng)存在,則創(chuàng)建不成功,但不會(huì)報(bào)錯(cuò)。CREATE DATABASE IF NOT EXISTS mytest2 CHARACTER SET  utf8 
#  如果要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)不存在,則創(chuàng)建成功
CREATE DATABASE IF NOT EXISTS mytest3 CHARACTER SET  utf8 
#  管理數(shù)據(jù)庫(kù)
#  查看當(dāng)前連接中的數(shù)據(jù)庫(kù)都有哪些
SHOW DATABASES;
#切換到指定的數(shù)據(jù)庫(kù)
USE atguigudb;
#  查看當(dāng)前數(shù)據(jù)庫(kù)中保存的數(shù)據(jù)表
SHOW TABLES;
#  查看當(dāng)前使用的數(shù)據(jù)庫(kù)
SELECT DATABASE() FROM DUAL;
#  查看指定數(shù)據(jù)庫(kù)下保存的數(shù)據(jù)表
SHOW TABLES FROM mysql;
#  修改數(shù)據(jù)庫(kù)
#  更改數(shù)據(jù)庫(kù)字符集
ALTER DATABASE mytest2 CHARACTER SET  utf8 
#  刪除數(shù)據(jù)庫(kù)
#方式 1:如果要?jiǎng)h除的數(shù)據(jù)庫(kù)存在,則刪除成功。如果不存在,則報(bào)錯(cuò)
DROP DATABASE mytest1;
#  方式 2:推薦。如果要?jiǎng)h除的數(shù)據(jù)庫(kù)存在,則刪除成功。如果不存在,則默默結(jié)束,不會(huì)報(bào)錯(cuò)
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 時(shí)指明其長(zhǎng)度。hire_date DATE
#  方式 2:基于現(xiàn)有的表,同時(shí)導(dǎo)入數(shù)據(jù)
CREATE TABLE myemp2
SELECT employee_id,last_name,salary
FROM employees;
#  查詢舊表中的數(shù)據(jù),并指定別名,作為新表中的數(shù)據(jù)
#  查詢語(yǔ)句中字段的別名,可以作為新創(chuàng)建的表的字段的名稱
CREATE TABLE myemp3
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)建一個(gè)表 employees_copy,實(shí)現(xiàn)對(duì) employees 表的復(fù)制,包括表數(shù)據(jù)
CREATE TABLE employees_copy
SELECT *
FROM employees;
#  創(chuàng)建一個(gè)表 employees_blank,實(shí)現(xiàn)對(duì) employees 表的復(fù)制,不包括表數(shù)據(jù)
CREATE TABLE employees_blank
SELECT *
FROM employees
#where department_id   10000; #  方式 1
WHERE 1 = 2;

修改表

#  查看表結(jié)構(gòu)
DESC myemp1;
#  添加一個(gè)字段
ALTER TABLE myemp1
ADD salary DOUBLE(10,2); # 默認(rèn)添加到表中的最后一個(gè)字段的位置
ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST; #  添加到首位
ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name; #  添加到指定字段之后
#  修改一個(gè)字段:數(shù)據(jù)類型、長(zhǎng)度、默認(rèn)值
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25);
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(35) DEFAULT  aaa 
#  重命名一個(gè)字段
ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE(10,2);
ALTER TABLE myemp1
CHANGE email my_email VARCHAR(50);
#  刪除一個(gè)字段
ALTER TABLE myemp1
DROP COLUMN my_email;
#  重命名表
#  方式 1:RENAME TABLE myemp1 TO myemp11;
#  方式 2:ALTER TABLE myemp2 RENAME TO myemp12;

刪除表

#  不光將表結(jié)構(gòu)刪除掉,同時(shí)表中的數(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ù)庫(kù)中,意味著數(shù)據(jù)不可以回滾
# ROLLBACK: 回滾數(shù)據(jù)。一旦執(zhí)行 ROLLBACK, 則可以實(shí)現(xiàn)數(shù)據(jù)的回滾。回滾到最近的一次 COMMIT 之后 

對(duì)比 TRUNCATE TABLE 和 DELETE FROM

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

DDL 和 DML 的說明

① DDL 的操作一旦執(zhí)行,就不可回滾。指令 SET autocommit = FALSE 對(duì) DDL 操作失效。(因?yàn)樵趫?zhí)行完 DDL 操作之后,一定會(huì)執(zhí)行一次 COMMIT。而此 COMMIT 操作不受 SET autocommit = FALSE 影響的。)
#  演示:DELETE FROM 
COMMIT; #  提交 1 次
SELECT * FROM myemp3; #  可以查詢到數(shù)據(jù)
SET autocommit = FALSE; #  為了可以回滾,執(zhí)行該命令
DELETE FROM myemp3; #  清空數(shù)據(jù),但該 ddl 操作會(huì)執(zhí)行 1 吃 commit 操作,導(dǎo)致第 3 步失效
SELECT * FROM myemp3; #  再次查詢,無數(shù)據(jù)
ROLLBACK; #  回滾操作
SELECT * FROM myemp3; #  再次查詢,無數(shù)據(jù);說明不能回滾
② DML 的操作默認(rèn)情況,一旦執(zhí)行,也是不可回滾的。但是,如果在執(zhí)行 DML 之前,執(zhí)行了 SET autocommit = FALSE,則執(zhí)行的 DML 操作就可以實(shí)現(xiàn)回滾。#  演示:TRUNCATE TABLE
COMMIT; #  提交 1 次
SELECT * FROM myemp3; #  可以查詢到數(shù)據(jù)
SET autocommit = FALSE; #  為了可以回滾,執(zhí)行該命令
TRUNCATE TABLE myemp3; #  清空數(shù)據(jù)
SELECT * FROM myemp3; #  再次查詢,無數(shù)據(jù)
ROLLBACK; #  回滾操作
SELECT * FROM myemp3; #  再次查詢,有數(shù)據(jù);說明可以回滾 

TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務(wù)日志資源少,但 TRUNCATE 無事務(wù)且不觸發(fā) TRIGGER,有可能造成事故,故不建議在開發(fā)代碼中使用此語(yǔ)句

測(cè)試 MySQL8.0 的新特性:DDL 的原子化

CREATE TABLE book1( #  創(chuàng)建數(shù)據(jù)庫(kù)
book_id INT ,rr
book_name VARCHAR(255)
SHOW TABLES; #  顯示 book1
DROP TABLE book1, book2; #  刪除這 2 個(gè)數(shù)據(jù)庫(kù),但只有 book1,所以刪除 book1 成功,刪除 book2 失敗,最后整個(gè)操作回滾;在 mysql5.7 中則不會(huì)回滾 

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

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-13發(fā)表,共計(jì)3808字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 赞皇县| 喜德县| 博野县| 温州市| 饶阳县| 迁西县| 鹤峰县| 平塘县| 酉阳| 曲沃县| 延吉市| 古田县| 呼玛县| 若羌县| 乐都县| 湟中县| 上思县| 太谷县| 邓州市| 阜新| 定南县| 屯留县| 甘肃省| 永康市| 炉霍县| 大厂| 秀山| 湟中县| 凤庆县| 明星| 新巴尔虎左旗| 阜新| 正安县| 新田县| 朔州市| 镇远县| 凤翔县| 北川| 瑞昌市| 建阳市| 鹤山市|