mysql基礎(附具體操作代碼)

来源:https://www.cnblogs.com/chenyingying0/archive/2020/01/13/12185892.html
-Advertisement-
Play Games

# 註釋內容 -- 註釋內容 -- 創建資料庫 king CREATE DATABASE king; -- 查看當前伺服器下有哪些資料庫 SHOW DATABASES; SHOW SCHEMAS; -- 查看king資料庫的詳細信息 SHOW CREATE DATABASE king; -- 創建數 ...


# 註釋內容
-- 註釋內容
-- 創建資料庫 king
CREATE DATABASE king;
-- 查看當前伺服器下有哪些資料庫
SHOW DATABASES;
SHOW SCHEMAS;
-- 查看king資料庫的詳細信息
SHOW CREATE DATABASE king;

-- 創建資料庫queen 並且指定編碼方式為gbk
CREATE DATABASE IF NOT EXISTS queen DEFAULT CHARACTER SET 'GBK';
-- 查看當前伺服器下全部的資料庫
SHOW DATABASES;
-- 查看queen指定資料庫的詳細信息
SHOW CREATE DATABASE queen;
-- 將queen的資料庫的編碼方式改為utf8
ALTER DATABASE queen DEFAULT CHARACTER SET 'UTF8';
-- 打開queen的資料庫
USE queen;
-- 得到當前打開的資料庫
SELECT DATABASE();
SELECT SCHEMA();
-- 刪除king資料庫
DROP DATABASE IF EXISTS king;
DROP DATABASE IF EXISTS queen;
-- 創建測試用資料庫 test
CREATE DATABASE IF NOT EXISTS test DEFAULT CHARACTER SET 'UTF8';

-- 打開test

USE test;

-- 用戶表 test_user

CREATE TABLE IF NOT EXISTS test_user(
id INT,
username VARCHAR(20),
password CHAR(32),
email VARCHAR(50),
age TINYINT,
card CHAR(18),
tel CHAR(11),
salary FLOAT(8,2),
married TINYINT(1),
addr VARCHAR(100),
sex ENUM('','','保密')
)ENGINE=INNODB CHARSET=UTF8;

-- 查看test_user表的表結構
DESC test_user;

DESCRIBE test_user;

SHOW COLUMNS FROM test_user;

-- 刪除test_user表

DROP TABLE IF EXISTS test_user;

-- 查看當前資料庫下的數據表

-- 查看test_user表的詳細信息

-- 通過三種方式查看指定數據表的表結構

-- 最後刪除test_user數據表

資料庫增加數據與查詢數據

-- 用戶表 test_user

CREATE TABLE IF NOT EXISTS test_user(
id INT,
username VARCHAR(20),
password CHAR(32),
email VARCHAR(50),
age TINYINT,
card CHAR(18),
tel CHAR(11),
salary FLOAT(8,2),
married TINYINT(1),
addr VARCHAR(100),
sex ENUM('','','保密')
)ENGINE=INNODB CHARSET=UTF8;

-- INSERT [INTO] tbl_name(id,username,...) VALUES(1,'KING',...);

-- 向test_user表插入一條記錄
INSERT test_user(id,username,password,email,age,card,tel,salary,married,addr,sex)
VALUES(1,'king','king','[email protected]',24,'xxxxxxxxxxxxxxxxxx','132xxxxxxxx',88888.68,0,'寧波','');

-- 查詢表中所有記錄 SELECT * FROM tbl_name;

SELECT * FROM test_user;

INSERT test_user(id,username,password,email,age,card,tel,salary,married,addr,sex)

VALUES(-5,'king','123456','[email protected]',190,'xxxxxxxxxxxxxxxxxx','132xxxxxxxx',2345.68,1,'寧波','');

數據類型測試-測試整型+無符號+零填充

-- 測試整型
CREATE TABLE test_int(
    a tinyint,
    b smallint,
    c mediumint,
    d int,
    e bigint
);
INSERT test_int(a) VALUES(-128);
-- 如果超出數據的範圍,會產生截斷現象
INSERT test_int(a) VALUES(-129);
INSERT test_int(a) VALUES(1270);

-- 測試無符號

CREATE TABLE test_unsigned(
a tinyint,
b tinyint UNSIGNED
);

INSERT test_unsigned(a,b) VALUES(-12,-12);
INSERT test_unsigned(a,b) VALUES(0,0);
INSERT test_unsigned(a,b) VALUES(0,256);

-- 測試零填充 ZEROFILL
CREATE TABLE test_int1(
    a tinyint ZEROFILL,
    b smallint ZEROFILL,
    c mediumint ZEROFILL,
    d int ZEROFILL,
    e bigint ZEROFILL
);

