国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySql數(shù)據(jù)庫(kù)的初步安裝與數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)管理

這篇具有很好參考價(jià)值的文章主要介紹了MySql數(shù)據(jù)庫(kù)的初步安裝與數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)管理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、數(shù)據(jù)庫(kù)的相關(guān)了解

1)數(shù)據(jù)庫(kù)的概念?

數(shù)據(jù)(Data)

數(shù)據(jù)庫(kù)系統(tǒng)

2)數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展史

第一代數(shù)據(jù)庫(kù)

第二代數(shù)據(jù)庫(kù)

第三代數(shù)據(jù)庫(kù)

當(dāng)今主流數(shù)據(jù)庫(kù)介紹

2)數(shù)據(jù)庫(kù)的分類?

關(guān)系數(shù)據(jù)庫(kù)

非關(guān)系型數(shù)據(jù)庫(kù)

非關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)

二、mysql的yum安裝與源碼編譯安裝??

1)源碼編譯安裝mysql

2)yum安裝 mysql5.7?

三、mysql的數(shù)據(jù)類型?

1)常用的數(shù)據(jù)庫(kù)類型

2)char與varchar的區(qū)別

四、查看數(shù)據(jù)庫(kù)結(jié)構(gòu)

1)查看當(dāng)前服務(wù)器中的數(shù)據(jù)庫(kù)

2)查看數(shù)據(jù)庫(kù)中包含的表

方法一:

方法二:?

3)查看表的結(jié)構(gòu)(字段)

方式一:先切換庫(kù),在查看指定表的字段

方式二:直接查看表結(jié)構(gòu)

四、SQL語(yǔ)句

1)SQL中的名詞介紹

2)SQL語(yǔ)言規(guī)范

數(shù)據(jù)庫(kù)對(duì)象和命名:

3)SQL語(yǔ)言分類

五、Mysql數(shù)據(jù)庫(kù)基本的增刪改查命令?

1)創(chuàng)建數(shù)據(jù)庫(kù)

2)創(chuàng)建表?

3)刪除指定的數(shù)據(jù)表

4)刪除指定的數(shù)據(jù)庫(kù)

六、管理表中數(shù)據(jù)記錄

1)向數(shù)據(jù)表中插入新的數(shù)據(jù)記錄

2)查詢數(shù)據(jù)記錄

3)修改、更新數(shù)據(jù)表中的數(shù)據(jù)記錄

4)在數(shù)據(jù)表中刪除指定的數(shù)據(jù)記錄

七、修改表名和表結(jié)構(gòu)

1)修改表名

2)擴(kuò)展表結(jié)構(gòu)(增加字段)

3)修改字段(列)名,添加唯一鍵?

?4)刪除字段

案例擴(kuò)展:

5)復(fù)制表結(jié)構(gòu)

方式一:創(chuàng)建新表,導(dǎo)入數(shù)據(jù)

方式二:復(fù)制表?

6)臨時(shí)表的創(chuàng)建

7)清除表的兩種方式比較

方式一:delete清空?

兩者區(qū)別:

七、Mysql中常見的約束?

保證數(shù)據(jù)的完整性和一致性

主鍵表與外鍵表的理解:

專業(yè)課程表

學(xué)生信息表

刪除外鍵步驟:

總結(jié)


一、數(shù)據(jù)庫(kù)的相關(guān)了解

1)數(shù)據(jù)庫(kù)的概念?

數(shù)據(jù)(Data)

  • 描述事物的符號(hào)記錄
  • 包括數(shù)字、文字、圖形、聲音、檔案記錄等
  • 以“記錄”形式按統(tǒng)一的格式進(jìn)行存儲(chǔ)

  • 將不同的記錄組織在一起
  • 用來(lái)存儲(chǔ)具體數(shù)據(jù)

數(shù)據(jù)庫(kù)(database)

  • 表的集合,是用來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)

數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)

  • 是實(shí)現(xiàn)對(duì)數(shù)據(jù)有效組織,管理和存取的系統(tǒng)軟件
  • 數(shù)據(jù)的建立和維護(hù)功能,數(shù)據(jù)定義功能,數(shù)據(jù)操縱功能,數(shù)據(jù)庫(kù)的運(yùn)行管理功能,通信功能?

數(shù)據(jù)庫(kù)系統(tǒng)

  • 是一個(gè)人機(jī)系統(tǒng),由硬件,os,數(shù)據(jù)庫(kù),DBMS ,應(yīng)用軟件和數(shù)據(jù)庫(kù)用戶組成
  • 用戶可以通過DBMS 或則 應(yīng)用程序來(lái)操作數(shù)據(jù)庫(kù)?

MySql數(shù)據(jù)庫(kù)的初步安裝與數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)管理

2)數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展史

第一代數(shù)據(jù)庫(kù)

  • 自20世紀(jì)60年代起,第一代數(shù)據(jù)庫(kù)系統(tǒng)問世
  • 是層次模型與網(wǎng)狀模型的數(shù)據(jù)庫(kù)系統(tǒng)
  • 為統(tǒng)一管理和共享數(shù)據(jù)提供了有力的支撐

第二代數(shù)據(jù)庫(kù)

  • 20世紀(jì)70年代初,第二代數(shù)據(jù)庫(kù)系統(tǒng)——關(guān)系數(shù)據(jù)庫(kù)開始出現(xiàn)
  • 20世紀(jì)80年代初,IBM公司的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)DB2問世,開始逐步取代層次與網(wǎng)狀模型的數(shù)據(jù)庫(kù),成為行業(yè)主流
  • 到目前為止關(guān)系數(shù)據(jù)庫(kù)仍占領(lǐng)數(shù)據(jù)庫(kù)應(yīng)用的主要地位

第三代數(shù)據(jù)庫(kù)

  • 自20世紀(jì)80年代開始,適應(yīng)不同領(lǐng)域的新型數(shù)據(jù)庫(kù)系統(tǒng)不斷涌現(xiàn)
  • 面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng),實(shí)用性強(qiáng)、適用面廣
  • 20世紀(jì)90年代后期,形成了多種數(shù)據(jù)庫(kù)系統(tǒng)共同支撐應(yīng)用的局面
  • 一些新的元素被添加進(jìn)主流數(shù)據(jù)庫(kù)系統(tǒng)中

當(dāng)今主流數(shù)據(jù)庫(kù)介紹

SQL Server(微軟公司產(chǎn)品)

  • 面向Windows操作系統(tǒng)
  • 簡(jiǎn)單、易用

Oracle (甲骨文公司產(chǎn)品)

  • 面向所有主流平臺(tái)
  • 安全、完善、操作復(fù)雜

DB2 (IBM公司產(chǎn)品)

  • 面向所有主流平臺(tái)
  • 大型、安全、完善

MySQL(甲骨文公司收購(gòu))

  • 免費(fèi)、開源、體積小

2)數(shù)據(jù)庫(kù)的分類?

隨著時(shí)代的發(fā)展,當(dāng)今數(shù)據(jù)庫(kù)可分為兩大類:關(guān)系數(shù)據(jù)庫(kù)(SQL)和非關(guān)系數(shù)據(jù)庫(kù)(NO SQL)兩大類

關(guān)系數(shù)據(jù)庫(kù)

  • 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是基于關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)、

  • 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)使用簡(jiǎn)單易懂的二維數(shù)據(jù)表

  • 關(guān)系模型可用簡(jiǎn)單的“實(shí)體-關(guān)系”(E-R)圖來(lái)表示

  • E-R圖中包含了實(shí)體(數(shù)據(jù)對(duì)象)、關(guān)系和屬性三個(gè)要素

MySql數(shù)據(jù)庫(kù)的初步安裝與數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)管理


關(guān)系數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)是二維表格

在每個(gè)二維表格中

  • 每一行稱為一條記錄,用來(lái)描述一個(gè)對(duì)象的信息
  • 每一列成為一個(gè)字段,用來(lái)描述對(duì)象的一個(gè)屬性

MySql數(shù)據(jù)庫(kù)的初步安裝與數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)管理

非關(guān)系型數(shù)據(jù)庫(kù)

  • 非關(guān)系數(shù)據(jù)庫(kù)也被稱為NoSQL(Not Only SQL)

  • 存儲(chǔ)數(shù)據(jù)不以關(guān)系為依據(jù),不需要固定的表格式

非關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)

  • 可高并發(fā)讀寫
  • 對(duì)海量數(shù)據(jù)依舊保持著高效率的存儲(chǔ)和訪問
  • 具有高擴(kuò)展性和高可用性

二、mysql的yum安裝與源碼編譯安裝??

1)源碼編譯安裝mysql

---------------安裝環(huán)境包-----------------
 
確認(rèn)安裝 gcc 、 gcc-c++ 、make、cmake 
ncurses-devel、(字符終端屏幕控制基本庫(kù))
bison、(語(yǔ)法分析器)
libaio-devel (支持同步I/O)的軟件包
yum -y install gcc gcc-c++ make ncurses ncurses-devel bison cmake libaio-devel
yum install autoconf -y     ####安裝5.6版本是需要安裝autoconf庫(kù)
 
---------------添 加mysql用戶并加入到mysql組----------------
 
useradd  -s /sbin/nologin mysql
mkdir -p /usr/local/mysql
 
tar zxvf mysql-5.5.24.tar.gz -C /opt/
 
cd   mysql-5.5.24
 
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/home/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306                               
 
指定安裝路徑
指定家目錄  sock 數(shù)據(jù)庫(kù)連接文件
指定字符集
指定字符編碼
擴(kuò)展性的字符集 支持其他的字符集
開啟各種功能的存儲(chǔ)引擎機(jī)
存儲(chǔ)引擎機(jī)
存儲(chǔ)引擎機(jī)
支持readline程序平臺(tái) 讀取數(shù)據(jù)按行讀取,一行是一個(gè)對(duì)象
本地寫入文件,方便導(dǎo)入導(dǎo)出
數(shù)據(jù)庫(kù)的家目錄  數(shù)據(jù)庫(kù)存放的路徑
指定管理用戶和端口號(hào)
 
make -j 2 && make install  
 
------如果報(bào)錯(cuò),清空緩存文件-如果正??珊雎?------
find -name CMakeCache.txt
rm -f ./CMakeCache.txt                          
---------------------------------
 
chown -R mysql:mysql /usr/local/mysql     
 
 
 