INSERT test_int1(a,b,c,d,e) VALUES(1,1,1,1,1);

CREATE TABLE test_int2(
    a tinyint(2),
    b smallint(2)
);
INSERT test_int2(a,b) VALUES(123,45678);

數據類型測試-測試浮點型

-- 測試浮點型
CREATE TABLE test_float(
a FLOAT(6,2),
b DOUBLE(6,2),
c DECIMAL(6,2)
);

INSERT test_float(a,b,c) VALUES(4.143,4.146,4.149);

CREATE TABLE test_float1(
a FLOAT,
b DOUBLE,
c DECIMAL
);
INSERT test_float1(a,b,c) VALUES(4.143,4.146,4.649);
INSERT test_float(a,b,c) VALUES(1234567.89,2345678.9,567890.89);

數據類型測試-測試char和varchar+text+ENUM+set

-- 測試char 和 varchar
CREATE TABLE test_str(
    a CHAR(5),
    b VARCHAR(5)
);
INSERT test_str(a,b) VALUES('','');
INSERT test_str(a,b) VALUES('a','a');
INSERT test_str(a,b) VALUES('ab','ab');
INSERT test_str(a,b) VALUES('abc','abc');
INSERT test_str(a,b) VALUES('abcd','abcd');
INSERT test_str(a,b) VALUES('abcde','abcde');
INSERT test_str(a,b) VALUES('abcdef','abcdef');

INSERT test_str(a,b) VALUES(' 123 ',' 123 ');

SELECT CONCAT('*',a,'*'),CONCAT('*',b,'*') FROM test_str;

-- 測試TEXT不能有預設值
CREATE TABLE test_str1(
 content TEXT DEFAULT 'THIS IS A TEST'
);


-- 測試ENUM
CREATE TABLE test_enum1(
sex ENUM('','','保密 ')
);
INSERT test_enum(sex) VALUES('');
INSERT test_enum(sex) VALUES('男1');
INSERT test_enum(sex) VALUES(NULL);
INSERT test_enum(sex) VALUES(1);
INSERT test_enum(sex) VALUES(3);
INSERT test_enum(sex) VALUES(5);

-- 測試SET
CREATE TABLE test_set(
    a SET('A','B','C','D','E','F')
);

INSERT test_set(a) VALUES('A');
INSERT test_set(a) VALUES('C');
INSERT test_set(a) VALUES('C,D,E');
INSERT test_set(a) VALUES('C,F,A');
INSERT test_set(a) VALUES('C,F,A,H');
INSERT test_set(a) VALUES(2);

數據類型測試-測試時間類型

-- HH:MM:SS [D HH:MM:SS] D表示天數 0~34
-- 測試TIME類型
CREATE TABLE test_time(
a TIME
);
INSERT test_time(a) VALUES('12:23:45');
INSERT test_time(a) VALUES('2 12:23:45');
INSERT test_time(a) VALUES('22:22');
INSERT test_time(a) VALUES('22');
INSERT test_time(a) VALUES('2 22');
-- HHMMSS
INSERT test_time(a) VALUES('121212');
INSERT test_time(a) VALUES('0');
INSERT test_time(a) VALUES(0);
INSERT test_time(a) VALUES('787878');

INSERT test_time(a) VALUES(NOW());
INSERT test_time(a) VALUES(CURRENT_TIME);

-- 測試DATE類型 YYYY-MM-DD YYYYMMDD
CREATE TABLE test_date(
    a DATE
);
INSERT test_date(a) VALUES('2017-03-04');
INSERT test_date(a) VALUES('2017-2-13');
INSERT test_date(a) VALUES('4007-03-23');
INSERT test_date(a) VALUES('40071212');
INSERT test_date(a) VALUES('4007@12@12');
INSERT test_date(a) VALUES('4008#13#13');
INSERT test_date(a) VALUES('4009.8.14');


-- YY-MM-DD YYMMDD
-- 70~99 轉換成1970~1999 00~69 2000~2069
INSERT test_date(a) VALUES('780902');
INSERT test_date(a) VALUES('650902');
INSERT test_date(a) VALUES('880902');
INSERT test_date(a) VALUES(NOW());
INSERT test_date(a) VALUES(CURRENT_DATE);

-- 測試DATETIME

CREATE TABLE test_datetime(
a DATETIME
);
INSERT test_datetime(a) VALUES('1004-09-12 13:24:56');
INSERT test_datetime(a) VALUES('720305121212');
INSERT test_datetime(a) VALUES(NOW());
INSERT test_datetime(a) VALUES(DATETIME);