export PATH=$PATH:/usr/local/mysql/bin/   \*開機(jī)時(shí)刷新*\          
 
或者可選擇vi /etc/profile 在最后一行加入后 運(yùn)行source /etc/profile 
 
cp support-files/my-medium.cnf /etc/my.cnf                  
或
cp support-files/my-default.cnf /etc/my.cnf
 
cp support-files/mysql.server /etc/init.d/mysqld              
 
chmod 755 /etc/init.d/mysqld                             
chkconfig --add /etc/init.d/mysqld                      
chkconfig mysqld --level 35 on                                  
 
--------------初始化數(shù)據(jù)庫(kù)------------------------------------------------
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
 
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock           /*直接建立軟連接*/
 
vi /etc/init.d/mysqld      #####46行和47行添加
basedir=/usr/local/mysql
datadir=/home/mysql
 
service mysqld start
netstat -tnl 3306
mysql    #####初始登錄mysql
grant all privileges on *.* to 'root'@'%' identified by 'abc123';    ### ##授予root用戶可以在所有終端遠(yuǎn)程登錄,使用的密碼是abc123,并對(duì)所有數(shù)據(jù)庫(kù)和所有表有操作權(quán)限。
 
 
#數(shù)據(jù)庫(kù)密碼設(shè)置
mysqladmin -u root password "abc123"
---------------------------------------------------------------
mysql -u root  -p  
abc123
mysql>show databases;

2)yum安裝 mysql5.7?

1. #創(chuàng)建mysql安裝包的在線源
 cd /etc/yum.repos.d/
 vim mysql.repo
 [mysql]
 name=mysql5.7
 baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
 gpgcheck=0
  
 2. #安裝服務(wù)mysql-community-server
 yum -y install mysql-community-server
  
 3. #啟動(dòng)服務(wù)
 systemctl start mysqld
 ss -ntap |grep 3306
  
 4. #此時(shí)無(wú)法使用mysql命令直接登入數(shù)據(jù)庫(kù)。需要查看本地root用戶的默認(rèn)密碼,使用密碼登錄。
 grep password /var/log/mysqld.log    #查看默認(rèn)密碼
 mysql -u root -p'34/Jeoiq0fZb'       #使用密碼登錄,特殊符號(hào)用單引號(hào)引起來(lái)
  
 5. #登入數(shù)據(jù)庫(kù)后必須修改密碼。
 mysql> alter user root@'localhost' identified by 'abc123';
 ?
 #為保證安全,密碼的復(fù)雜性要足夠,需要包含英文字母大小寫、數(shù)字和特殊字符。
 ?
 #可以使用"\h;"查看幫助
 

數(shù)據(jù)庫(kù)當(dāng)前使用的端口查看:

show global variables like 'port';

三、mysql的數(shù)據(jù)類型?

1)常用的數(shù)據(jù)庫(kù)類型

類型名稱 含義
tinyint(n) 1個(gè)字節(jié),范圍(-128~127)
smallint(n) 2個(gè)字節(jié),范圍(-32768~32767)
mediumint(n) 3個(gè)字節(jié),范圍(-8388608~8388607)
int(n) 4個(gè)字節(jié)(32個(gè)比特位),整數(shù)型,范圍(-2147483648~2147483647)
bigint(n) 8個(gè)字節(jié),整數(shù)型,范圍(+-9.22*10的18次方)
float(m,d) 單精度浮點(diǎn),8位精度,4字節(jié)32位。m數(shù)字總個(gè)數(shù),d小數(shù)位
double(m,d) 雙精度浮點(diǎn),16位精度,8字節(jié)64位 。m總個(gè)數(shù),d小數(shù)位
char 固定長(zhǎng)度的字符類型
varchar 可變長(zhǎng)度的字符類型
text 文本
image 圖片
decimal(5,2) 5個(gè)有效長(zhǎng)度數(shù)字,小數(shù)點(diǎn)后面有2位(例如123.56)

2)char與varchar的區(qū)別

CHAR(4) 存儲(chǔ)需求 VARCHAR(4) 存儲(chǔ)需求
'' ' ' 4個(gè)字節(jié) '' 1個(gè)字節(jié)
'ab' 'ab ' 4個(gè)字節(jié) 'ab ' 3個(gè)字節(jié)
'abcd' 'abcd' 4個(gè)字節(jié) 'abcd' 5個(gè)字節(jié)
'abcdefgh' 'abcd' 4個(gè)字節(jié) 'abcd' 5個(gè)字節(jié)

CHAR和VARCHAR類型類似,但它們保存和檢索的方式不同。它們的最大長(zhǎng)度和是否尾部空格被保留等方面也不同。在存儲(chǔ)或檢索過程中不進(jìn)行大小寫轉(zhuǎn)換。?

字節(jié)大?。?/strong>

  • char無(wú)論是否有值,都會(huì)占用固定長(zhǎng)度的字節(jié)大小,保存在磁盤上都是4字節(jié)
  • varchar在保存字符時(shí),默認(rèn)會(huì)加一個(gè)隱藏的結(jié)束符,因此結(jié)束符會(huì)多算一個(gè)字節(jié)

優(yōu)劣比較:

  • varchar比char節(jié)省磁盤空間
  • 但varchar類型的數(shù)據(jù)讀寫速度比char慢,因?yàn)閏har是連續(xù)的磁盤空間,e而varchar在多次增刪改查中會(huì)產(chǎn)生一些磁盤空間碎片

四、查看數(shù)據(jù)庫(kù)結(jié)構(gòu)

1)查看當(dāng)前服務(wù)器中的數(shù)據(jù)庫(kù)

SHOW DATABASES;                        #大小寫不區(qū)分,分號(hào)“;”表示結(jié)束

2)查看數(shù)據(jù)庫(kù)中包含的表

方法一:

USE 數(shù)據(jù)庫(kù)名;
SHOW TABLES;

方法二:?

show tables  from 庫(kù)名

3)查看表的結(jié)構(gòu)(字段)

方式一:先切換庫(kù),在查看指定表的字段

 USE  數(shù)據(jù)庫(kù)名;      #切換庫(kù)
 DESCRIBE 表名;     #查看指定表的結(jié)構(gòu)(  DESCRIBE 可以縮寫為DESC)

由于屏幕占比問題與字段數(shù)量問題,會(huì)導(dǎo)致有些表結(jié)構(gòu)的效果呈現(xiàn)并不好。(由于默認(rèn)查看為橫向的查看 )?

縱向查看方式:

?desc  表名\G;

方式二:直接查看表結(jié)構(gòu)

 DESCRIBE [數(shù)據(jù)庫(kù)名.]表名;
 可縮寫成:DESC 數(shù)據(jù)庫(kù)名.表名;

四、SQL語(yǔ)句

SQL語(yǔ)句用于維護(hù)管理數(shù)據(jù)庫(kù),包括數(shù)據(jù)查詢、數(shù)據(jù)更新、訪問控制、對(duì)象管理等功能

1)SQL中的名詞介紹

  • 數(shù)據(jù)庫(kù):database
  • 表:table,行:row 列:column
  • 索引:index
  • 視圖:view
  • 存儲(chǔ)過程:procedure
  • 存儲(chǔ)函數(shù):function
  • 觸發(fā)器:trigger
  • 事件調(diào)度器:event scheduler,任務(wù)計(jì)劃
  • 用戶:user
  • 權(quán)限:privilege

2)SQL語(yǔ)言規(guī)范

  • 在數(shù)據(jù)庫(kù)系統(tǒng)中,SQL 語(yǔ)句不區(qū)分大小寫,建議用大寫
  • SQL語(yǔ)句可單行或多行書寫,默認(rèn)以 " ; " 結(jié)尾
  • 關(guān)鍵詞不能跨多行或簡(jiǎn)寫
  • 用空格和TAB 縮進(jìn)來(lái)提高語(yǔ)句的可讀性
  • 子句通常位于獨(dú)立行,便于編輯,提高可讀性

數(shù)據(jù)庫(kù)對(duì)象和命名:

? ? 數(shù)據(jù)庫(kù)的組件(對(duì)象):

? ? 數(shù)據(jù)庫(kù)、表、索引、視圖、用戶、存儲(chǔ)過程、函數(shù)、觸發(fā)器、事件調(diào)度器等。

? ? 命名規(guī)則:

  • 必須以字母開頭,后續(xù)可以包括字母,數(shù)字和三個(gè)特殊字符(# _ $)
  • 不要使用MySQL的保留字,如table、select、show、databases。
  • 數(shù)據(jù)庫(kù)名、表名、用戶名區(qū)分大小

3)SQL語(yǔ)言分類

1、DDL:數(shù)據(jù)定義語(yǔ)言(Data Definition Language),用于創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象,如庫(kù)、表、索引等

例如:CREATE,DROP,ALTER 等。

2、DML:數(shù)據(jù)操縱語(yǔ)言(Data Manipulation Language),用于對(duì)表中的數(shù)據(jù)進(jìn)行管理

例如: SELECT、UPDATE、INSERT、DELETE 等。

3、DQL:數(shù)據(jù)查詢語(yǔ)言( Data Query Languag ),用于從數(shù)據(jù)表中查找符合條件的數(shù)據(jù)記錄

例如: SELECT

4、DCL:數(shù)據(jù)控制語(yǔ)言(Data Control Language),用于設(shè)置或者更改數(shù)據(jù)庫(kù)用戶或角色權(quán)限

例如: GRANT,REVOKE

5、TCL:事務(wù)控制語(yǔ)言(Transaction Control Language),用于管理數(shù)據(jù)庫(kù)中的事務(wù)。 TCL經(jīng)常被用于快速原型開發(fā)、腳本編程、GUI和測(cè)試等方面

例如: COMMIT,ROLLBACK,SAVEPOINT

五、Mysql數(shù)據(jù)庫(kù)基本的增刪改查命令?

1)創(chuàng)建數(shù)據(jù)庫(kù)

CREATE DATABASE 數(shù)據(jù)庫(kù)名;

2)創(chuàng)建表?

 CREATE TABLE 表名(字段1 數(shù)據(jù)類型,字段2 數(shù)據(jù)類型[,...] [,PRIMARY KEY (主鍵名)]);
#主鍵一般選擇能代表唯一性的字段不允許取空值(NULL),一個(gè)表只能有一個(gè)主鍵。

例:

CREATE DATABASE school;
USE school;
CREATE TABLE student (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT '',PRIMARY KEY (id));
DESC student;