-- 測試TIMESTAMP
CREATE TABLE test_timestamp(
    a TIMESTAMP
);
INSERT test_timestamp(a) VALUES('1978-10-23 12:12:12');

-- 插入CURRENT_TIMESTAMP
INSERT test_timestamp VALUES(CURRENT_TIMESTAMP);

-- 插入NULL
INSERT test_timestamp VALUES(NULL);

-- 什麼也不寫 得到當前系統日期和時間
INSERT test_timestamp VALUES();


-- 測試YEAR

CREATE TABLE test_year(
    a YEAR
);

INSERT test_year(a) VALUES(1901);

-- 00~69 2000~2069 70~99 1970~1999
-- 0 插入的結果是0000
-- '0' 插入的結果是2000

數據類型測試-測試主鍵+複合主鍵+自增

-- 測試主鍵
CREATE TABLE test_primary_key(
    id INT UNSIGNED PRIMARY KEY,
    username VARCHAR(20)
);
INSERT test_primary_key(id,username) VALUES(1,'king');
INSERT test_primary_key(id,username) VALUES(1,'king123');
INSERT test_primary_key(username) VALUES('QUEEN');

CREATE TABLE test_primary_key1(
    id INT UNSIGNED KEY,
    username VARCHAR(20)
);

CREATE TABLE test_primary_key2(
    id INT UNSIGNED,
    username VARCHAR(20),
    PRIMARY KEY(id)
);

-- CREATE TABLE test_primary_key3(
--     id INT UNSIGNED PRIMARY KEY,
--     courseId INT UNSIGNED PRIMARY KEY,
--     username VARCHAR(20),
--     email VARCHAR(50)
-- );

-- 複合主鍵
CREATE TABLE test_primary_key3(
    id INT UNSIGNED,
    courseId VARCHAR(20),
    username VARCHAR(20),
    email VARCHAR(50),
    PRIMARY KEY(id,courseId)
);
-- 1-a
INSERT test_primary_key3(id,courseId,username,email)
VALUES(1,'a','king','[email protected]');

INSERT test_primary_key3(id,courseId,username,email)
VALUES(1,'b','king','[email protected]');

INSERT test_primary_key3(id,courseId,username,email)
VALUES(2,'a','king','[email protected]');

INSERT test_primary_key3(id,courseId,username,email)
VALUES(1,'a','1king','[email protected]');

-- 測試AUTO_INCREMENT

CREATE TABLE test_auto_increment(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20)
);

INSERT test_auto_increment(username) VALUES('A');
INSERT test_auto_increment(username) VALUES('B');
INSERT test_auto_increment(username) VALUES('C');

INSERT test_auto_increment(id,username) VALUES(NULL,'E');
INSERT test_auto_increment(id,username) VALUES(DEFAULT,'F');
INSERT test_auto_increment(id,username) VALUES(15,'G');

數據類型測試-測試非空+預設值+唯一鍵

-- 測試非空
CREATE TABLE test_not_null(
a varchar(20),
b varchar(20) not null
);

INSERT test_not_null(a,b) VALUES('','');
INSERT test_not_null(a,b) VALUES(NULL,NULL);
INSERT test_not_null(a,b) VALUES(NULL,'abc');
INSERT test_not_null(a) VALUES('TEST');

-- 測試預設值
CREATE TABLE test_default(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18,
email VARCHAR(50) NOT NULL DEFAULT '[email protected]'
);
INSERT test_default(username) VALUES('A');
INSERT test_default(username,age,email) VALUES('B',30,'[email protected]');
INSERT test_default(username,age,email) VALUES('C',NULL,'[email protected]');
INSERT test_default(username,age,email) VALUES('D',NULL,NULL);
INSERT test_default(username,age,email) VALUES('D',NULL,DEFAULT);

CREATE TABLE test_default1(
id INT UNSIGNED AUTO_INCREMENT KEY,
sex ENUM('a','b','c') NOT NULL DEFAULT 'a'
);

-- 測試UNIQUE KEY
CREATE TABLE test_unique(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
email VARCHAR(50) UNIQUE,
card CHAR(18) UNIQUE
);

INSERT test_unique(username,email,card) VALUES('A','[email protected]','1');
INSERT test_unique(username,email,card) VALUES('A','[email protected]','12');
INSERT test_unique(username,email,card) VALUES('B',NULL,NULL);
INSERT test_unique(username,email,card) VALUES('C',NULL,NULL);

數據類型測試-測試布爾類型