3)刪除指定的數(shù)據(jù)表

DROP TABLE [數(shù)據(jù)庫(kù)名.]表名;                #如不用USE進(jìn)入庫(kù)中,則需加上數(shù)據(jù)庫(kù)名

4)刪除指定的數(shù)據(jù)庫(kù)

DROP DATABASE 數(shù)據(jù)庫(kù)名;

六、管理表中數(shù)據(jù)記錄

1)向數(shù)據(jù)表中插入新的數(shù)據(jù)記錄

INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);

例:

INSERT INTO student (id,name,score,passwd) values(1,'ggl',70.5,PASSWORD('123456'));
#PASSWORD('123456'):查詢數(shù)據(jù)記錄時(shí),密碼字串以加密形式顯示;若不使用PASSWORD(),查詢時(shí)以明文顯示。
INSERT INTO student VALUES(2,'lisi',90.5,654321);
SELECT * FROM student;                    #查詢表的數(shù)據(jù)記錄

2)查詢數(shù)據(jù)記錄

SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 條件表達(dá)式];

例:

SELECT * FROM student;
SELECT id,name,score FROM student WHERE id=2;
select name from YYDS\G                    #以列表方式豎向顯示
select * from YYDS limit 2;                #只顯示頭2行
select * from YYDS limit 2,3;              #顯示第2行后的前3行

3)修改、更新數(shù)據(jù)表中的數(shù)據(jù)記錄

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 條件表達(dá)式];

例:

UPDATE YYDS SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE YYDS SET name='qhw',passwd='' WHERE id=3;

4)在數(shù)據(jù)表中刪除指定的數(shù)據(jù)記錄

DELETE FROM 表名 [WHERE 條件表達(dá)式];

例:

DELETE FROM YYDS WHERE id=4;

七、修改表名和表結(jié)構(gòu)

1)修改表名

ALTER TABLE 舊表名 RENAME 新表名;

例:

ALTER TABLE YYDS RENAME AWSL;
ALTER TABLE AWSL RENAME YYDS;

2)擴(kuò)展表結(jié)構(gòu)(增加字段)

ALTER TABLE 表名 ADD address varchar(50) default '地址不詳';
#default '地址不詳':表示此字段設(shè)置默認(rèn)值 地址不詳;可與 NOT NULL 配合使用

3)修改字段(列)名,添加唯一鍵?

ALTER TABLE 表名 CHANGE 舊列名 新列名 數(shù)據(jù)類型 [unique key];

例:

ALTER TABLE KY08 CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、數(shù)據(jù)類型、約束等所有項(xiàng)。

?4)刪除字段

ALTER TABLE 表名 DROP 字段名;

?例:

ALTER TABLE YYDS DROP passwd;

案例擴(kuò)展:

use kgc;
create table if not exists info (
id int(4) zerofill primary key auto_increment,                #指定主鍵的第二種方式
name varchar(10) not null default '匿名',
cardid int(18) not null unique key,
hobby varchar(50));

#if not exists:表示檢測(cè)要?jiǎng)?chuàng)建的表是否已存在,如果不存在就繼續(xù)創(chuàng)建
#int(4) zerofill:表示若數(shù)值不滿4位數(shù),則前面用“0”填充,例0001
#auto_increment:表示此字段為自增長(zhǎng)字段,即每條記錄自動(dòng)遞增1,默認(rèn)從1開始遞增;自增長(zhǎng)字段數(shù)據(jù)不可以重復(fù);自增長(zhǎng)字段必須是主鍵;如添加的記錄數(shù)據(jù)沒有指定此字段的值且添加失敗也會(huì)自動(dòng)遞增一次
#unique key:表示此字段唯一鍵約束,此字段數(shù)據(jù)不可以重復(fù);一張表中只能有一個(gè)主鍵, 但是一張表中可以有多個(gè)唯一鍵
#not null:表示此字段不允許為NULL??

創(chuàng)建方式與創(chuàng)建表完全一致,最大的區(qū)別是,臨時(shí)表只在當(dāng)前的數(shù)據(jù)庫(kù)連接生效,當(dāng)數(shù)據(jù)庫(kù)連接斷開或重新連接終端時(shí),該臨時(shí)表均失效,無(wú)法查看

5)復(fù)制表結(jié)構(gòu)

方式一:創(chuàng)建新表,導(dǎo)入數(shù)據(jù)

 create table 新表名 like 舊表名;             #通過LIKE方法,復(fù)制舊表的結(jié)構(gòu)生成新表
 
 insert into 新表名 select * from 舊表名;     #再將舊表數(shù)據(jù)導(dǎo)入新表

方式二:復(fù)制表?

 create table 新表名 (select * from 舊表名);

6)臨時(shí)表的創(chuàng)建

CREATE TEMPORARY TABLE 表名(字段1 數(shù)據(jù)類型,字段2 數(shù)據(jù)類型[, ...] [, PRIMARY KEY (主鍵名)]);

?創(chuàng)建方式與創(chuàng)建表完全一致,最大的區(qū)別是,臨時(shí)表只在當(dāng)前的數(shù)據(jù)庫(kù)連接生效,當(dāng)數(shù)據(jù)庫(kù)連接斷開或重新連接終端時(shí),該臨時(shí)表均失效,無(wú)法查看