-- 用戶表test_user
CREATE TABLE IF NOT EXISTS `test_user`(
`id` INT UNSIGNED AUTO_INCREMENT KEY COMMENT '用戶編號',
`username` VARCHAR(20) NOT NULL UNIQUE COMMENT '用戶名',
`password` CHAR(32) NOT NULL COMMENT '密碼',
`email` VARCHAR(50) NOT NULL UNIQUE COMMENT '郵箱',
`age` TINYINT UNSIGNED NOT NULL DEFAULT 18 COMMENT '年齡',
`sex` ENUM('','','保密') NOT NULL DEFAULT '保密' COMMENT '性別',
`tel` CHAR(11) NOT NULL UNIQUE COMMENT '電話',
`addr` VARCHAR(50) NOT NULL DEFAULT '北京' COMMENT '地址',
`card` CHAR(18) NOT NULL UNIQUE COMMENT '身份證號',
`married` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0代表未結婚,1代表已結婚',
`salary` FLOAT(8,2) NOT NULL DEFAULT 0 COMMENT '薪水'
)ENGINE=INNODB DEFAULT CHARSET=UTF8;

-- 測試布爾類型
CREATE TABLE test_bool(
id int,
married BOOL
);
CREATE TABLE test_bool1(
id int,
married BOOLEAN
);

對數據表欄位的增刪改

-- 測試添加和刪除欄位
CREATE TABLE IF NOT EXISTS user1(
    id INT UNSIGNED AUTO_INCREMENT KEY
);

-- 添加用戶名欄位 username VARCHAR(20)
ALTER TABLE user1
ADD username VARCHAR(20);

-- 添加密碼欄位 password CHAR(32) NOT NULL
ALTER TABLE user1
ADD password CHAR(32) NOT NULL;

-- 添加郵箱欄位 email VARCHAR(50) NOT NULL UNIQUE 加到username之後
ALTER TABLE user1
ADD email VARCHAR(50) NOT NULL UNIQUE AFTER username;

-- 添加測試欄位 test TINYINT(1) NOT NULL DEFAULT 0; 加到首位
ALTER TABLE user1
	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 記錄一次 mysql 5.7 下,出現重啟資料庫後不能載入特定表的問題處理。 搜索了很多的類似的錯誤,大多都是說因為外鍵同名的索引丟失的情況。但在5.7這個版本下,會禁止更新外鍵關聯的索引。 最後經過分析,發現是之前更新了主外鍵的字元集導致的。資料庫的預設字元集是utf8mb4(預期是uft8),如 ...
  • mac 安裝 navicat for mysql 直接安裝 首先打開mac控制台輸入命令行:sudo spctl --master-disable 百度盤,提取碼: vrtr 失效請留言,會及時更新,謝謝 ...
  • MySQL 創建資料庫: CREATE DATABASE [IF NOT EXISTS] <資料庫名> [[DEFAULT] CHARACTER SET <字元集名>] [[DEFAULT] COLLATE <校對規則名>]; 註: [IF NOT EXISTS] 方法判斷資料庫是否存在,不存在才創 ...
  • php操作資料庫八步走 <?php // 1、建立連接 $connection = mysqli_connect('127.0.0.1', 'root', '123456'); // 2、判斷連接是否成功 if (mysqli_connect_error() != null) { die(mysql ...
  • 前提要述:參考書籍《MySQL必知必會》 利用空閑時間快速回顧一些資料庫基礎。 4.1 連接 在最初安裝MySQL,可能會要求你輸入一個管理登錄(通常為root)和一個口令(密碼)。 連接MySQL需要以下信息: 主機名(電腦名)——如果連接到本地MySQL伺服器,為localhost; 埠(如 ...
  • 前提要述:參考書籍《MySQL必知必會》 《MySQL必知必會》是先講了查詢,但是沒有記錄就無法查詢,所以先將如何添加數據。 表已經知道怎麼創建了,隨便創兩張。 5.1 插入數據 MySQL使用 INSERT來插入(或添加)行(記錄)到資料庫表中。插入可用以下幾種方式使用: 插入完整的行(記錄); ...
  • #!/bin/bash echo "修改主機名" hostnamectl set-hostname wangxfa hostname sleep 1 echo "查看並關閉防火牆" systemctl status firewalld systemctl stop firewalld systemc ...
  • 屬性順序錯誤 一般情況下欄位類型要放在前面,限制參數放在後面,UNSIGNEDZEROFILL 之間沒有先後順序,主鍵 KEY 和 auto_increment 要放在UNSIGNED ZEROFILL 後面 否則報錯 。設置為主鍵的欄位沒有 deafault參數,not null 一般放在最後面。 ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...