7)清除表的兩種方式比較

方式一:delete清空?

 delete from 表名;

方式二:truncate清空?

 truncate table 表名;    

兩者區(qū)別:

  • delete清空屬于按照行清空,一行一行進(jìn)行,效率低,速度慢(對(duì)于表數(shù)據(jù)較多的情況) truncate相當(dāng)于刪除表數(shù)據(jù),保留表結(jié)構(gòu),重新創(chuàng)建一個(gè)與原表結(jié)構(gòu)相同的表?
  • 當(dāng)數(shù)據(jù)表中有自增型約束字段時(shí),delete清除表數(shù)據(jù)后,在插入數(shù)據(jù)時(shí),自增字段的數(shù)值會(huì)接著被刪除表數(shù)據(jù)的最后一個(gè)自增數(shù),計(jì)數(shù)。(eg:被刪除表數(shù)據(jù)最后一行id(自增),為10,再創(chuàng)建時(shí),該id從11開始)。truncate清空后,自增型字段會(huì)從1開始計(jì)數(shù)
    ?

七、Mysql中常見的約束?

  • 主鍵約束(primary key) PK

主鍵具有唯一性,不可重復(fù)性,不可為空的特點(diǎn)。一般用于刪除,查詢時(shí)條件語(yǔ)句的條件。主鍵在一張表中只能有一個(gè)

  • 自增長(zhǎng)約束(auto_increment)

該約束針對(duì)于整數(shù)類型的字段,當(dāng)插入該字段數(shù)據(jù)為空時(shí),系統(tǒng)會(huì)根據(jù)上一個(gè)數(shù),自動(dòng)加1

  • 非空約束(not null)

該約束到字段后,該字段中的數(shù)據(jù)插入不能為空

  • 唯一性約束(unique)

該約束添加后,該字段的數(shù)據(jù)每行均為唯一的,不可重復(fù)。唯一性約束可以在一張表中有多個(gè)

  • 默認(rèn)值約束(default)

默認(rèn)值約束,為該字段設(shè)置初始值,如果沒有為該字段插入數(shù)據(jù),就為初始值

  • 零填充約束(zerofill)

零填充針對(duì)整數(shù)型的字段,例如int默認(rèn)為11位,除了填寫的數(shù)字以外其他用零填充

  • 外鍵約束(foreign key)FK

保證數(shù)據(jù)的完整性和一致性

外鍵的定義:如果同一個(gè)屬性字段x在表一中是主鍵,而在表二中不是主鍵,則字段x稱為表二的外鍵

主鍵表與外鍵表的理解:

(1)以公共關(guān)鍵字作主鍵的表為主鍵表(父表、主表)

(2)以公共關(guān)鍵字作為外鍵的表為外鍵表(從表、外表)

與外鍵關(guān)聯(lián)的子表的字段必須設(shè)置為主鍵。要求主表外鍵字段和子表的字段具備相同的數(shù)據(jù)類型、字符長(zhǎng)度和約束

專業(yè)課程表

課程ID 課程名稱
1 云計(jì)算
2 大數(shù)據(jù)
3 JAVA
4 前端
主鍵

學(xué)生信息表

學(xué)號(hào) 姓名 年齡 課程ID
1 zhangsan 18 1
2 lisi 20 2
3 wangwu 22 4
4 zhaoliu 23 1
5 zhuba 24 2
外鍵
#為主表設(shè)置主鍵
mysql> alter table class add constraint PK_CID primary key(cid);

#主表插入記錄
mysql> insert into class values(1,'云計(jì)算');
mysql> insert into class values(2,'大數(shù)據(jù)');
mysql> insert into class values(3,'java');
mysql> insert into class values(4,'前端');

#為從表設(shè)置外鍵
mysql> alter table student ADD constraint FK_CLASSID foreign key(classid) references class(cid);

#從表插入記錄
mysql> insert into student values(1,'zhangsan',18,1);
mysql> insert into student values(2,'lisi',20,2);
mysql> insert into student values(3,'wangwu',22,4);
mysql> insert into student values(4,'zhaoliu',23,1);
mysql> insert into student values(5,'zhuba',24,2);
  • 外鍵約束,至少將兩張表進(jìn)行關(guān)聯(lián)。我們將這兩張表分為主表和從表,主表的主鍵作為從表的外鍵。增加數(shù)據(jù)時(shí),先進(jìn)行主表操作,如果增加的數(shù)據(jù)外鍵值在主表中沒有,就要先在主表中添加。
  • 若進(jìn)行刪除操作,就要先進(jìn)行從表操作,只要將從表有關(guān)主表(主鍵值)全部清除后,才能清除該主表的主鍵值

刪除外鍵步驟:

1.查看外鍵別名
mysql> show create table student\G;
2.刪除外鍵約束
mysql> alter table student drop foreign key FK_CLASSID;
3.刪除別名
mysql> alter table student drop key FK_CLASSID;

做了外鍵約束后

要插入新的數(shù)據(jù)記錄時(shí),需要先在主鍵表中插入相關(guān)數(shù)據(jù),才能在外鍵表插入相關(guān)數(shù)據(jù),插入數(shù)據(jù)時(shí),是先主后從

要?jiǎng)h除數(shù)據(jù)記錄時(shí),要先刪除外鍵表的相關(guān)數(shù)據(jù),才能在主鍵表刪除相關(guān)數(shù)據(jù)記錄,刪除數(shù)據(jù)時(shí),是先從再主文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-481229.html

總結(jié)

create database 庫(kù)名;
use 庫(kù)名;
create table 表名 (字段1 數(shù)據(jù)類型, 字段2 數(shù)據(jù)類型, ... [,primary key (字段)]);

drop table 表名;
drop database 庫(kù)名;

show databases;
show tables [from 庫(kù)名];
desc [庫(kù)名.]表名;



DML 用于管理表數(shù)據(jù)

insert into 表名 values (字段1的值, 字段2的值, ....);    #要按照表結(jié)構(gòu)的字段順序設(shè)置值
insert into 表名 (字段1, 字段2, ...) values (字段1的值, 字段2的值, ...);

update 表名 set 字段=值, ... where 條件表達(dá)式;

delete from 表名 where 條件表達(dá)式;



DQL 用于根據(jù)條件查詢表數(shù)據(jù)

select * from 表名 [where 條件表達(dá)式];
select 字段1,字段2,... from 表名 [where 條件表達(dá)式];

select * from 表名\G                #縱向查看每行記錄字段的值

select * from 表名 limit N;       #顯示表的前N行記錄
select * from 表名 limit N,M;   #顯示表的從第N行之后的連續(xù)M行記錄(不包含第N行)


修改表結(jié)構(gòu)

改表名      alter table 舊表名 rename 新表名;
增加字段   alter table 表名 add 新字段 數(shù)據(jù)類型 [字段屬性];
修改字段   alter table 表名 change 舊字段 新字段 數(shù)據(jù)類型 [字段屬性];
刪除字段   alter table 表名 drop 字段;

到了這里,關(guān)于MySql數(shù)據(jù)庫(kù)的初步安裝與數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL數(shù)據(jù)庫(kù)——MySQL SELECT:數(shù)據(jù)表查詢語(yǔ)句

    在?MySQL 中,可以使用 SELECT 語(yǔ)句來(lái)查詢數(shù)據(jù)。查詢數(shù)據(jù)是指從數(shù)據(jù)庫(kù)中根據(jù)需求,使用不同的查詢方式來(lái)獲取不同的數(shù)據(jù),是使用頻率最高、最重要的操作。 SELECT 的語(yǔ)法格式如下: 其中,各條子句的含義如下: {*|字段列名} 包含星號(hào)通配符的字段列表,表示所要查詢字段的

    2024年02月05日
    瀏覽(232)
  • MySQL數(shù)據(jù)庫(kù)——MySQL數(shù)據(jù)表添加字段(三種方式)

    MySQL 數(shù)據(jù)表是由行和列構(gòu)成的,通常把表的“列”稱為字段(Field),把表的“行”稱為記錄(Record)。隨著業(yè)務(wù)的變化,可能需要在已有的表中添加新的字段。 MySQL 允許在開頭、中間和結(jié)尾處添加字段。 一個(gè)完整的字段包括字段名、數(shù)據(jù)類型和約束條件。MySQL 添加字段的語(yǔ)

    2024年02月08日
    瀏覽(101)
  • MySQL:創(chuàng)建數(shù)據(jù)庫(kù),數(shù)據(jù)表,主鍵和外鍵

    MySQL:創(chuàng)建數(shù)據(jù)庫(kù),數(shù)據(jù)表,主鍵和外鍵

    目錄 前言: 安裝MySQL: 打開MySQL: 創(chuàng)建數(shù)據(jù)庫(kù): 查看已建數(shù)據(jù)庫(kù): 查看數(shù)據(jù)庫(kù)引擎: 創(chuàng)建數(shù)據(jù)表: ?主鍵約束: 單字段主鍵: 多字段聯(lián)合主鍵: 外鍵約束: MySQL數(shù)據(jù)庫(kù)安裝了很久,一直也沒靜下心來(lái)學(xué)習(xí),因?yàn)槠鸩教?,所以什么都想學(xué)點(diǎn),又感覺有些力不從心,目前

    2023年04月27日
    瀏覽(695)
  • idea配置MySQL數(shù)據(jù)庫(kù),以及將已存在的數(shù)據(jù)表導(dǎo)入數(shù)據(jù)庫(kù)

    idea配置MySQL數(shù)據(jù)庫(kù),以及將已存在的數(shù)據(jù)表導(dǎo)入數(shù)據(jù)庫(kù)

    首先,確定自己需要的數(shù)據(jù)庫(kù)名字,結(jié)合jeecg項(xiàng)目,我在項(xiàng)目中得知我需要鏈接的數(shù)據(jù)庫(kù)的名字為? ? ?jeecg-boot 打開數(shù)據(jù)庫(kù)的可視化軟件, ? ? 點(diǎn)擊開始,即可導(dǎo)入,刷新數(shù)據(jù)庫(kù),就可以看到導(dǎo)入的數(shù)據(jù)表了。 接下來(lái)在idea鏈接MySQL ? ? 點(diǎn)擊OK,就完成配置了,刷新一下,就

    2024年02月11日
    瀏覽(96)
  • Mysql 查詢數(shù)據(jù)庫(kù)或數(shù)據(jù)表中的數(shù)據(jù)量以及數(shù)據(jù)大小

    ?許多數(shù)據(jù)庫(kù)的元數(shù)據(jù)都是存儲(chǔ)在mysql中的,例如hive、startrockes,因此可以通過mysql中的“information_schema.TABLES”表來(lái)查詢對(duì)應(yīng)數(shù)據(jù)庫(kù)或?qū)?yīng)數(shù)據(jù)表的具體信息。 1、查詢各個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)條數(shù)和數(shù)據(jù)大小 2、查詢各個(gè)數(shù)據(jù)表中的數(shù)據(jù)條數(shù)和數(shù)據(jù)大小 3、查看指定數(shù)據(jù)庫(kù)容量大小

    2024年04月27日
    瀏覽(96)
  • MySQL的約束類型、數(shù)據(jù)庫(kù)操作、數(shù)據(jù)表操作大全(簡(jiǎn)述)

    目錄 一.數(shù)據(jù)庫(kù)的操作語(yǔ)法 二.MySQL數(shù)據(jù)庫(kù)約束 三.數(shù)據(jù)類型 四.數(shù)據(jù)表操作 作者簡(jiǎn)介: ?tq02,一個(gè)想成為編程高手的夢(mèng)中人 作者主頁(yè): ?tq02的博客_CSDN博客-C語(yǔ)言,Java,Java數(shù)據(jù)結(jié)構(gòu)領(lǐng)域博主 學(xué)習(xí)專欄:? ??? MySQL基礎(chǔ)? ? ? ? ? ?? ?JavaSE??????????????? ?? ??C語(yǔ)言 本

    2024年02月12日
    瀏覽(93)
  • MySQL相關(guān)的SQL語(yǔ)句、數(shù)據(jù)庫(kù)、數(shù)據(jù)表、字段、類型

    1、 SQL 語(yǔ)句不區(qū)分大小寫。 SQL語(yǔ)句 用途 描述 mysql -u root -p 連接 MySQL 在命令行窗口中輸入 mysql -u root -p 命令,回車,然后輸入 MySQL 密碼(不要忘記了密碼,找回麻煩),再回車就連接上 MySQL 了。最初都是使用 root 用戶登錄,工作中不能一直使用 root 用戶登錄。因?yàn)?root 權(quán)限太

    2024年02月13日
    瀏覽(115)
  • 【MySQL】基礎(chǔ)實(shí)戰(zhàn)篇(1)—數(shù)據(jù)庫(kù)與數(shù)據(jù)表的操作

    創(chuàng)建數(shù)據(jù)庫(kù) 語(yǔ)法: 注: 在同一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上必須是唯一的,不允許存在同名的數(shù)據(jù)庫(kù)。 此外在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)如果不進(jìn)行自定義設(shè)置編碼方式,就會(huì)使用系統(tǒng)默認(rèn)的編碼方式,所以我們可以在創(chuàng)建數(shù)據(jù)庫(kù)的同時(shí)自定義設(shè)置編碼方式。 語(yǔ)法: 字符集 是定義MySQL存儲(chǔ)字符串

    2024年02月08日
    瀏覽(98)
  • 【JaveWeb教程】(18) MySQL數(shù)據(jù)庫(kù)開發(fā)之 MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)-DDL 如何查詢、創(chuàng)建、使用、刪除數(shù)據(jù)庫(kù)數(shù)據(jù)表 詳細(xì)代碼示例講解

    【JaveWeb教程】(18) MySQL數(shù)據(jù)庫(kù)開發(fā)之 MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)-DDL 如何查詢、創(chuàng)建、使用、刪除數(shù)據(jù)庫(kù)數(shù)據(jù)表 詳細(xì)代碼示例講解

    下面我們就正式的進(jìn)入到SQL語(yǔ)句的學(xué)習(xí),在學(xué)習(xí)之前先給大家介紹一下我們要開發(fā)一個(gè)項(xiàng)目,整個(gè)開發(fā)流程是什么樣的,以及在流程當(dāng)中哪些環(huán)節(jié)會(huì)涉及到數(shù)據(jù)庫(kù)。 2.1 項(xiàng)目開發(fā)流程 需求文檔: 在我們開發(fā)一個(gè)項(xiàng)目或者項(xiàng)目當(dāng)中的某個(gè)模塊之前,會(huì)先會(huì)拿到產(chǎn)品經(jīng)理給我們提

    2024年01月25日
    瀏覽(104)
  • 【MySQL新手入門系列二】:手把手教你入門MySQL - 數(shù)據(jù)庫(kù)及數(shù)據(jù)表操作

    【MySQL新手入門系列二】:手把手教你入門MySQL - 數(shù)據(jù)庫(kù)及數(shù)據(jù)表操作

    如果您是一位剛剛開始學(xué)習(xí)MySQL的新手,本文將為您提供一些實(shí)用的入門知識(shí)和技巧,幫助您快速上手。 【MySQL新手入門系列一】:手把手教你入門MySQL 前面我們已經(jīng)大致講了一下mysql的安裝等介紹,本篇文章將以windows為例,介紹MySQL的數(shù)據(jù)庫(kù)及數(shù)據(jù)表的操作(增刪改查)。

    2024年02月10日
    瀏覽(80)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包